Red Hat Training

A Red Hat training course is available for RHEL 8

使用 RHEL 8 时的注意事项

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 7 和 Red Hat Enterprise Linux 8 之间的主要区别

Red Hat Customer Content Services

摘要

本文档概述了 Red Hat Enterprise Linux 7 后 Red Hat Enterprise Linux 8 的更改,以帮助您评估升级到 Red Hat Enterprise Linux 8。

使开源包含更多

红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始: master、slave、blacklist 和 whitelist。这些更改将在即将发行的几个发行本中逐渐实施。如需了解更多详细信息,请参阅 CTO Chris Wright 信息

对红帽文档提供反馈

我们感谢您对我们文档的反馈。让我们了解如何改进它。

通过 Jira 提交反馈(需要帐户)

  1. 登录到 Jira 网站。
  2. 单击顶部导航栏中的 Create
  3. Summary 字段中输入描述性标题。
  4. Description 字段中输入您对改进的建议。包括文档相关部分的链接。
  5. 点对话框底部的 Create

第 1 章 前言

本文档概述 Red Hat Enterprise Linux 两种主要版本RHEL 7 和 RHEL 8 之间的不同。这包括了与评估升级到 RHEL 8 的相关变更列表,而不是所有变更的详细列表。

与该系统的其他版本相比,RHEL 8 的功能和限制的信息包括在 Red Hat Enterprise Linux 技术功能及限制 一书中。

有关 RHEL 生命周期的信息请参考 Red Hat Enterprise Linux 生命周期文档

软件包清单文档 为 RHEL 8 提供软件包列表。

有关 RHEL 8 使用方法的详细信息,请参阅 RHEL 8 产品文档

有关从 RHEL 7 升级到 RHEL 8 的就地升级,请参考 从 RHEL 7 升级到 RHEL 8

有关 RHEL 6 和 RHEL 7 主要区别的详情,请查看 RHEL 7 迁移规划指南

第 2 章 构架

Red Hat Enterprise Linux 8 带有内核版本 4.18,它以下构架提供支持:

  • AMD 和 Intel 64 位构架
  • 64 位 ARM 架构
  • IBM Power Systems, little endian
  • 64-bit IBM Z

请确定为每个构架购买正确的订阅。如需更多信息,请参阅 Red Hat Enterprise Linux 入门 - 附加构架。有关可用订阅列表,请查看客户门户网站中的 订阅使用

请注意,RHEL 8 中的标准 kernel 软件包支持所有架构; 不需要 kernel-alt 软件包。

第 3 章 软件仓库

Red Hat Enterprise Linux 8 由两个主要软件仓库发布:

  • BaseOS
  • AppStream

两个软件仓库都需要一个基本的 RHEL 安装,所有 RHEL 订阅都包括它们。

BaseOS 仓库的内容旨在提供底层操作系统功能的核心组件,为所有安装提供基础操作系统的基础。这部分内容采用 RPM 格式,它的支持条款与之前的 RHEL 版本相似。有关通过 BaseOS 分发的软件包列表,请查看 软件包清单

Application Stream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。Application Streams(应用程序流)以熟悉的 RPM 格式,作为RPM 格式的扩展,名为 模块(modules),或作为 Software Collections(软件集合)。有关 AppStream 中可用软件包的列表,请查看 软件包清单

另外,所有 RHEL 订阅都可以使用 CodeReady Linux Builder 软件仓库。它为开发人员提供了额外的软件包。不支持包括在 CodeReady Linux Builder 存储库中的软件包。

有关 RHEL 8 软件仓库的详情,请查看 软件包清单

第 4 章 应用程序流

Red Hat Enterprise Linux 8 引进了应用程序流(Application Streams)的概念。和操作系统软件包相比,现在为用户空间组件提供了多个版本且会更频繁地进行更新。这为自定义 Red Hat Enterprise Linux 提供了更大的灵活性,不会影响平台或特定部署的基本稳定性。

作为 Application Streams 提供的组件可打包为模块(module)或 RPM 软件包,并通过 RHEL 8 中的 AppStream 软件仓库提供。每个 Application Stream 组件都有其特定的生命周期,可能和 RHEL 8 的生命周期相同或更短。详情请查看 Red Hat Enterprise Linux 生命周期

模块是代表逻辑单元的软件包集合: 应用程序、语言堆栈、数据库或一组工具。这些软件包被一同构建、测试并发布。

模块流代表 Application Stream 组件的版本。例如,PostgreSQL 数据库服务器的几个流(版本)在带有默认的 postgresql:10 流的postgresql 模块中提供。在系统中只能安装 一 个模块流。不同的容器可以使用不同的版本。

详细的模块命令,请参考 安装、管理和删除用户空间组件文档。有关 AppStream 中可用模块的列表,请查看 软件包清单

第 5 章 安装程序和镜像创建

5.1. 附加组件

5.1.1. OSCAP

在 RHEL 8 中默认启用 Open Security Content Automation Protocol(OSCAP)附加服务。

5.1.2. Kdump

Kdump 附加组件添加了对配置内核崩溃转储的支持。该附加组件在 Kickstart 中完全支持(使用 %addon com_redhat_kdump 命令及其选项),并在图形和文本用户界面中作为附加窗口完全整合。

5.2. 安装程序网络

Red Hat Enterprise Linux 8 提供了一个新的网络设备命名方案,它根据用户定义的前缀生成网络接口名称。net.ifnames.prefix 引导选项允许安装程序和安装的系统使用设备命名方案。

5.3. 安装镜像和软件包

5.3.1. 注册您的系统、附加 RHEL 订阅以及使用红帽 CDN 安装的功能

从 Red Hat Enterprise Linux 8.2 开始,您可以在软件包安装前注册系统、附加 RHEL 订阅并从 Red Hat Content Delivery Network(CDN)安装。交互式 GUI 安装以及自动的 Kickstart 安装支持这个特性。如需更多信息,请参阅 RHEL 8.2 发行注记文档

5.3.2. 在安装过程中将您的系统注册到 Red Hat Insights

Red Hat Insights 是一个管理服务,其收集和分析平台和应用程序数据,以预测风险、推荐操作和跟踪成本。Insight 会提醒您有关与几个操作区域相关的警告或优化:系统可用性(包括潜在中断)、安全性(例如,系统发现了新的 CVE)和业务(如,超支)。Insights 作为红帽订阅的一部分提供,可通过红帽混合云控制台访问。另请参阅 Red Hat Insights 文档

从 Red Hat Enterprise Linux 8.2 开始,您可以在安装过程中在 Red Hat Insights 中注册您的系统。交互式 GUI 安装以及自动的 Kickstart 安装支持这个特性。如需更多信息,请参阅 RHEL 8.2 发行注记文档

5.3.3. 统一 ISO

在 Red Hat Enterprise Linux 8 中,统一的 ISO 会自动加载 BaseOSAppStream 安装源程序库。这个功能适用于安装时载入的第一个基本存储库。例如: 如果您在没有配置库的情况下引导安装,且在图形用户界面(GUI)中有统一的 ISO 作为基本存储库,或者使用指向统一 ISO 的 inst.repo= 选项引导安装。

因此,AppStream 软件仓库会在 Installation Source GUI 窗口的 Additional Repositories 部分启用。您不能删除 AppStream 存储库或更改其设置,但您可以在 安装源中禁用它。如果您使用不同基础程序库引导安装,然后将其改为统一 ISO,则该功能将不起作用。如果这样做,基本软件仓库将被替换。但是 AppStream 软件仓库不会被替换并指向原始文件。

5.3.4. Stage2 镜像

在 Red Hat Enterprise Linux 8 中,可以指定 stage2 或 Kickstart 文件的多个网络位置以防止安装失败。这个版本支持使用 stage2 和 Kickstart 文件的网络位置指定多个 inst.stage2inst.ks 引导选项。这可避免发生因为无法访问 stage2 或 Kickstart 文件而导致无法获得需要的文件并使安装失败。

在这个版本中,如果指定了多个位置,可以避免安装失败。如果所有定义的位置都是 URL,即 HTTPHTTPS 或 FTP ),将按顺序尝试它们,直到请求的文件被成功获取为止。如果有一个不是 URL 的位置,则只尝试最后一个指定的位置。剩余的位置会被忽略。

5.3.5. inst.addrepo parameter

在以前的版本中,您只能从内核引导参数指定基本存储库。在 Red Hat Enterprise Linux 8 中, 一个新的内核参数, inst.addrepo=<name>,<url> 允许您在安装过程中指定附加程序库。这个参数有两个强制值:仓库名称和指向存储库的 URL。如需更多信息,请参阅 inst-addrepo 用法

5.3.6. 从扩展的 ISO 进行安装

Red Hat Enterprise Linux 8 支持从本地硬盘中的软件仓库进行安装。之前,从硬盘中安装的唯一方法是使用 ISO 镜像作为安装源。但是,Red Hat Enterprise Linux 8 ISO 映像对于某些文件系统来说可能太大了。例如: FAT32 文件系统无法存储大于 4 GiB 的文件。在 Red Hat Enterprise Linux 8 中,您可从本地硬盘中的库启用安装,您只需要指定该目录而不是指定 ISO 镜像。例如:inst.repo=hd:<device>:<path to the repository>

有关 Red Hat Enterprise Linux 8 BaseOS 和 AppStream 存储库的详情,请查看本文档的 Repositories 部分。

5.4. 安装程序图形化用户界面

5.4.1. 安装概述窗口

Red Hat Enterprise Linux 8 图形安装的安装概述窗口已更新为一个新的三栏布局,它改进了图形安装设置的组织。

5.5. RHEL 中新的系统目的

5.5.1. 在图形安装中提供了对系统目的支持

在以前的版本中,Red Hat Enterprise Linux 安装程序没有为 Subscription Manager 提供系统目的信息。在 Red Hat Enterprise Linux 8 中,您可以使用 System Purpose 窗口,或使用 syspurpose 命令在 Kickstart 配置文件中,在图形安装过程中设定系统的预期目的。当您设置系统目的时,授权服务器会收到有助于自动附加满足系统预期使用的订阅的信息。

5.5.2. Pykickstart 中的系统目的支持

在以前的版本中,pykickstart 库无法向订阅管理器提供系统目的信息。在 Red Hat Enterprise Linux 8 中 pykickstart 解析新的 syspurposes 用途命令,并记录系统在自动化和部分自动化安装过程中的预期目的。然后,这些信息被传给安装程序,保存在新安装的系统上,并在订阅系统时提供给订阅管理器。

5.6. 安装程序模块支持

5.6.1. 使用 Kickstart 安装模块

在 Red Hat Enterprise Linux 8 中,已将安装程序扩展为处理所有模块化特性。Kickstart 脚本现在可以启用模块和流组合、安装模块配置集以及安装模块化软件包。

5.7. Kickstart 的修改

以下章节描述了 Red Hat Enterprise Linux 8 中 Kickstart 命令和选项的更改。

在 RHEL 8 中弃用了 auth 或 authconfig

因为已经删除了 authconfig 工具和软件包,Red Hat Enterprise Linux 8 中弃用了 authauthconfig Kickstart 命令。

与命令行中的 authconfig 命令类似,Kickstart 脚本中的 authconfig 命令现在使用 authselect-compat 工具运行新的 authselect 工具。有关此兼容性层及其已知问题的描述,请参阅 authselect-migration(7) 手册页。安装程序将自动检测弃用命令的使用并在系统上安装 authselect-compat 软件包来提供兼容性层。

Kickstart 不再支持 Btrfs

从 Red Hat Enterprise Linux 8 起不再支持 Btrfs 文件系统。因此,图形用户界面(GUI)和 Kickstart 命令不再支持 Btrfs。

使用之前 RHEL 发行本中的 Kickstart 文件

如果您正在使用之前的 RHEL 版本中的 Kickstart 文件,请参阅 RHEL 8 文档中Repositories 部分,以了解有关 Red Hat Enterprise Linux 8 BaseOS 和 AppStream 软件仓库的详情。

5.7.1. 弃用的 Kickstart 命令和选项

在Red Hat Enterprise Linux 8 中弃用了以下 Kickstart 命令和选项。

如果只列出具体选项,则基础命令及其它选项仍可用且没有弃用。

  • authauthconfig - 使用 authselect 替代
  • device
  • deviceprobe
  • dmraid
  • install - 使用子命令或者方法作为命令
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • reboot --kexec
  • syspurpose - 使用 subscription-manager syspurpose 替代

authauthconfig 命令外,使用 Kickstart 文件中的命令会在日志中打印警告信息。

您可以使用 inst.ksstrict 引导选项将已弃用的命令警告转换为错误,但 authauthconfig 命令除外。

5.7.2. 删除的 Kickstart 命令和选项

在 Red Hat Enterprise Linux 8 中完全删除了以下 Kickstart 命令和选项。在 Kickstart 文件中使用它们将导致错误。

  • device
  • deviceprobe
  • dmraid
  • install - 使用子命令或者方法作为命令
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • harddrive --biospart
  • upgrade(该命令之前已经弃用。)
  • btrfs
  • part/partition btrfs
  • part --fstype btrfspartition --fstype btrfs
  • logvol --fstype btrfs
  • raid --fstype btrfs
  • unsupported_hardware

如果只列出具体选项和值,则基础命令及其它选项仍可用且没有被删除。

5.8. 镜像创建

5.8.1. 使用镜像构建程序自定义系统镜像创建

Image Builder 工具可让用户创建自定义的 RHEL 镜像。从 Red Hat Enterprise Linux 8.3 开始,镜像构建器作为系统服务 osbuild-composer 软件包运行。

使用镜像构建器,用户可以创建包含其他软件包的自定义系统镜像。镜像构建器功能可以通过以下方式访问:

  • web 控制台中的图形用户界面
  • composer-cli 工具里的命令行界面。

镜像构建器输出格式包括:

  • TAR 归档
  • 可以直接用于虚拟机或 OpenStack 的 qcow2 文件
  • QEMU QCOW2 镜像
  • Azure、VMWare 和 AWS 的云镜像

如需了解更多有关镜像构建器的信息,请参阅文档标题 组成自定义的 RHEL 系统镜像

第 6 章 软件管理

6.1. YUM 的主要变化

6.1.1. 使用 YUM/DNF 管理软件包

在 Red Hat Enterprise Linux 8 上,通过基于 DNF 技术(YUM v4) 的YUM 保证安装软件。我们还会继续使用 yum 术语,以便与以前的 RHEL 主版本保持一致。但是,如果您键入 dnf 而不是 yum,则 命令可以正常工作,因为 yumdnf 的别名以实现兼容性。

如需了解更多详细信息,请参阅 安装、管理和删除用户空间组件

6.1.2. YUM v4 与 YUM v3 相比的优点

yum v4 比 RHEL 7 上之前使用的 YUM v3 有以下优点:

  • 提高了性能
  • 支持模块化内容
  • 设计良好的稳定 API,用于与工具集成

有关新的 YUM v4 工具和来自 RHEL 7 的之前版本的 YUM v3 之间的差异的详细信息,请参阅 与 YUM 相比,DNF CLI 的变化

6.1.3. 如何使用 YUM v4

安装软件

yum v4 在使用命令行、编辑或者创建配置文件时与 YUM v3 兼容。

对于安装软件,您可以使用 yum 命令及其具体的选项,按照与 RHEL 7 一样的方式。

请参阅有关 安装软件包 的更多详细信息。

插件可用性

旧的 YUM v3 插件与 YUM v4 的新版本不兼容。所选的一些 yum 插件和工具已被移植到新的 DNF 后端,可使用与 RHEL 7 中相同的名称进行安装。它们也提供兼容性符号链接,因此可在通常的位置找到 二进制文件、配置文件和目录。

如果不再包含插件,或者替换不满足可用性需求,请联系红帽支持来请求功能增强,如 如何再客户门户网站上打开和管理支持问题单? 中所述

如需更多信息,请参阅 插件接口

API 的可用性

请注意,YUM v3 提供的旧版本的 Python API 不再可用。我们建议用户将插件和脚本迁移到 YUM v4(DNF Python API)提供的新 API 中,它是稳定的且被完全支持。上游项目记录了新的 DNF Python API - 请参阅 DNF API 参考

Libdnf 和 Hawkey API(C 和 Python)被视为不稳定,在 RHEL 8 生命周期中可能会有所变化。

6.1.4. YUM 配置文件选项的可用性

RHEL 7 和 RHEL 8 之间 /etc/yum.conf/etc/yum.repos.d/*.repo 文件的配置文件选项中的更改记录在以下概述中。

表 6.1. /etc/yum.conf 文件配置文件选项的更改

RHEL 7 选项RHEL 8 状态

alwaysprompt

删除

assumeno

可用

assumeyes

可用

autocheck_running_kernel

可用

autosavets

删除

bandwidth

可用

bugtracker_url

可用

cachedir

可用

check_config_file_age

可用

clean_requirements_on_remove

可用

color

可用

color_list_available_downgrade

可用

color_list_available_install

可用

color_list_available_reinstall

可用

color_list_available_running_kernel

删除

color_list_available_upgrade

可用

color_list_installed_extra

可用

color_list_installed_newer

可用

color_list_installed_older

可用

color_list_installed_reinstall

可用

color_list_installed_running_kernel

删除

color_search_match

可用

color_update_installed

可用

color_update_local

可用

color_update_remote

可用

commands

删除

config_file_path

可用

debuglevel

可用

deltarpm

可用

deltarpm_metadata_percentage

删除

deltarpm_percentage

可用

depsolve_loop_limit

删除

disable_excludes

可用

diskspacecheck

可用

distroverpkg

删除

enable_group_conditionals

删除

errorlevel

可用

exactarchlist

删除

exclude

可用

exit_on_lock

可用

fssnap_abort_on_errors

删除

fssnap_automatic_keep

删除

fssnap_automatic_post

删除

fssnap_automatic_pre

删除

fssnap_devices

删除

fssnap_percentage

删除

ftp_disable_epsv

删除

gpgcheck

可用

group_command

删除

group_package_types

可用

groupremove_leaf_only

删除

history_list_view

可用

history_record

可用

history_record_packages

可用

http_caching

删除

Include

删除

installonly_limit

可用

installonlypkgs

可用

installrootkeep

删除

ip_resolve

可用

keepalive

删除

keepcache

可用

kernelpkgnames

删除

loadts_ignoremissing

删除

loadts_ignorenewrpm

删除

loadts_ignorerpm

删除

localpkg_gpgcheck

可用

logfile

删除

max_connections

删除

mddownloadpolicy

删除

mdpolicy

删除

metadata_expire

可用

metadata_expire_filter

删除

minrate

可用

mirrorlist_expire

删除

multilib_policy

可用

obsoletes

可用

override_install_langs

删除

overwrite_groups

删除

password

可用

payload_gpgcheck

删除

persistdir

可用

pluginconfpath

可用

pluginpath

可用

plugins

可用

protected_multilib

删除

protected_packages

可用

proxy

可用

proxy_password

可用

proxy_username

可用

query_install_excludes

删除

recent

可用

recheck_installed_requires

删除

remove_leaf_only

删除

repo_gpgcheck

可用

repopkgsremove_leaf_only

删除

reposdir

可用

reset_nice

可用

retries

可用

rpmverbosity

可用

shell_exit_status

删除

showdupesfromrepos

可用

skip_broken

可用

skip_missing_names_on_install

删除

skip_missing_names_on_update

删除

ssl_check_cert_permissions

删除

sslcacert

可用

sslclientcert

可用

sslclientkey

可用

sslverify

可用

syslog_device

删除

syslog_facility

删除

syslog_ident

删除

throttle

可用

timeout

可用

tolerant

删除

tsflags

可用

ui_repoid_vars

删除

upgrade_group_objects_upgrade

可用

upgrade_requirements_on_install

删除

usercache

删除

username

可用

usr_w_check

删除

表 6.2. /etc/yum.repos.d/*.repo 文件配置文件选项更改

RHEL 7 选项RHEL 8 状态

async

删除

bandwidth

可用

baseurl

可用

compare_providers_priority

删除

cost

可用

deltarpm_metadata_percentage

删除

deltarpm_percentage

可用

enabled

可用

enablegroups

可用

exclude

可用

failovermethod

删除

ftp_disable_epsv

删除

gpgcakey

删除

gpgcheck

可用

gpgkey

可用

http_caching

删除

includepkgs

可用

ip_resolve

可用

keepalive

删除

metadata_expire

可用

metadata_expire_filter

删除

metalink

可用

mirrorlist

可用

mirrorlist_expire

删除

name

可用

password

可用

proxy

可用

proxy_password

可用

proxy_username

可用

repo_gpgcheck

可用

repositoryid

删除

retries

可用

skip_if_unavailable

可用

ssl_check_cert_permissions

删除

sslcacert

可用

sslclientcert

可用

sslclientkey

可用

sslverify

可用

throttle

可用

timeout

可用

ui_repoid_vars

删除

username

可用

6.1.5. YUM v4 的不同行为

YUM v3 的一些功能在 YUM v4 中的行为可能不同。如果此类更改对您的工作流有影响,请向红帽支持创建一个问题单,请参阅 如何打开和管理客户门户网站中的支持问题单所述?

6.1.5.1. yum list 显示重复条目

在使用 yum list 命令列出软件包时,可能会显示重复的条目,每个存储库一条,其中包含相同名称和版本的软件包。

这是有意设计的,用户在需要时也可区分这些软件包。

例如,如果 package-1.2 在 repo1 和 repo2 中都可用,YUM v4 会输出这两个实例:

[…​]
package-1.2    repo1
package-1.2    repo2
[…​]

相反,传统的 YUM v3 命令会过滤出此类的重复,因此只显示一个实例:

[…​]
package-1.2    repo1
[…​]

6.1.6. 事务历史记录文件的更改

RHEL 7 和 RHEL 8 之间的事务历史记录日志文件中的更改记录在以下概述中。

在 RHEL 7 中, 使用 /var/log/yum.log 文件存储:

  • 软件包的安装、更新和删除的注册表
  • 来自 yum 和 PackageKit 的事务

在 RHEL 8 中,没有直接对应的 /var/log/yum.log 文件。要显示事务信息,包括 PackageKitmicrodnf,请使用 yum history 命令。

或者,您可以搜索 /var/log/dnf.rpm.log 文件,但此日志文件不包括 PackageKit 和 microdnf 的事务,它有一个日志轮转,提供定期删除存储的信息。

6.1.7. deltarpm 功能不再被支持

RHEL 8 不再支持使用 delta rpms。要使用 delta rpms,用户必须安装不再可用的 deltarpm 软件包。deltarpm 替换 drpm ,不再提供相同的功能。因此,RHEL 8 内容不会以 deltarpm 格式提供。请注意,在以后的 RHEL 版本中将完全删除这个功能。

6.2. 重要的 RPM 特性和变化

Red Hat Enterprise Linux (RHEL) 8 使用 RPM 4.14。这个版本比 RPM 4.11 提供了很多改进,具体信息包括在 RHEL 7 中。

主要特性包括:

  • debuginfo 软件包可并行安装
  • 支持弱依赖项
  • 支持富或布尔值依赖项
  • 支持大小超过 4 GB 的打包文件
  • 支持文件触发器
  • 新的 --nopretrans--noposttrans 开关来分别禁用 %pretrans%posttrans 脚本的执行。
  • 新的 --noplugins 选项用来禁用载入和执行所有 RPM 插件。
  • 新的 syslog 插件,用于通过系统日志记录协议(syslog)记录任何 RPM 活动。
  • rpmbuild 命令现在可以直接从源代码软件包中执行所有构建步骤。

    可以将 rpmbuild 与任何 -r[abpcils] 选项一起使用。

  • 支持重新安装模式。

    新的 --reinstall 选项可保证这一点。要重新安装之前安装的软件包,请使用以下语法:

    rpm {--reinstall} [install-options] PACKAGE_FILE

    这个选项可确保正确安装新软件包并删除旧软件包。

  • 支持 SSD conservation 模式。

    这是通过新的 %_minimize_writes 宏保证的,该宏位于 /usr/lib/rpm/macros 文件中。宏默认设置为 0。要最小化对 SSD 磁盘的写入操作,将 %_minimize_writes 设置为 1。

  • 新的 rpm2archive 工具用于将 rpm 有效负载转换为 tar 归档

请参阅 RHEL 8 中的新 RPM 功能

主要变更包括:

  • 更严格的 spec-parser
  • 简化对非详细模式输出的签名检查
  • 改进了对可重复生成的构建的支持(创建相同软件包的构建):

    • 设置构建时间
    • 设置文件 mtime(文件修改时间)
    • 设置构建主机
  • 使用 -p 选项查询未安装的 PACKAGE_FILE 现在是可选的。对于这个用例,rpm 命令现在与是否带有 -p 选项返回相同的结果。当需要 -p 选项的唯一用例是验证文件名与 rpmdb 数据库中的所有 Provides 不匹配。
  • 在宏中添加和弃用

    • %makeinstall 宏已被弃用。要安装程序,使用 %make_install 宏。
  • rpmbuild --sign 命令已弃用。

    请注意,在 rpmbuild 命令中使用 --sign 选项已经被弃用。要在已经存在的软件包中添加签名,使用 rpm --addsign

第 7 章 基础架构服务

7.1. 时间同步

准确计时很重要,理由有很多。在 Linux 系统中,网络时间协议(NTP) 协议由运行再用户空间的守护进程实现。

7.1.1. NTP 的实现

RHEL 7 支持两种 NTP 协议实现ntpchrony

在 RHEL 8 中,NTP 协议只能由 chrony 软件包提供的 chronyd 守护进程实现。

ntp 守护进程不再可用。如果在 RHEL 7 系统上使用 ntp,您可能需要 迁移到 chrony

chrony 不支持的以前 ntp 功能的可能的替换记录在 在 chrony 中取得 ntp 之前支持的一些设置 中。

7.1.2. chrony 套件介绍

chronyNTP 的一种实现,它在各种条件下表现良好,包括间歇性网络连接、高度拥堵的网络、温度变化(普通计算机时钟对温度敏感),以及不持续运行或在运行在虚拟机上的系统。

您可以使用 chrony:

  • 将系统时钟与 NTP 服务器同步
  • 将系统时钟与参考时钟同步,如 GPS 接收器
  • 将系统时钟与手动时间输入同步
  • 作为 NTPv4(RFC 5905) 服务器或对等服务器,为网络中的其他计算机提供时间服务

有关 chrony 的更多信息,请参阅配置基本系统设置

7.1.2.1. chrony 和 ntp 之间的差别

有关 chronyntp 之间的区别,请参见以下资源:

7.1.2.1.1. Chrony 会默认应用闰秒调整

在 RHEL 8 中,默认的 chrony 配置文件 /etc/chrony.conf 包括 leapsectz 指令。

leapsectz 启用 chronyd 进行:

  • 从系统 tz 数据库(tzdata)获取有关闰秒的信息。
  • 设置系统时钟的 TAI-UTC 偏移,以便系统提供准确的国际原子时间(TAI)时钟(CLOCK_TAI)

该指令与那些使用闰秒的客户端隐藏闰秒的服务器不兼容, leap smear ,如使用 leapsecmodesmoothtime 配置的 chronyd 服务器。如果将客户端 chronyd 配置为同步这样的服务器,请从配置文件中删除 leapsectz

7.1.3. 附加信息

有关如何使用 chrony 套件配置 NTP 的更多信息,请参阅 配置时间同步

7.2. BIND - DNS 的实现

RHEL 8 在包含 BIND(Berkeley Internet Name Domain)版本 9.11。与版本 9.10 相比,这个版本的 DNS 服务器引入了多个新功能和功能变化。

新特性:

  • 添加了一个新的置备二级服务器的方法,称为 Catalog Zones
  • 域名系统 cookie 现在由 nameddig 工具发送。
  • Response Rate Limiting 功能现在可以帮助缓解 DNS 放大攻击。
  • 响应策略区域(RPZ)的性能已得到提高。
  • 已添加了名为 map 的新区域文件格式。使用此格式存储的区域数据可以直接映射到内存中,这样区域加载就能大大加快。
  • 已添加了一个名为 delv (域实体查找和验证)的新工具,它具有类似于 dig 的语义,用于查找 DNS 数据并执行内部 DNS 安全扩展(DNSSEC)验证。
  • 新的 mdig 命令现在可用。此命令是 dig 命令的一个版本,它发送多个管道查询,然后等待响应,而不是发送一个查询,且在发送下一个查询前等待响应。
  • 添加了一个新的 prefetch 选项,它提高了递归解析器的性能。
  • 添加了一个新的 in-view 区域选项,它允许在视图间共享区域数据。当使用这个选项时,多个视图可以在不需要在内存中存储多个副本的情况下为相同的区域服务。
  • 添加了一个新的 max-zone-ttl 选项,它强制执行 zone 的最大 TTL。当加载包含更高 TTL 的区域时,加载会失败。带有更高 TTL 的动态 DNS(DDNS)更新会被接受,但 TTL 会被截断。
  • 添加了新的配额,将递归解析器发送的查询限制到遇到拒绝服务攻击的权威服务器。
  • 现在,nslookup 程序默认查找 IPv6 和 IPv4 地址。
  • named 服务现在在启动前检查其他名称服务器进程是否正在运行。
  • 加载签名区域时,named 现在检查资源记录签名(RSIG)的开始时间是否在将来,如果是,它会立即重新生成 RRSIG。
  • 区域传送现在使用较小的消息大小来改进消息压缩,这降低了网络使用量。

功能更改:

  • HTTP 接口提供统计渠道的版本 3 XML 模式,包括新的统计信息以及用于快速解析的扁平化 XML 树。旧版 2 XML 模式不再被支持。
  • named 服务现在默认侦听 IPv6 和 IPv4 接口。
  • named 服务不再支持 GeoIP 数据库。由查询发送方假定位置定义的访问控制列表(ACL)不可用。
  • 从 RHEL 8.2 开始,named 服务支持 GeoIP2,它以 libmaxminddb 数据格式提供。

7.3. DNS 解析

在 RHEL 7 中,nslookuphost 实工具能够接受任何回复,而无需列出的任何名称服务器的 recursion available 标志。在 RHEL 8 中,nslookuphost 会忽略来自不提供递归的名称服务器的回复,除非它是最后配置的名称服务器。如果是上次配置的名称服务器,即使没有 recursion available 标志,也会接受回答。

但是,如果最后配置的域名服务器无法响应或者无法访问,名字解析会失败。要防止这种失败,您可以使用以下方法之 一 :

  • 确定配置的域名服务器总是使用 recursion available 进行回复。
  • 允许为所有内部客户端进行 recursion。

另外,您还可以使用 dig 工具检测递归是否可用。

7.4. Postfix

默认情况下在 RHEL 8 中,Postfix 使用带有 TLS 的 MD5 指纹用于向后兼容。但在 FIPS 模式下,MD5 哈希功能不可用,这可能会导致 TLS 在默认 Postfix 配置中无法正常工作。作为临时解决方案,需要在 postfix 配置文件中将哈希功能改为 SHA-256

如需了解更多详细信息,请参阅相关链接:https://access.redhat.com/articles/5824391

7.5. 打印

7.5.2. CUPS 日志的位置

CUPS 提供三种日志:

  • 错误日志
  • 访问日志
  • 页面日志

在 RHEL 8 中,日志不再存储在 /var/log/cups 目录中特定的文件中,这些文件在 RHEL 7 中使用。相反,所有三种类型都会通过 systemd-journald,集中记录来自其他程序的日志。

有关如何在 RHEL 8 中使用 CUPS 日志的更多信息,请参阅 访问 systemd 日志中的 CUPS 日志

7.5.3. 附加信息

有关如何在 RHEL 8 中配置打印的更多信息,请参阅 配置打印

7.6. 性能和电源管理选项

7.6.1. 推荐的 TuneD 配置文件中的显著变化

在 RHEL 8 中,推荐的由 tuned-adm recommend 命令报告的 TuneD 配置文件是根据以下规则选择的:

  • 如果 syspurpose(由 syspurpose show 命令报告)包含 atomic,且同时:

    • 如果 TuneD 运行在裸机上,则会选择 atomic-host 配置文件
    • 如果 TuneD 运行在虚拟机中,则会选择 atomic-guest 配置文件
  • 如果 TuneD 运行在虚拟机中,则会选择 virtual-guest 配置文件
  • 如果 syspurpose 角色包含 desktopworkstation ,并且 chassis 类型(由 dmidecode报告)是NotebookLaptopPortable,则会选择 balanced 配置集。
  • 如果以上规则都不匹配,则会选择 throughput-performance 配置集

请注意,第一个匹配的规则会起作用。

7.7. 基础架构服务组件的其它变化

对特定基础架构服务组件的其他显著变化摘要如下。

表 7.1. 基础架构服务组件的显著变化

Name更改类型附加信息

acpid

选项的更改

-d (调试)不再暗示 -f(前台)

bind

配置选项删除

dnssec-lookaside auto 被删除,使用 no 替代

brltty

配置选项更改

--message-delay brltty 被重命名为 --message-timeout

brltty

配置选项删除

-U [--update-interval=] 被删除

brltty

配置选项更改

现在,蓝牙设备地址可能包含横线(-)而不是冒号(:)。不再支持 bth:bluez: 设备限定别名。

cups

删除功能

由于安全原因,上游删除了接口脚本的支持。使用 OS 或商用商提供的 ppd 和驱动。

cups

指令选项删除

删除了 /etc/cups/cupsd.conf 中的 AuthType 和 DefaultAuthType 指令的 Digest 和 BasicDigest 验证 类型。迁移到 Basic

cups

指令选项删除

cupsd.conf 中删除了 Include

cups

指令选项删除

cups-files.conf 中删除了 ServerCertificateServerKey,使用 Serverkeychain 替代

cups

在配置文件间移动的指令

SetEnvPassEnvcupsd.conf 移到 cups-files.conf

cups

在配置文件间移动的指令

PrintcapFormatcupsd.conf 移动到 cups-files.conf

cups-filters

默认配置更改

由 cups-browsed 发现的远程打印队列的名称现在根据打印机的设备 ID 而不是远程打印队列的名称创建。

cups-filters

默认配置更改

为了自动创建 IPP 打印机队列,必须将 CreateIPPPrinterQueues 设为 All

cyrus-imapd

数据格式更改

Cyrus-imapd 3.0.7 有不同的数据格式。

dhcp

行为更改

默认情况下,dhclient 将硬件地址作为客户端标识符发送。client-id 选项是可配置的。如需更多信息,请参阅 /etc/dhcp/dhclient.conf 文件。

dhcp

选项不兼容

-I 选项现在用于标准的 ddns 更新。对于以前的功能(dhcp-client-identifier),请使用新的 -C 选项。

dosfstools

行为更改

数据结构现在会自动与集群大小保持一致。要禁用对齐,请使用 -a 选项。fsck.fat 现在默认为交互式修复模式,之前必须使用 -r 选项选择该模式。

finger

删除功能

 

GeoIP

删除功能

 

grep

行为更改

grep 现在将当前包含区域设置不正确编码的数据视为二进制数据。

grep

行为更改

grep -P 不再报告错误并在给出无效 UTF-8 数据时退出

grep

行为更改

现在如果使用 GREP_OPTIONS 环境变量,grep 会发出警告。使用别名或脚本来替代。

grep

行为更改

grep -P 报告一个错误,并使用 UTF-8 以外的多字节字符编码退出区域

grep

行为更改

搜索二进制数据时,grep 可以将非文本字节视为行终止符,这会显著影响性能。

grep

行为更改

grep -z 不再自动将字节 '\200' 视为二进制数据。

grep

行为更改

上下文不再排除因为 -m 省略的选定的行。

irssi

行为更改

不再支持 SSLv2SSLv3

lftp

更改选项

xfer:logxfer:log-file 已弃用;现在在 log:enabledlog:file 命令下提供

ntp

删除功能

已删除 NTP,改为使用 chrony

postfix

配置更改

3.X 版本具有兼容性安全网,可在升级后运行具有向后兼容默认设置的 Postfix 程序。

postfix

配置更改

在 Postfix MySQL 数据库客户端中,默认的 option_group 值已变为 client,将其设为空以用于向后兼容行为。

postfix

配置更改

postqueue 命令不再强制在 UTC 中报告所有消息。要获得旧行为,请在 main.cf:import_environment 中设置 TZ=UTC。例如:

import_environment = MAIL_CONFIG MAIL_DEBUG MAIL_LOGTAG TZ=UTC XAUTHORITY DISPLAY LANG=C.

postfix

配置更改

ECDHE - smtpd_tls_eecdh_grade 默认为 auto ;新的参数 tls_eecdh_auto_curves 带有可协商的曲线名称

postfix

配置更改

更改了 append_dot_mydomain 的默认值(新值: no, 旧值: yes)、master.cf chroot( (新值: n, 旧值: y)、smtputf8(新值: yes,旧值: no)。

postfix

配置更改

更改了 relay_domains 的默认值(新值:空,旧值:$mydestination)。

postfix

配置更改

mynetworks_style 默认值由 subnet 变为 host

powertop

选项删除

-d 删除

powertop

选项的更改

-h 不再是 --html 的别名。现在它是 --help 的别名。

powertop

选项删除

-u 删除

quagga

删除功能

 

sendmail

配置更改

默认情况下,Sendmail 使用未压缩的 IPv6 地址,该地址允许零子网具有更具体的匹配项。配置数据必须使用相同的格式,因此可确保在使用 8.15 之前更新像 IPv6:[0-9a-fA-F:]*::IPv6:: 这样的模式。

spamassasin

命令行选项删除

删除了 spamd 中的 --ssl-version

spamassasin

命令行选项更改

在 spamc 中,命令行选项 -S/--ssl 不再用于指定 SSL/TLS 版本。现在,这个选项只能在没有参数的情况下被使用来启用 TLS。

spamassasin

支持的 SSL 版本更改

在 spamc 和 spamd 中,SSLv3 不再被支持。

spamassasin

删除功能

sa-update 不再支持过滤规则的 SHA1 验证,而是使用 SHA256/SHA512 验证。

vim

默认设置更改

如果没有 ~/.vimrc 文件,vim 运行 default.vim 脚本。

vim

默认设置更改

Vim 现在支持来自终端的粘贴操作。在 vimrc 中包含 'set t_BE=' 用于以前的行为。

vsftpd

默认配置更改

anonymous_enable 禁用

vsftpd

默认配置更改

strict_ssl_read_eof 现在默认为 YES

vsftpd

删除功能

不再支持 tcp_wrappers

vsftpd

默认配置更改

TLSv1 和 TLSv1.1 默认禁用

wireshark

Python 绑定删除

不再能够使用 Python 编写 Dissectors,而是使用 C。

wireshark

选项删除

用于异步 DNS 名称解析的 -N 选项的 -C 子选项被删除

wireshark

输出更改

使用 -H 选项,输出不再显示 SHA1、RIPEMD160 和 MD5 哈希。现在显示 SHA256、RIPEMD160 和 SHA1 哈希。

wvdial

删除功能

 

第 8 章 Security

8.1. 更改核心加密组件

8.1.1. 默认应用系统范围的加密策略

Crypto-policies 是 Red Hat Enterprise Linux 8 中的一个组件,它配置核心加密子系统,包括 TLS、IPsec、DNSSEC、Kerberos 协议以及 OpenSSH 套件。它提供一组策略,管理员可以使用 update-crypto-policies 命令选择这些策略。

DEFAULT 系统范围的加密策略为当前的威胁模型提供安全设置。它允许 TLS 1.2 和 1.3 协议,以及 IKEv2 和 SSH2 协议。如果大于 2047 位,则接受 RSA 密钥和 Diffie-Hellman 参数。

如需更多信息,请参阅红帽博客上的 在 Red Hat Enterprise Linux 8 中通过加密策略实现一致性 的文章和 update-crypto-policies(8) 手册页。

8.1.2. 强大的加密默认方法是删除不安全的密码套件和协议

以下列表包含从 RHEL 8 核心加密库中删除的密码套件和协议。它们不在源中,或者其支持在构建过程中被禁用,因此应用程序无法使用它们。

  • DES(自 RHEL 7 开始)
  • 所有导出级密码套件(自 RHEL 7 开始)
  • 签名中的 MD5(自 RHEL 7 开始)
  • SSLv2(自 RHEL 7 开始)
  • SSLv3(自 RHEL 8 开始)
  • 所有 ECC 曲线 < 224 位(自 RHEL 6 开始)
  • 所有二进制字段 ECC 曲线(自 RHEL 6 开始)

8.1.3. 在所有策略级中禁用密码套件和协议

在所有 crypto 策略级中禁用了以下密码套件和协议。它们只能通过各个应用程序的明确配置来启用。

  • DH 带有参数 < 1024 位
  • RSA 带有密钥大小 < 1024 位
  • Camellia
  • ARIA
  • SEED
  • IDEA
  • 仅完整性密码套件
  • 使用 SHA-384 HMAC 的 TLS CBC 模式密码组合
  • AES-CCM8
  • 所有 ECC curves 与 TLS 1.3 不兼容,包括 secp256k1
  • IKEv1(自 RHEL 8 开始)

8.1.4. 将系统切换到 FIPS 模式

系统范围的加密策略包含一个策略级,其允许加密模块按照联邦信息处理标准(FIPS)出版物 140-2 的要求进行自我检查。在内部启用或禁用 FIPS 模式的 fips-mode-setup 工具使用 FIPS 系统范围的加密策略级。

要在 RHEL 8 中将系统切换成 FIPS 模式,请输入以下命令并重启您的系统:

# fips-mode-setup --enable

详情请查看 fips-mode-setup(8) man page。

8.1.5. TLS 1.0 和 TLS 1.1 已弃用

TLS 1.0 和 TLS 1.1 协议在 DEFAULT 系统范围的加密策略级别被禁用。如果需要使用启用的协议,如 Firefox 网页浏览器中的视频检查程序,把系统范围的加密策略切换到 LEGACY 级别:

# update-crypto-policies --set LEGACY

如需更多信息,请参阅红帽客户门户网站上的 RHEL 8 中的强加密默认值和弱加密算法的弃用 知识库文章和 update-crypto-policies(8) 手册页。

8.1.6. 加密库中的 TLS 1.3 支持

此更新在所有主要后端加密库中默认启用传输层安全性(TLS)1.3。这启用了跨操作系统通信层的低延迟,并通过利用新的算法(如 RSA-PSS 或 X25519)增强了应用程序的隐私和安全。

8.1.7. 在 RHEL 8 中弃用 DSA

数字签名算法(DSA)在 Red Hat Enterprise Linux 8 中被视为已弃用。依赖于 DSA 密钥的身份验证机制在默认配置中不起作用。请注意,即使使用系统范围的 LEGACY 加密策略级别中,OpenSSH 客户端都不接受 DSA 主机密钥。

8.1.8. 在 NSS中弃用了SSL2 Client Hello

传输层安全性(TLS)协议版本 1.2 和更早版本允许使用以向后兼容安全套接字层(SSL)协议版本 2 方式格式的 Client Hello 消息开始协商。网络安全服务(NSS)库中对这个功能的支持已被弃用,默认是禁用的。

需要这个功能支持的应用程序需要使用新的 SSL_ENABLE_V2_compatible_HELLO API 启用它。以后的 Red Hat Enterprise Linux 8 版本中可以完全删除对这个功能的支持。

8.1.9. NSS 现在默认使用 SQL

网络安全服务(NSS)库现在默认对信任数据库使用 SQL 文件格式。在之前版本中用作默认数据库格式的 DBM 文件格式不支持多个进程并行访问同一数据库,其在上游中已被弃用。因此,使用 NSS 信任数据库存储密钥、证书和撤销信息的应用程序现在默认以 SQL 格式创建数据库。尝试使用旧的 DBM 格式创建数据库会失败。现有 DBM 数据库以只读模式打开,它们会自动转换为 SQL 格式。请注意,自 Red Hat Enterprise Linux 6 之后,NSS 支持 SQL 文件格式。

8.2. SSH

8.2.1. OpenSSH rebase 到版本 7.8p1

openssh 软件包已升级到上游版本 7.8p1。主要变更包括:

  • 删除了对 SSH 版本 1 协议的支持。
  • 删除了对 hmac-ripemd160 消息验证代码的支持。
  • 删除了对 RC4(arcfour)加密的支持。
  • 删除了对 Blowfish 加密的支持。
  • 删除了对 CAST 加密的支持。
  • UseDNS 选项的默认值改为no
  • 默认禁用 DSA 公钥算法。
  • Diffie-Hellman 参数的最小 modulus 大小改为 2048 字节。
  • 更改了 ExposeAuthInfo 配置选项的语义.
  • 现在,usePrivilegeSeparation=sandbox 选项是强制的且无法禁用。
  • 最小的 RSA 密钥大小为 1024 位。

8.2.2. libssh 实现 SSH 用于核心加密组件

在 Red Hat Enterprise Linux 8 中使用 libssh 作为核心加密组件。libssh 库实现了安全 SHell(SSH)协议。

8.2.3. 在 RHEL 8 中不提供 libssh2

弃用的 libssh2 库丢失了一些功能,比如对 elliptic 曲线或通用安全服务应用程序接口(GSSAPI)的支持,它已从 RHEL 8 中删除,取而代之的是 libssh

8.3. Rsyslog

8.3.1. 默认的 rsyslog 配置文件格式现在是非传统的

rsyslog 软件包中的配置文件现在默认使用非传统格式。旧(legacy)格式仍可以被使用,但在混合使用新的配置格式和旧的配置格式语句时会有一些限制。需要检查来自以前的 RHEL 版本的配置。详情请查看 rsyslog.conf(5) 手册页。

8.3.2. imjournal 选项,以及使用最小的 journald 用法配置系统日志

为了避免在 journald 轮转其文件时可能会出现的重复记录,添加了 imjournal 选项。请注意,使用这个选项可能会影响性能。

请注意,带有 rsyslog 的系统可被配置为提供更好的性能,如 配置没有 journald 或具有最小化 journald 用法的系统日志 知识库文章中所述。

8.3.3. 默认日志设置在性能上的负面影响

默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald 使用 rsyslog 运行时,速率限制值的调整会很复杂。

如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案

8.4. OpenSCAP

8.4.1. 合并 OpenSCAP API

此更新提供了已合并的 OpenSCAP 共享库 API。删除了 63 个符号,添加了 14, 4 个有更新的签名。OpenSCAP 1.3.0 里删除的符号包括:

  • 在 1.2.0 版本中标记为已弃用的符号
  • SEAP 协议符号
  • 内部帮助程序功能
  • 未使用的库符号
  • 未实现的符号

8.4.2. oscap-podman 取代 oscap-docker 用于容器的安全性和合规性扫描

在 RHEL 8.2 中,引入了一个用于容器安全性和合规性扫描的新工具。oscap-podman 工具提供了与用于在 RHEL 7 中扫描容器和容器镜像的 oscap-docker 等效的工具。

如需更多信息,请参阅 扫描容器和容器镜像中的漏洞 部分。

8.5. Audit

8.5.1. Audit 3.0 使用 auditd 替换 audispd

在这个版本中,audispd 的功能已移到 auditd。因此,audispd 配置选项现在是 auditd.conf 的一部分。另外,plugins.d 目录已移到 /etc/audit 下。auditd 和它的插件的当前状态通过运行 service auditd state 命令检查。

8.6. SELinux

8.6.1. SELinux 软件包迁移到 Python 3

  • policycoreutils-python 已被 policycoreutils-python-utilspython3-policycoreutils 软件包替代。
  • libselinux-python 软件包的功能现在由 python3-libselinux 软件包提供。
  • setools-libs 软件包的功能现在由 python3-setools 软件包提供。
  • libsemanage-python 软件包的功能现在由 python3-libsemanage 软件包提供。

8.6.2. SELinux 子软件包的更改

  • libselinux-staticlibsemanage-staticlibsepol-staticsetools-libs-tcl 已被删除。
  • RHEL 8.0 和 8.1 提供了 setools-guisetools-console-analyses。RHEL 8.2 是包含这些子软件包的 RHEL 8 的第一个次要版本。

8.6.3. SELinux 策略的更改

init_t 域在 RHEL 8 上不再受限制。这可能会对使用不同 SELinux 标记方法的第三方应用程序造成问题。

要解决非标准位置中的 SELinux 标记问题,您可以为这些位置配置文件上下文等效性。

  1. /my/apps/ 目录配置文件上下文等效性:

    # semanage fcontext -a -e / /my/apps
  2. 通过列出 SELinux 策略的本地自定义来验证文件上下文等效性:

    # semanage fcontext -l -C
    
    SELinux Local fcontext Equivalence
    
    /my/apps = /
  3. /my/apps 的上下文恢复为默认值,这等同于 / 的上下文:

    # restorecon -Rv /my/apps
    restorecon reset /my/apps context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:root_t:s0
    restorecon reset /my/apps/bin context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0
    restorecon reset /my/apps/bin/executable context unconfined_u:object_r:default_t:s0->unconfined_u:object_r:bin_t:s0

这种方法将正确的标签分配给安装在非标准位置的大多数文件和目录,这也会导致某些可执行文件启动正确标记的进程。

要删除文件上下文等效性,请使用以下命令:

# semanage fcontext -d -e / /my/apps
  • 如需更多信息,请参阅 semanage-fcontext 手册页。

8.6.4. SELinux 布尔值的更改

8.6.4.1. 新 SELinux 布尔值

这个 SELinux 系统策略更新引进了以下布尔值:

  • colord_use_nfs
  • deny_bluetooth
  • httpd_use_opencryptoki
  • logrotate_use_fusefs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • tor_can_onion_services
  • unconfined_dyntrans_all
  • use_virtualbox
  • virt_sandbox_share_apache_content
  • virt_use_pcscd

8.6.4.2. 删除的 SELinux 布尔值

以前版本中提供的以下布尔值在 RHEL 8 SELinux 策略中不提供:

  • container_can_connect_any
  • ganesha_use_fusefs

8.6.4.3. 更改默认值

在 RHEL 8 中,以下 SELinux 布尔值被设置为与上一版本不同的默认值:

  • domain_can_mmap_files 现在默认为 off
  • httpd_graceful_shutdown 现在被默认设置为 off
  • mozilla_plugin_can_network_connect 现在被默认设置为 on
  • named_write_master_zones 现在被默认设置为 on

例如,antivirus_use_jitssh_chroot_rw_homedirs 布尔值的描述已改变。

要获得包括其含义的布尔值列表,并找出它们是否被启用或禁用了,请安装 selinux-policy-devel 软件包并使用:

# semanage boolean -l

8.6.5. SELinux 端口类型更改

RHEL 8 SELinux 策略提供以下额外端口类型:

  • appswitch_emp_port_t
  • babel_port_t
  • bfd_control_port_t
  • conntrackd_port_t
  • firepower_port_t
  • nmea_port_t
  • nsca_port_t
  • openqa_port_t
  • openqa_websockets_port_t
  • priority_e_com_port_t
  • qpasa_agent_port_t
  • rkt_port_t
  • smntubootstrap_port_t
  • statsd_port_t
  • versa_tek_port_t

dns_port_tephemeral_port_t 端口类型的定义已改变,gluster_port_t 端口类型已删除。

8.6.6. sesearch 用法的变化

  • sesearch 命令不再使用 -C 选项,它要求包括有条件的表达式。
  • -T, --type 选项已被更改为:

    • -T,--type_trans - 查找 type_transition 规则。
    • --type_member - 查找 type_member 规则。
    • --type_change - 查找 type_change 规则。

8.7. 删除的安全功能

8.7.1. shadow-utils 不再允许所有完全由数字组成的用户名和组群名

useraddgroupadd 命令不允许使用完全由数字组成的用户名和组名。不允许此类名称的原因是,这可能会导致很多工具混淆用户和组群名称以及用户和组群 ID(是数字)。请注意,完全使用数字的用户名和组群名称在 Red Hat Enterprise Linux 7 中已被弃用,在 Red Hat Enterprise Linux 8 中被完全删除。

8.7.2. 现在默认禁用securetty

由于现代 Linux 系统上 tty 设备文件的动态性质,默认情况下,securetty PAM 模块已被禁用,RHEL 中不再包含 /etc/securetty 配置文件。由于 /etc/securetty 列出了许多可能的设备,因此在大多数情形下实际效果是默认允许的,因此这种更改仅有轻微的影响。然而,如果使用更严格的配置,需要添加一行,在 /etc/pam.d 目录的适当文件里启用 pam_securetty.so 模块,并创建一个新的 /etc/securetty 文件。

8.7.3. Clevis HTTP pin 已被删除

Clevis HTTP pin 已从 RHEL 8 中删除, clevis encrypt http 子命令不再可用。

8.7.3.1. Coolkey 已删除

智能卡的 Coolkey 驱动程序已从 RHEL 8 中删除,OpenSC 现在可提供它的功能。

8.7.3.2. 已删除crypto-utils

crypto-utils 软件包已从 RHEL 8 中删除。您可以使用提供的 opensslgnutls-utilsnss-tools 软件包替代。

8.7.3.3. KLIPS 从 Libreswan中删除

在 Red Hat Enterprise Linux 8 中,已从 Libreswan 中删除了对内核 IP 安全(KLIPS)IPsec 堆栈的支持。

第 9 章 网络

9.1. NetworkManager

9.1.1. 旧版网络脚本支持

网络脚本在 Red Hat Enterprise Linux 8 中已弃用,且不再默认提供。基本安装提供了 ifupifdown 脚本的新版本,其通过 nmcli 工具调用 NetworkManager。在 Red Hat Enterprise Linux 8 中,要运行 ifupifdown 脚本,NetworkManager 必须正在运行。

注意

/sbin/ifup-localifdown-pre-localifdown-local 脚本中的自定义命令不会被执行。

如果需要这些脚本,您仍可以使用以下命令在系统中安装已弃用的网络脚本:

yum install network-scripts

ifupifdown 脚本链接到已安装的旧网络脚本。

调用旧的网络脚本会显示一个关于它们已过时的警告。

9.1.2. NetworkManager 支持 SR-IOV 虚拟功能

在 Red Hat Enterprise Linux 8 中,NetworkManager 允许为支持单根 I/O 虚拟化(SR-IOV)的接口配置虚拟功能(VF)的数量。另外,NetworkManager 允许配置 VF 的一些属性,如 MAC 地址、VLAN、欺骗检查设置以及允许的字节速率。请注意,与 SR-IOV 相关的所有属性都位于 sriov 连接设置中。详情请查看 nm-settings(5)手册 页。

9.1.3. NetworkManager 支持连接的通配符接口名称匹配

在以前的版本中,只能使用接口名的完全匹配来限制到给定接口的连接。有了这个更新,连接有一个新的支持通配符的 match.interface-name 属性。此更新使用户可以使用通配符模式以更灵活的方式选择连接的接口。

9.1.4. NetworkManager 支持配置 ethtool offload 功能

有了这个增强,NetworkManager 支持配置 ethtool 卸载功能,用户不再需要使用 init 脚本或 NetworkManager 分配程序脚本。现在,用户可以使用以下方法之一将下载功能配置为连接配置集的一部分:

  • 使用 nmcli 工具
  • 通过编辑 /etc/NetworkManager/system-connections/ 目录中的 keyfiles
  • 编辑 /etc/sysconfig/network-scripts/ifcfg-* 文件

请注意,图形界面和 nmtui 程序目前不支持这个 特性。

详情请查看 使用 nmcli 配置 ethtool 卸载功能

9.1.5. NetworkManager 现在默认使用内部 DHCP 插件

NetworkManager 支持 internaldhclient DHCP 插件。默认情况下, Red Hat Enterprise Linux(RHEL)7 中的 NetworkManager 使用 dhclient,RHEL 8 使用 internal 插件。在某些情况下,插件的行为不同。例如: dhclient 可以使用在 /etc/dhcp/ 目录里指定的附加设置。

如果您从 RHEL 7 升级到 RHEL 8,并且 NetworkManager 的行为不同,请将以下设置添加到 /etc/NetworkManager/NetworkManager.conf 文件中的 [main] 部分中,以使用dhclient 插件:

[main]
dhcp=dhclient

9.1.6. 在 RHEL 8 中,默认不会安装 NetworkManager-config-server 软件包

如果在设置过程中选择了 ServerServer with GUI 的基础环境时,才会默认安装 NetworkManager-config-server 软件包。如果您选择了一个不同的环境,使用 yum install NetworkManager-config-server 命令安装该软件包。

9.2. 数据包过滤

9.2.1. nftables 取代 iptables 作为默认的网络数据包过滤框架

nftables 框架提供数据包分类工具,它是 iptablesip6tablesarptables ebtablesipset 工具的指定继承者。与之前的数据包过滤工具相比,它在方便、特性和性能方面提供了大量改进,最重要的是:

  • 查找表而不是线性处理
  • IPv4IPv6 使用同一个协议框架
  • 规则会以一个整体被应用,而不是分为抓取、更新和存储完整的规则集的步骤
  • 支持在规则集(nftrace)和监控追踪事件(nft)中调试和追踪
  • 更加一致和压缩的语法,没有特定协议的扩展
  • 用于第三方应用程序的 Netlink API

iptables 类似,nftables 使用表来存储链。链包含执行动作的独立规则。nft 工具取代了之前数据包过滤框架中的所有工具。libnftables 库可用于通过 libmnl 库与 nftables Netlink API 进行低级交互。

iptablesip6tablesebtablesarptables 工具被具有相同名称的基于 nftables 的置入替换所替代。虽然外部行为与其传统的行为相同,但它们在需要时通过兼容性接口在内部使用带有传统 netfilter 内核模块的 nftables

可使用 nft list ruleset 命令查看模块对 nftables 规则集的影响。由于这些工具将表、链和规则添加到 nftables 规则集中,因此请注意 nftables 规则集操作,如 nft flush ruleset 命令,可能会影响使用之前单独的传统命令安装的规则集。

为了帮助快速识存在该工具的哪个变体,版本信息已被更新,其中包含了后端名称。在 RHEL 8 中,基于 nftables 的 iptables 工具打印以下版本字符串:

$ iptables --version
iptables v1.8.0 (nf_tables)

为了进行比较,如果存在传统的 iptables 工具,则会打印以下版本信息:

$ iptables --version
iptables v1.8.0 (legacy)

9.2.2. Arptables FORWARD 从RHEL 8 的过滤表中删除。

在 Red Hat Enterprise Linux(RHEL)8 中已删除了 arptables FORWARD 链功能。您现在可以使用 ebtables 工具的 FORWARD 链将规则添入。

9.2.3. iptables-ebtables 的输出与 ebtables 不是 100% 兼容

在 RHEL 8 中,ebtables 命令由 iptables-ebtables 软件包提供,其中包含基于 nftables 工具的重新实现。此工具有不同的代码库,其输出在诸多方面有偏差,这些偏差要么可以忽略不计,要么是刻意的设计选择。

因此,在迁移用于解析 ebtables 输出脚本时,需要对脚本进行以下调整:

  • 将 MAC 地址格式化改为固定长度。必要时,在独立的字节值的开始包含一个 0,用于维护每个字段值带有两个字符。
  • 已更改 IPv6 前缀的格式以符合 RFC 4291。斜杠字符后的结尾部分不再包含 IPv6 地址格式的子网掩码,而是一个前缀长度。这个更改只适用于有效的(left-contiguous)掩码,其他更改则仍然以旧格式打印。

9.2.4. 将 iptables 转换为 nftables 的新工具

这个更新添加了 iptables-translateip6tables-translate 工具,以便将现有的 iptablesip6tables 规则转换为 nftables 的等效规则。请注意,一些扩展可能缺少响应的转换支持。如果存在这样的扩展,工具会打印具有 # 符号前缀的未转换的规则。例如:

| % iptables-translate -A INPUT -j CHECKSUM --checksum-fill
| nft # -A INPUT -j CHECKSUM --checksum-fill

此外,用户可以使用 iptables-restore-translateip6tables-restore-translate 工具来转换规则的转储。请注意,在此之前,用户可以使用 iptables-saveip6tables-save 命令来打印当前规则的转储。例如:

| % sudo iptables-save >/tmp/iptables.dump
| % iptables-restore-translate -f /tmp/iptables.dump
| # Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018
| add table ip nat
| ...

9.3. wpa_supplicant 的变化

9.3.1. journalctl 现在可读取 wpa_supplicant 日志

在 Red Hat Enterprise Linux(RHEL)8 中,wpa_supplicant 软件包是在启用了 CONFIG_DEBUG_SYSLOG 的情况下构建的。这允许使用 journalctl 工具读取 wpa_supplicant 日志,而不必检查 /var/log/wpa_supplicant.log 文件的内容。

9.3.2. wpa_supplicant 中无线扩展的编译时间支持被禁用

wpa_supplicant 软件包不支持无线扩展。当用户试图将 wext 用作命令行参数,或者试图在只支持无线扩展的旧适配器上使用它时,将无法运行 wpa_supplicant 守护进程。

9.4. 新数据块类型 I-DATA,被添加到 SCTP

这个更新向流控制传输协议(SCTP)中添加了一个新的数据块类型 I-DATA 和流调度程序。在以前的版本中,SCTP 会按照用户发送的顺序发送用户消息。因此,一个大型 SCTP 用户消息会阻止任何流中的所有其他信息,直到完全发送完为止。使用 I-DATA 块时,传输序列号(TSN)字段不会被过载。因此,SCTP 现在可以以不同的方式调度流,I-DATA 允许用户消息交叉(RFC 8260)。请注意,这两个对等体都必须支持 I-DATA 块类型。

9.5. RHEL 8 中的主要 TCP 特性

Red Hat Enterprise Linux 8 提供了 TCP 网络堆栈版本 4.18,它提供更高的性能、更好的可伸缩性和稳定性。性能会提高,特别是对于入站连接率高的忙碌的 TCP 服务器的性能。

此外,还提供了两种新的 TCP 拥堵算法: BBRNV,在大多数场景中提供比 cubic 更低的延迟和更好的吞吐量。

9.5.1. RHEL 8 中的 TCP BBR 支持

现在,Red Hat Enterprise Linux(RHEL)8 中支持一个新的 TCP 拥堵控制算法,瓶颈带宽和往返时间(BBR)。BBR 尝试确定瓶颈链路的带宽和往返时间(RTT)。大部分拥堵算法都基于数据包丢失,包括 CUBIC,默认的 Linux TCP 拥堵控制算法,其在高吞吐量链路上有问题。BBR 不直接响应丢失事件,它会调整 TCP 架构率使其与可用带宽匹配。

有关此问题的详情,请参考如何配置 TCP BBR 阻塞控制算法

9.7. 网络接口名称更改

在 Red Hat Enterprise Linux 8 中,默认使用与 RHEL 7 相同的一致的网络设备命名方案。但是,某些内核驱动程序,如 e1000e,nfpqedesfctg3bnxt_en 在全新安装 RHEL 8 时更改了其一致的名称。但是,名称会在从 RHEL 7 升级时保留。

9.8. ipv6netmaskgatewayhostname 内核参数已删除

从 RHEL 8.3 开始,在内核命令行中配置网络的 ipv6netmaskgatewayhostname 内核参数不再提供。反之,使用接受不同格式的整合的 ip 参数,如下所示:

ip=IP_address:peer:gateway_IP_address:net_mask:host_name:interface_name:configuration_method

有关各个字段以及此参数接受的其他格式的详情,请查看 dracut.cmdline(7) 手册页中 ip 参数的描述。

9.9. tc 命令的 -ok 选项被删除

在 Red Hat Enterprise Linux 8 中删除了 tc 命令的 -ok 选项。作为临时解决方案,用户可以实施代码直接通过与内核的 netlink 进行通信。收到响应消息,表示已发送请求的完成和状态。另一种方法是为每个命令单独调用 tc。在自定义脚本中可能会发生这种情况,该脚本会通过为每个成功的 tc 调用打印 OK 来模拟 tc -batch 行为。

第 10 章 内核

10.1. 资源控制

10.1.1. 控制组 v2 在 RHEL 8 中作为技术预览提供

控制组群 v2 机制是一个统一的分级控制组群。控制组 v2 以分层方式组织进程,并以受控和可配置的方式按层分配系统资源。

与之前的版本不同,控制组 v2 只有一个层次结构。这个单一层次结构使 Linux 内核能够:

  • 根据拥有者的角色对进程进行分类。
  • 解决多个分级冲突策略的问题。

控制组群 v2 支持大量控制器:

  • CPU 控制器规定了 CPU 周期的分布。这个控制器实现:

    • 常规调度策略的权重和绝对带宽限制模型。
    • 实时调度策略的绝对带宽分配模型。
  • 内存控制器规定了内存分布。目前,会追踪以下类型的内存用量:

    • Userland memory - 页面缓存和匿名内存。
    • 内核数据结构,如密度和内节点。
    • TCP 套接字缓冲。
  • I/O 控制器规定了 I/O 资源的分配。
  • 远程直接内存访问(RDMA)控制器限制某些进程可以使用的特定于 RDMA/IB 的资源。这些进程通过 RDMA 控制器分组。
  • 进程号控制器使控制组能够在某个限制后停止被 fork()clone() 的任何新任务。
  • 写回控制器作为一种机制,可平衡 I/O 和内存控制器之间的冲突。

以上信息基于 cgroups-v2 在线文档。您可以参照同一链接获得有关特定 控制组 v2 控制器的更多信息。

10.2. 内存管理

10.2.1. 为 64 位 ARM 提供了 52-bit PA

在这个版本中,支持 64 位 ARM 架构的 52 位物理寻址(PA)。这提供了比之前 48 位 PA 更大的物理地址空间。

10.2.2. 5 级页面表 x86_64

在 RHEL 7 中,现有内存总线有 48/46 位的虚拟/物理内存寻址容量,而 Linux 内核实现了 4 级页表,以将这些虚拟地址管理成物理地址。物理总线寻址行会使物理内存上限限制为 64TB。

这些限制已扩展到 57/52 位的虚拟/物理内存寻址,具有 128 PiB 的虚拟地址空间(64PB user/64PB kernel)和 4 PB 的物理内存容量。

有了扩展地址范围,RHEL 8 中的内存管理增加了对 5 级页表实现的支持。此实现能够处理最多 128 PiB 的虚拟地址空间和 4 PiB 的物理地址空间的扩展地址范围。

默认情况下,对支持此功能的硬件启用了 5 级页表,即使安装的物理内存小于 64 TiB。对于内存不足 64 TiB 的系统,遍历 5 级页表方面的开销略有增加。为避免这种开销,用户可以使用 no5lvl 内核命令行参数禁用 5 级页表,以强制使用 4 级页表。

10.3. 性能分析和可观察工具

10.3.1. bpftool 添加到内核中

用于根据扩展的 Berkeley 数据包过滤(eBPF)检查和简单操作程序和映射的 bpftool 工具已添加到 Linux 内核中。bpftool 是内核源树的一部分,由 bpftool 软件包提供,该软件包作为 kernel 软件包的子软件包被包含。

10.3.2. eBPF 作为技术预览提供

扩展的 Berkeley 数据包过滤(eBPF) 功能作为网络和追踪的技术预览提供。eBPF 可让用户空间将自定义程序附加到多个点(套接字、追踪点、数据包接收),从而接收和处理数据。该功能包括一个新的系统调用 bpf(),它支持创建各种类型的映射,也可将各种类型的程序插入到内核中。请注意,只有具有 CAP_SYS_ADMIN 能力的用户(如一个 root 用户)才可以成功使用 bpf() syscall。更多信息,请参阅 bpf(2) man page。

10.3.3. BCC 作为技术预览提供

BPF Compiler Collection(BCC) 是一个用户空间工具包,用于创建有效的内核跟踪和操作程序,在 RHEL 8 中作为技术预览提供。BCC 使用 扩展的 Berkeley 数据包过滤(eBPF) 为 Linux 操作系统的 I/O 分析、网络和监控提供工具。

10.4. 引导过程

10.4.1. 如何在 RHEL 中安装和引导自定义内核

Boot Loader 规格(BLS)定义一种模式和文件格式,以管理置入目录中每个引导选项的启动加载器配置。不需要操作单独的 drop-in 配置文件。这个前提在 RHEL 8 中尤其重要,因为并不是所有构架都使用相同的引导装载程序:

  • 具有开放固件的 x86_64aarch64ppc64le 都使用 GRUB2
  • 具有 Open Power Abstraction Layer(OPAL)的 ppc64le 使用 Petitboot
  • s390x 使用 zipl

每个引导装载程序都有不同的配置文件和格式,在安装或删除新内核时必须修改这些格式。在之前的 RHEL 版本中,允许此工作的组件是 grubby 工具。但是,对于 RHEL 8,引导装载程序配置通过实现 BLS 文件格式实现标准化的,其中 grubby 作为 BLS 操作的瘦包装器来工作。

10.4.2. RHEL 中的早期 kdump 支持

在以前的版本中,kdump 服务启动得太晚,以致无法注册引导过程早期阶段发生的内核崩溃。因此,崩溃信息以及进行故障排除的机会会丢失。

要解决这个问题,RHEL 8 引入了 早期 kdump 支持。要了解有关此机制的更多信息,请参阅 /usr/share/doc/kexec-tools/early-kdump-howto.txt 文件。另请参阅早期 kdump 支持以及如何配置它?

第 11 章 硬件启用

11.1. 删除的硬件支持

RHEL 7 中支持以下设备驱动程序和适配器,但 RHEL 8.0 中不再可用。

11.1.1. 删除的设备驱动程序

RHEL 8 中删除了对以下设备驱动程序的支持:

  • 3w-9xxx
  • 3w-sas
  • aic79xx
  • aoe
  • arcmsr
  • ata 驱动:

    • acard-ahci
    • sata_mv
    • sata_nv
    • sata_promise
    • sata_qstor
    • sata_sil
    • sata_sil24
    • sata_sis
    • sata_svw
    • sata_sx4
    • sata_uli
    • sata_via
    • sata_vsc
  • bfa
  • cxgb3
  • cxgb3i
  • e1000
  • floppy
  • hptiop
  • initio
  • isci
  • iw_cxgb3
  • mptbase - 此驱动程序保留给虚拟化用例,并便于开发人员过渡。但是,它不被支持。
  • mptctl
  • mptsas - 此驱动程序保留给虚拟化用例,并方便开发人员过渡。但是,它不被支持。
  • mptscsih - 此驱动程序保留给虚拟化用例,并便于开发人员过渡。但是,它不被支持。
  • mptspi - 此驱动程序保留给虚拟化用例,并方便开发人员过渡。但是,它不被支持。
  • mthca
  • mtip32xx
  • mvsas
  • mvumi
  • OSD 驱动程序:

    • osd
    • libosd
  • osst
  • pata 驱动:

    • pata_acpi
    • pata_ali
    • pata_amd
    • pata_arasan_cf
    • pata_artop
    • pata_atiixp
    • pata_atp867x
    • pata_cmd64x
    • pata_cs5536
    • pata_hpt366
    • pata_hpt37x
    • pata_hpt3x2n
    • pata_hpt3x3
    • pata_it8213
    • pata_it821x
    • pata_jmicron
    • pata_marvell
    • pata_netcell
    • pata_ninja32
    • pata_oldpiix
    • pata_pdc2027x
    • pata_pdc202xx_old
    • pata_piccolo
    • pata_rdc
    • pata_sch
    • pata_serverworks
    • pata_sil680
    • pata_sis
    • pata_via
    • pdc_adma
  • pm80xx(pm8001)
  • pmcraid
  • qla3xxx - 此驱动程序保留给虚拟化用例,并便于开发人员过渡。但是,它不被支持。
  • qlcnic
  • qlge
  • stex
  • sx8
  • tulip
  • ufshcd
  • 无线驱动程序:

    • carl9170
    • iwl4965
    • iwl3945
    • mwl8k
    • rt73usb
    • rt61pci
    • rtl8187
    • wil6210

11.1.2. 删除的适配器

RHEL 8 中删除了对以下列出的适配器的支持。对以上驱动程序中列出的适配器以外的适配器的支持没有改变。

PCI ID 的格式是 vendor:device:subvendor:subdevice。如果没有列出 subdevicesubvendor:subdevice 条目,则会删除具有此类缺失条目值的设备。

要在您的系统中检查硬件的 PCI ID,请运行 lspci -nn 命令。

  • 已从 aacraid 驱动程序中删除了以下适配器:

    • PERC 2/Si (Iguana/PERC2Si), PCI ID 0x1028:0x0001:0x1028:0x0001
    • PERC 3/Di (Opal/PERC3Di), PCI ID 0x1028:0x0002:0x1028:0x0002
    • PERC 3/Si (SlimFast/PERC3Si), PCI ID 0x1028:0x0003:0x1028:0x0003
    • PERC 3/Di (Iguana FlipChip/PERC3DiF), PCI ID 0x1028:0x0004:0x1028:0x00d0
    • PERC 3/Di (Viper/PERC3DiV), PCI ID 0x1028:0x0002:0x1028:0x00d1
    • PERC 3/Di (Lexus/PERC3DiL), PCI ID 0x1028:0x0002:0x1028:0x00d9
    • PERC 3/Di (Jaguar/PERC3DiJ), PCI ID 0x1028:0x000a:0x1028:0x0106
    • PERC 3/Di (Dagger/PERC3DiD), PCI ID 0x1028:0x000a:0x1028:0x011b
    • PERC 3/Di (Boxster/PERC3DiB), PCI ID 0x1028:0x000a:0x1028:0x0121
    • catapult, PCI ID 0x9005:0x0283:0x9005:0x0283
    • tomcat, PCI ID 0x9005:0x0284:0x9005:0x0284
    • Adaptec 2120S (Crusader), PCI ID 0x9005:0x0285:0x9005:0x0286
    • Adaptec 2200S (Vulcan), PCI ID 0x9005:0x0285:0x9005:0x0285
    • Adaptec 2200S (Vulcan-2m), PCI ID 0x9005:0x0285:0x9005:0x0287
    • Legend S220 (Legend Crusader), PCI ID 0x9005:0x0285:0x17aa:0x0286
    • Legend S230 (Legend Vulcan), PCI ID 0x9005:0x0285:0x17aa:0x0287
    • Adaptec 3230S (Harrier), PCI ID 0x9005:0x0285:0x9005:0x0288
    • Adaptec 3240S (Tornado), PCI ID 0x9005:0x0285:0x9005:0x0289
    • ASR-2020ZCR SCSI PCI-X ZCR (Skyhawk), PCI ID 0x9005:0x0285:0x9005:0x028a
    • ASR-2025ZCR SCSI SO-DIMM PCI-X ZCR (Terminator), PCI ID 0x9005:0x0285:0x9005:0x028b
    • ASR-2230S + ASR-2230SLP PCI-X (Lancer), PCI ID 0x9005:0x0286:0x9005:0x028c
    • ASR-2130S (Lancer), PCI ID 0x9005:0x0286:0x9005:0x028d
    • AAR-2820SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029b
    • AAR-2620SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029c
    • AAR-2420SA (Intruder), PCI ID 0x9005:0x0286:0x9005:0x029d
    • ICP9024RO (Lancer), PCI ID 0x9005:0x0286:0x9005:0x029e
    • ICP9014RO (Lancer), PCI ID 0x9005:0x0286:0x9005:0x029f
    • ICP9047MA (Lancer), PCI ID 0x9005:0x0286:0x9005:0x02a0
    • ICP9087MA (Lancer), PCI ID 0x9005:0x0286:0x9005:0x02a1
    • ICP5445AU (Hurricane44), PCI ID 0x9005:0x0286:0x9005:0x02a3
    • ICP9085LI (Marauder-X), PCI ID 0x9005:0x0285:0x9005:0x02a4
    • ICP5085BR (Marauder-E), PCI ID 0x9005:0x0285:0x9005:0x02a5
    • ICP9067MA (Intruder-6), PCI ID 0x9005:0x0286:0x9005:0x02a6
    • Themisto Jupiter Platform, PCI ID 0x9005:0x0287:0x9005:0x0800
    • Themisto Jupiter Platform, PCI ID 0x9005:0x0200:0x9005:0x0200
    • Callisto Jupiter Platform, PCI ID 0x9005:0x0286:0x9005:0x0800
    • ASR-2020SA SATA PCI-X ZCR (Skyhawk), PCI ID 0x9005:0x0285:0x9005:0x028e
    • ASR-2025SA SATA SO-DIMM PCI-X ZCR (Terminator), PCI ID 0x9005:0x0285:0x9005:0x028f
    • AAR-2410SA PCI SATA 4ch (Jaguar II), PCI ID 0x9005:0x0285:0x9005:0x0290
    • CERC SATA RAID 2 PCI SATA 6ch (DellCorsair), PCI ID 0x9005:0x0285:0x9005:0x0291
    • AAR-2810SA PCI SATA 8ch (Corsair-8), PCI ID 0x9005:0x0285:0x9005:0x0292
    • AAR-21610SA PCI SATA 16ch (Corsair-16), PCI ID 0x9005:0x0285:0x9005:0x0293
    • ESD SO-DIMM PCI-X SATA ZCR (Prowler), PCI ID 0x9005:0x0285:0x9005:0x0294
    • AAR-2610SA PCI SATA 6ch, PCI ID 0x9005:0x0285:0x103C:0x3227
    • ASR-2240S (SabreExpress), PCI ID 0x9005:0x0285:0x9005:0x0296
    • ASR-4005, PCI ID 0x9005:0x0285:0x9005:0x0297
    • IBM 8i (AvonPark), PCI ID 0x9005:0x0285:0x1014:0x02F2
    • IBM 8i (AvonPark Lite), PCI ID 0x9005:0x0285:0x1014:0x0312
    • IBM 8k/8k-l8 (Aurora), PCI ID 0x9005:0x0286:0x1014:0x9580
    • IBM 8k/8k-l4 (Aurora Lite), PCI ID 0x9005:0x0286:0x1014:0x9540
    • ASR-4000 (BlackBird), PCI ID 0x9005:0x0285:0x9005:0x0298
    • ASR-4800SAS (Marauder-X), PCI ID 0x9005:0x0285:0x9005:0x0299
    • ASR-4805SAS (Marauder-E), PCI ID 0x9005:0x0285:0x9005:0x029a
    • ASR-3800 (Hurricane44), PCI ID 0x9005:0x0286:0x9005:0x02a2
    • Perc 320/DC, PCI ID 0x9005:0x0285:0x1028:0x0287
    • Adaptec 5400S (Mustang), PCI ID 0x1011:0x0046:0x9005:0x0365
    • Adaptec 5400S (Mustang), PCI ID 0x1011:0x0046:0x9005:0x0364
    • Dell PERC2/QC, PCI ID 0x1011:0x0046:0x9005:0x1364
    • HP NetRAID-4M, PCI ID 0x1011:0x0046:0x103c:0x10c2
    • Dell Catchall, PCI ID 0x9005:0x0285:0x1028
    • Legend Catchall, PCI ID 0x9005:0x0285:0x17aa
    • Adaptec Catch All, PCI ID 0x9005:0x0285
    • Adaptec Rocket Catch All, PCI ID 0x9005:0x0286
    • Adaptec NEMER/ARK Catch All, PCI ID 0x9005:0x0288
  • 已从 mlx4_core 驱动程序中删除了以下 Mellanox Gen2 和 ConnectX-2 适配器:

    • PCI ID 0x15B3:0x1002
    • PCI ID 0x15B3:0x676E
    • PCI ID 0x15B3:0x6746
    • PCI ID 0x15B3:0x6764
    • PCI ID 0x15B3:0x675A
    • PCI ID 0x15B3:0x6372
    • PCI ID 0x15B3:0x6750
    • PCI ID 0x15B3:0x6368
    • PCI ID 0x15B3:0x673C
    • PCI ID 0x15B3:0x6732
    • PCI ID 0x15B3:0x6354
    • PCI ID 0x15B3:0x634A
    • PCI ID 0x15B3:0x6340
  • The following adapters from the mpt2sas driver have been removed:

    • SAS2004, PCI ID 0x1000:0x0070
    • SAS2008, PCI ID 0x1000:0x0072
    • SAS2108_1, PCI ID 0x1000:0x0074
    • SAS2108_2, PCI ID 0x1000:0x0076
    • SAS2108_3, PCI ID 0x1000:0x0077
    • SAS2116_1, PCI ID 0x1000:0x0064
    • SAS2116_2, PCI ID 0x1000:0x0065
    • SSS6200, PCI ID 0x1000:0x007E
  • 移除了 megaraid_sas 驱动程序中的以下适配器:

    • Dell PERC5, PCI ID 0x1028:0x0015
    • SAS1078R, PCI ID 0x1000:0x0060
    • SAS1078DE, PCI ID 0x1000:0x007C
    • SAS1064R, PCI ID 0x1000:0x0411
    • VERDE_ZCR, PCI ID 0x1000:0x0413
    • SAS1078GEN2, PCI ID 0x1000:0x0078
    • SAS0079GEN2, PCI ID 0x1000:0x0079
    • SAS0073SKINNY, PCI ID 0x1000:0x0073
    • SAS0071SKINNY, PCI ID 0x1000:0x0071
  • 已经删除了 qla2xxx 驱动程序中的以下适配器:

    • ISP24xx, PCI ID 0x1077:0x2422
    • ISP24xx, PCI ID 0x1077:0x2432
    • ISP2422, PCI ID 0x1077:0x5422
    • QLE220, PCI ID 0x1077:0x5432
    • QLE81xx, PCI ID 0x1077:0x8001
    • QLE10000, PCI ID 0x1077:0xF000
    • QLE84xx, PCI ID 0x1077:0x8044
    • QLE8000, PCI ID 0x1077:0x8432
    • QLE82xx, PCI ID 0x1077:0x8021
  • 已删除 qla4xxx 驱动程序中的以下适配器:

    • QLOGIC_ISP8022, PCI ID 0x1077:0x8022
    • QLOGIC_ISP8324, PCI ID 0x1077:0x8032
    • QLOGIC_ISP8042, PCI ID 0x1077:0x8042
  • 已经删除了 be2iscsi 驱动程序中的以下适配器:

    • BladeEngine 2(BE2)设备

      • BladeEngine2 10Gb iSCSI Initiator (generic), PCI ID 0x19a2:0x212
      • OneConnect OCe10101, OCm10101, OCe10102, OCm10102 BE2 adapter family, PCI ID 0x19a2:0x702
      • OCe10100 BE2 adapter family, PCI ID 0x19a2:0x703
    • BladeEngine 3(BE3)设备

      • OneConnect TOMCAT iSCSI, PCI ID 0x19a2:0x0712
      • BladeEngine3 iSCSI, PCI ID 0x19a2:0x0222
  • 移除了由 be2net 驱动程序控制的以下以太网适配器:

    • BladeEngine 2(BE2)设备

      • OneConnect TIGERSHARK NIC, PCI ID 0x19a2:0x0700
      • BladeEngine2 Network Adapter, PCI ID 0x19a2:0x0211
    • BladeEngine 3(BE3)设备

      • OneConnect TOMCAT NIC, PCI ID 0x19a2:0x0710
      • BladeEngine3 Network Adapter, PCI ID 0x19a2:0x0221
  • 已从 lpfc 驱动程序中删除了以下适配器:

    • BladeEngine 2(BE2)设备

      • OneConnect TIGERSHARK FCoE, PCI ID 0x19a2:0x0704
    • BladeEngine 3(BE3)设备

      • OneConnect TOMCAT FCoE, PCI ID 0x19a2:0x0714
    • 光纤通道(FC)设备

      • FIREFLY, PCI ID 0x10df:0x1ae5
      • PROTEUS_VF, PCI ID 0x10df:0xe100
      • BALIUS, PCI ID 0x10df:0xe131
      • PROTEUS_PF, PCI ID 0x10df:0xe180
      • RFLY, PCI ID 0x10df:0xf095
      • PFLY, PCI ID 0x10df:0xf098
      • LP101, PCI ID 0x10df:0xf0a1
      • TFLY, PCI ID 0x10df:0xf0a5
      • BSMB, PCI ID 0x10df:0xf0d1
      • BMID, PCI ID 0x10df:0xf0d5
      • ZSMB, PCI ID 0x10df:0xf0e1
      • ZMID, PCI ID 0x10df:0xf0e5
      • NEPTUNE, PCI ID 0x10df:0xf0f5
      • NEPTUNE_SCSP, PCI ID 0x10df:0xf0f6
      • NEPTUNE_DCSP, PCI ID 0x10df:0xf0f7
      • FALCON, PCI ID 0x10df:0xf180
      • SUPERFLY, PCI ID 0x10df:0xf700
      • DRAGONFLY, PCI ID 0x10df:0xf800
      • CENTAUR, PCI ID 0x10df:0xf900
      • PEGASUS, PCI ID 0x10df:0xf980
      • THOR, PCI ID 0x10df:0xfa00
      • VIPER, PCI ID 0x10df:0xfb00
      • LP10000S, PCI ID 0x10df:0xfc00
      • LP11000S, PCI ID 0x10df:0xfc10
      • LPE11000S, PCI ID 0x10df:0xfc20
      • PROTEUS_S, PCI ID 0x10df:0xfc50
      • HELIOS, PCI ID 0x10df:0xfd00
      • HELIOS_SCSP, PCI ID 0x10df:0xfd11
      • HELIOS_DCSP, PCI ID 0x10df:0xfd12
      • ZEPHYR, PCI ID 0x10df:0xfe00
      • HORNET, PCI ID 0x10df:0xfe05
      • ZEPHYR_SCSP, PCI ID 0x10df:0xfe11
      • ZEPHYR_DCSP, PCI ID 0x10df:0xfe12
    • Lancer FCoE CNA devices

      • OCe15104-FM, PCI ID 0x10df:0xe260
      • OCe15102-FM, PCI ID 0x10df:0xe260
      • OCm15108-F-P, PCI ID 0x10df:0xe260

11.1.3. 其他删除的硬件支持

11.1.3.1. 不再支持 AGP 图形卡

Red Hat Enterprise Linux 8 不支持使用图形化端口(AGP)总线的图形卡。推荐使用 PCI Express 总线的图形卡替换。

11.1.3.2. 删除 FCoE 软件

已从 Red Hat Enterprise Linux 8 中删除了使用以太网的光纤(FCoE)软件。特别是,不再为通过以太网适配器和驱动程序创建软件 FCoE 接口提供 fcoe.ko 内核模块。这一变化是因为没有为软件管理的 FCoE 采用行业。

Red Hat Enterprise 8 的具体变更包括:

  • fcoe.ko 内核模块不再可用。这删除了对启用了以太网适配器和驱动程序的数据中心 Bridging 的软件 FCoE 的支持。
  • 使用 lldpad ,通过 Data Center Bridging eXchange(DCBX) 的链路级软件配置不再支持 FCoE。

    • fcoe-utils 工具(特别是 fcoemon)默认配置为不会验证 DCB 配置或与 lldpad 通讯。
    • lldpadfcoemon 中集成可能会被永久禁用。
  • fcoe-utils 不再使用 libhbaapilibhbalinux 库,并不会直接被红帽测试。

对以下内容的支持保持不变:

  • 目前支持的卸载 FCoE 适配器作为操作系统的光纤通道适配器显示,且不使用 fcoe-utils 管理工具,除非在单独的备注中另有说明。这适用于 lpfc FC 驱动程序支持的所择适配器。请注意,bfa 驱动程序不包括在 Red Hat Enterprise Linux 8 中。
  • 目前支持使用 fcoe-utils 管理工具的卸载 FCoE 适配器,但它们有自己的内核驱动程序而不是 fcoe.ko,并在其驱动程序和/或固件中管理 DCBX 配置,除非单独的备注中另有说明。Red Hat Enterprise Linux 8 将继续完全支持 fnicbnx2fcqedf驱动。
  • libfc.kolibfcoe.ko 内核模块是上一个声明涵盖的一些受支持的驱动程序的内核模块。

如需更多信息,请参阅 软件 FCoE 和光纤通道不再支持目标模式

11.1.3.3. RHEL 8 不支持 e1000 网络驱动程序

在 Red Hat Enterprise Linux 8 中不支持 e1000 网络驱动程序。这会影响裸机和虚拟环境。但是,在 RHEL 8 中仍会全面支持较新的 e1000e 网络驱动程序。

11.1.3.4. RHEL 8 不支持 tulip 驱动程序

在这个版本中, tulip 网络驱动程序不再被支持。因此,当在 Microsoft Hyper-V hypervisor 上的第一代虚拟机(VM)上使用 RHEL 8 时,"Legacy Network Adapter"设备无法正常工作,这会导致此类虚拟机的 PXE 安装失败。

要使 PXE 安装正常工作,请在生成 2 Hyper-V 虚拟机上安装 RHEL 8。如果您需要 RHEL 8 第一代虚拟机,请使用 ISO 安装。

11.1.3.5. qla2xxx 驱动程序不再支持目标模式

已禁用对带有 qla2xxx QLogic 光纤通道驱动程序的目标模式的支持。这一变化的影响有:

  • 内核不再提供 tcm_qla2xxx 模块。
  • rtslib 库和 targetcli 工具程序不再支持 qla2xxx

仍然支持 qla2xxx 的 initiator 模式。

第 12 章 文件系统和存储

12.1. 文件系统

12.1.1. Btrfs 已删除

Red Hat Enterprise Linux 8 删除了 Btrfs 文件系统。这包括以下组件:

  • btrfs.ko 内核模块
  • btrfs-progs 软件包
  • snapper 软件包

您无法再创建、挂载或者安装 Red Hat Enterprise Linux 8 的 Btrfs 文件系统。Anaconda 安装程序和 Kickstart 命令不再支持 Btrfs。

12.1.2. XFS 现在支持共享的 copy-on-write 数据扩展

XFS 支持共享的 copy-on-write 数据扩展功能这个功能可让两个或者多个文件共享一组通用的数据块。当任何一个共享通用块更改的文件时, XFS 会破坏到通用块的链接并创建新文件。这与其他文件系统中找到的 copy-on-write(COW)功能类似。

共享复制时写入数据扩展:

速度快
创建共享副本不会利用磁盘 I/O。
空间效率
共享块不消耗额外的磁盘空间。
透明
共享常见块操作的文件,类似常规文件。

用户空间工具可以使用共享的复制时写入数据扩展:

  • 高效的文件克隆,例如使用 cp --reflink 命令
  • 针对文件的快照

内核子系统(如 Overlayfs 和 NFS)也使用这个功能来更有效地操作。

xfsprogs 软件包版本 4.17.0-2.el8 开始,现在在创建 XFS 文件系统时默认启用共享 copy-on-write 数据扩展。

请注意,直接访问(DAX)设备目前不支持带有共享 copy-on-write 数据扩展的 XFS。要创建没有这个功能的 XFS 文件系统,请使用以下命令:

# mkfs.xfs -m reflink=0 block-device

Red Hat Enterprise Linux 7 可以使用共享复制时写入数据扩展以只读模式挂载 XFS 文件系统。

12.1.3. ext4 文件系统现在支持元数据 checksum

有了这个更新,ext4 元数据受校验和的保护。这可让文件系统识别损坏的元数据,从而避免了损坏,并增加文件系统的弹性。

12.1.4. 不再提供 /etc/sysconfig/nfs 文件和传统的 NFS 服务名称

在 Red Hat Enterprise Linux 8.0 中, NFS 配置已经从 Red Hat Enterprise Linux 7 中使用的 /etc/sysconfig/nfs 配置文件移到/etc/nfs.conf

/etc/nfs.conf 文件使用了不同的语法。Red Hat Enterprise Linux 8 尝试在从 Red Hat Enterprise Linux 7 升级时自动将所有选项从 /etc/sysconfig/nfs 转换为 /etc/nfs.conf

这两个配置文件在 Red Hat Enterprise Linux 7 中都被支持。红帽建议您使用新的 /etc/nfs.conf 文件来在与自动配置系统兼容的所有 Red Hat Enterprise Linux 版本中进行 NFS 配置。

另外,以下 NFS 服务别名已被删除,并使用它们的上游名称替换:

  • nfs.service,使用 nfs-server.service替代
  • nfs-secure.service,使用 rpc-gssd.service 替代
  • rpcgssd.service,使用 rpc-gssd.service 替代
  • nfs-idmap.service,使用 nfs-idmapd.service 替代
  • rpcidmapd.service,使用 nfs-idmapd.service 替代
  • nfs-lock.service,使用 rpc-statd.service 替代
  • nfslock.service,使用 rpc-statd.service 替代

12.2. 存储

12.2.1. BOOM 引导管理器简化了创建引导条目的过程

BOOM 是 Linux 系统的引导管理器,其使用引导装载程序支持引导条目配置的 BootLoader 规范。它启用了灵活的引导配置,并简化了新的或修改的引导条目的创建:例如,要使用 LVM 创建的系统引导快照镜像。

BOOM 不会修改现有的引导装载程序配置,仅插入附加条目。现有配置得到了维护,任何发行版集成,如内核安装和更新脚本,都可以象以前一样继续工作。

BOOM 具有简化的命令行界面(CLI)和 API,这简化了创建引导条目的任务。

12.2.2. Stratis 现在可用

Stratis 是一个新的本地存储管理器。它在存储池的上面为用户提供额外的功能。

Stratis 可让您更轻松地执行存储任务,比如:

  • 管理快照和精简配置
  • 根据需要自动增大文件系统大小
  • 维护文件系统

要管理 Stratis 存储,使用 stratis 工具来与 stratisd 后台服务进行通信。

Stratis 作为技术预览提供。

如需更多信息,请参阅 Stratis 文档:设置 Stratis 文件系统

12.2.3. LUKS2 现在是加密卷的默认格式

在 RHEL 8 中,LUKS 版本 2 (LUKS2)格式替换了传统的 LUKS(LUKS1)格式。dm-crypt 子系统和 cryptsetup 工具现在使用 LUKS2 作为加密卷的默认格式。LUKS2 在出现部分元数据崩溃事件时,为加密卷提供元数据冗余和自动恢复功能。

由于内部布局,LUKS2 也是将来功能的启用器。它支持通过 libcryptsetup 中构建的通用 kernel-keyring 令牌的自动解锁,允许用户使用存储在 kernel-keyring 保留服务中的密语解锁 LUKS2 卷。

其他显著改进包括:

  • 使用嵌套密钥加密方案进行保护的密钥设置。
  • 更轻松地与基于策略的加密(Clevis)集成。
  • 最多 32 个密钥插槽 - LUKS1 只提供 8 个密钥插槽。

详情请查看 cryptsetup(8)cryptsetup-reencrypt(8) man page。

12.2.4. 块设备的多队列调度

块设备现在在 Red Hat Enterprise Linux 8 中使用多队列调度。这可让块层性能针对使用快速固态驱动器(SSD)和多核系统进行正常扩展。

SCSI Multiqueue(scsi-mq)驱动程序现在默认启用,内核使用 scsi_mod.use_blk_mq=Y 选项引导。这个改变与上游 Linux 内核是一致的。

设备映射器多路径(DM Multipath)需要 scsi-mq 驱动程序被激活。

12.2.5. VDO 现在支持所有构架

Virtual Data Optimizer(VDO)现在在 RHEL 8 支持的所有构架上提供。

12.2.6. VDO 不再支持读取缓存

读缓存功能已从 Virtual Data Optimizer(VDO)中删除。VDO 卷中总是禁用读取缓存,您无法再使用 vdo 程序的 --readCache 选项启用它。

红帽可能会使用不同的实现在以后的 Red Hat Enterprise Linux 发行版本中重新引入 VDO 读取缓存。

12.2.7. dmraid 软件包已被删除

dmraid 软件包已从 Red Hat Enterprise Linux 8 中删除。需要支持组合硬件和软件 RAID 主机总线适配器(HBA)的用户应使用 mdadm 工具,它支持原生 MD 软件 RAID、SNIA RAID 通用磁盘数据格式(DDF)以及 Intel® Matrix 存储管理器(IMSM)格式。

12.2.8. Software FCoE 和 Fibre Channel 不再支持目标模式

  • 软件 FCoE:Red Hat Enterprise Linux 8.0 中删除了 NIC 软件 FCoE 目标功能。
  • Fibre Channel 不再支持目标模式。在 Red Hat Enterprise Linux 8.0,qla2xxx QLogic Fibre Channel 驱动禁用目标模式。

如需更多信息,请参阅 FCoE 软件删除

12.2.9. 改进了在 DM 多路径中发现的边缘路径

multipathd 服务现在支持改进的路径检测。这有助于多路径设备避免可能重复失败的路径,并提高性能。边缘路径(Marginal paths)是带有持久性但可能会出现 I/O 错误的路径。

/etc/multipath.conf 文件中的以下选项控制边缘路径行为:

  • marginal_path_double_failed_time
  • marginal_path_err_sample_time
  • marginal_path_err_rate_threshold
  • marginal_path_err_recheck_gap_time

DM 多路径在配置的示例时间中禁用路径并使用重复 I/O 进行测试,如果:

  • 设置了列出的 multipath.conf 选项,
  • 路径在配置的时间里失败两次,同时
  • 其它路径可用。

如果在此测试中路径有超过配置的 err 率,DM 多路径会在配置的间隔时间内忽略它,然后重新测试它,以查看它是否工作正常,足以恢复。

如需更多信息,请参阅 multipath.conf 手册页。

12.2.10. DM 多路径配置文件的新的 overrides 部分

/etc/multipath.conf 文件现在包含一个 overrides 部分,允许您为所有设备设置配置值。这些属性被 DM 多路径用于所有设备,除非它们被包含设备的路径 /etc/multipath.conf 文件的 multipaths 部分中指定的属性所覆盖。此功能替换了配置文件的 devices 部分的 all_devs 参数,该参数不再被支持。

12.2.11. Broadcom Emulex 和 Marvell Qlogic Fibre Channel 适配器完全支持 NVMe/FC

现在,当与 Broadcom Emulex 和 NVMe 支持的 Marvell Qlogic Fibre Channel 32Gbit 适配器一起使用时,光纤通道上的 NVMe 传输类型在 Initiator 模式下被完全支持。

除了先前在 Red Hat Enterprise Linux 中引入的远程直接内存访问(RDMA)协议之外,光纤通道上的 NVMe 是另一种光纤传输类型。

启用 NVMe/FC:

  • 要在 lpfc 驱动程序中启用 NVMe/FC,请编辑 /etc/modprobe.d/lpfc.conf 文件,并添加以下选项:

    lpfc_enable_fc4_type=3
  • 要在 qla2xxx 驱动程序中启用 NVMe/FC,请编辑 /etc/modprobe.d/qla2xx.conf 文件,并添加以下选项:

    qla2xxx.ql2xnvmeenable=1

其他限制:

  • NVMe/FC 不支持 NVMe 集群。
  • kdump 不支持 NVMe/FC。
  • 不支持从 Storage Area Network (SAN) NVMe/FC 引导。

12.2.12. 支持 Data Integrity Field/Data Integrity Extension(DIF/DIX)

DIF/DIX 是 SCSI 标准的补充。除了哪些专门列为受支持的外,它仍然保留在所有 HBA 和存储阵列的技术预览中。

DIF/DIX 将常用的 512 字节磁盘块的大小从 512 字节增加到 520 字节,添加了数据完整性字段(DIF)。DIF 存储数据块的校验和值,其是在写发生时通过主机总线适配器(HBA)计算的。然后存储设备会在接收时确认校验和,并存储数据和校验和。相反,当读发生时,校验和可通过存储设备和接收的 HBA 进行验证。

12.2.13. libstoragemgmt-netapp-plugin 已删除

libStorageMgmt 库使用的 libstoragemgmt-netapp-plugin 软件包已被删除。它不再被支持,因为:

  • 软件包需要 NetApp 7-mode API,NetApp 会逐渐弃用它。
  • RHEL 8 删除了对带有 TLS_RSA_WITH_3DES_EDE_CBC_SHA 密码的 TLSv1.0 协议的默认支持,使用带有 TLS 的插件无法正常工作。

12.2.14. 从 sfdiskcfdisk 中删除了 Cylinder-Head-Sector 寻址

Cylinder-Head-Sector(CHS)寻址不再用于现代存储设备。它已作为选项从 sfdiskcfdisk 命令中删除了。从 RHEL 8 开始,您不能使用以下选项:

  • -c, --cylinders number
  • -h, --heads number
  • -s, --sectors number

如需更多信息,请参阅 sfdisk(8)cfdisk(8) 手册页。

12.3. LVM

12.3.1. 删除了管理共享存储设备的 clvmd

LVM 不再使用 clvmd (集群 lvm 守护进程)来管理共享存储设备。LVM 现在使用 lvmlockd (lvm lock 守护进程)代替。

  • 有关使用 lvmlockd 的详情,请查看 lvmlockd(8) 手册页。有关通常使用共享存储的详情,请参考 lvmsystemid(7) 手册页。
  • 有关在 Pacemaker 集群中使用 LVM 的详情,请参考 LVM-activate 资源代理的帮助页面。
  • 有关在红帽高可用性集群中配置共享逻辑卷的步骤示例,请参考在集群中配置 GFS2 文件系统。

12.3.2. 删除 lvmetad 守护进程

LVM 不再使用 lvmetad 守护进程缓存元数据,将始终从磁盘读取元数据。LVM 磁盘读已减少,这降低了缓存的好处。

在以前的版本中,逻辑卷的自动激活被间接绑定到 lvm.conf 配置文件中的 use_lvmetad 设置。禁用自动激活的正确方法仍然是在 lvm.conf 文件中继续设置 auto_activation_volume_list

12.3.3. LVM 不再管理使用 GFS 池卷管理器格式化的设备或 lvm1 元数据格式。

LVM 不再管理使用 GFS 池卷管理器格式化的或`lvm1`元数据格式的设备。如果在引入 Red Hat Enterprise Linux 4 前创建了逻辑卷,则这可能会对您造成影响。使用 lvm1 格式的卷组应该使用 vgconvert 命令将其转换为 lvm2 格式。

12.3.4. 已删除 LVM 库和 LVM Python 绑定

lvm2-python-libs 软件包提供的 lvm2app 库和 LVM Python 绑定已被删除。红帽建议使用以下解决方案:

  • LVM D-Bus API 与 lvm2-dbusd 服务相结合。这需要使用 Python 版本 3。
  • 具有 JSON 格式的 LVM 命令行工具;此格式自 lvm2 软件包版本 2.02.158 以来一直提供。
  • libblockdev 库(包括在 AppStream 中)用于 C/C++

在升级到 Red Hat Enterprise Linux 8 前,您必须将任何应用程序使用删除的库和绑定到 D-Bus API。

12.3.5. 删除了 LVM 镜像日志的镜像功能

已删除镜像 LVM 卷的镜像日志功能。Red Hat Enterprise Linux(RHEL)8 不再支持创建或激活带有镜像的镜像日志的 LVM 卷。

推荐的替换有:

  • RAID1 LVM 卷。RAID1 卷的主要优点是即使在降级模式下工作并在临时故障后恢复的能力。
  • 磁盘镜像日志。要将镜像的镜像日志转换为磁盘镜像日志,请使用以下命令:lvconvert --mirrorlog disk my_vg/my_lv.

第 13 章 高可用性和集群

在 Red Hat Enterprise Linux 8 中,pcs 完全支持 Corosync 3 集群引擎以及集群通信的 Kronosnet(knet)网络抽象层。在计划从现有 RHEL 7 集群升级到 RHEL 8 集群时,您必须考虑以下事项:

  • 应用程序版本: RHEL 8 集群需要什么版本的高可用性应用程序?
  • 应用程序进程顺序: 应用程序的启动和停止进程可能需要什么改变?
  • 集群基础架构: 由于 pcs 支持 RHEL 8 中的多个网络连接,因此集群已知的 NIC 数量是否有变化?
  • 所需的软件包: 是否需要在新集群中安装所有相同的软件包?

由于对在 RHEL 8 中运行 Pacemaker 集群时的这些和其它的考虑,因此不能从 RHEL 7 原位升级到 RHEL 8 集群,且您必须在 RHEL 8 中配置一个新的集群。您无法运行包含运行 RHEL 7 和 RHEL 8 节点的集群。

另外,您应该在进行升级前计划进行以下内容:

  • 最终切换: 停止在旧群集上运行的应用程序以及在新群集上启动它以减少应用停机时间的流程是什么?
  • 测试: 是否可以在开发/测试环境中提前测试您的升级策略?

以下列出了 RHEL 7 和 RHEL 8 之间集群创建和管理的主要区别。

13.1. pcs cluster setuppcs cluster node addpcs cluster node remove 命令有新格式

在 Red Hat Enterprise Linux 8 中,pcs 完全支持节点名称的使用,现在这是必需的,并替代了节点标识符角色中的节点地址。节点地址现在是可选的。

  • pcs host auth 命令中,节点地址默认为节点名称。
  • pcs cluster setuppcs cluster node add 命令中,节点地址默认为 pcs host auth 命令中指定的节点地址。

有了这些变化,设置集群的命令的格式、向集群添加节点以及从集群中删除节点已更改。有关这些新命令格式的详情,请查看 pcs cluster setuppcs cluster node addpcs cluster node remove 命令的帮助信息。

13.2. 重命名为可升级克隆资源的 master 资源

Red Hat Enterprise Linux (RHEL) 8 支持 Pacemaker 2.0,其中的 master/slave 资源不再是一个独立的资源类型,而是带有 promotable meta-attribute 设置为 true 的标准克隆资源。实施以下更改后,支持此次更新:

  • 不再可以使用 pcs 命令创建 master 资源。相反,可以创建 promotable 克隆资源。相关的关键字和命令已从 master 变为 promotable
  • 所有现有的 master 资源都显示为 promotable 克隆资源。
  • 在 Web UI 中管理 RHEL7 集群时,master 资源仍被称为 master,因为 RHEL7 集群不支持 promotable 克隆。

13.3. 用于验证集群中的节点的新命令

Red Hat Enterprise Linux(RHEL)8 将以下变化包含在用于验证集群中节点的命令中。

  • 新命令为 pcs host auth。此命令允许用户指定主机名、地址和 pcsd 端口。
  • pcs cluster auth 命令只验证本地集群中的节点,不接受节点列表
  • 现在可以为每个节点指定地址。pcs/pcsd 随后将使用指定的地址与每个节点通信。这些地址可能与 corosync 内部使用的不同。
  • pcs pcsd clear-auth 命令已被 pcs pcsd deauthpcs host deauth 命令替代。新命令允许用户验证单个主机以及所有主机。
  • 在以前的版本中,节点身份验证是双向的,运行 pcs cluster auth 命令会导致所有指定节点相互进行身份验证。但是,pcs host auth 命令使本地主机只对指定的节点进行身份验证。在运行此命令时,这可以更好地控制哪个节点对哪些其他节点进行身份验证。在集群设置本身以及添加节点时,pcs 会自动在集群上同步令牌,因此群集中的所有节点仍然像以前一样自动验证,并且群集节点可以互相通信。

请注意,这些更改不是后向兼容的。在 RHEL 7 系统中验证的节点需要再次进行身份验证。

13.4. 红帽高可用性主动/被动集群中的 LVM 卷

当在 RHEL 8 中将 LVM 卷配置为 Red Hat HA 主动/被动集群中的资源时,您可以将该卷配置为 LVM-activate 资源。在 RHEL 7 中,您要将卷配置为 LVM 资源。有关在 RHEL 8 中将 LVM 卷配置为资源的集群配置步骤示例,请参考在红帽高可用性集群中配置主动/被动 Apache HTTP 服务器

13.5. 红帽高可用性主动/主动集群中的共享 LVM 卷

在 RHEL 8 中,LVM 使用 LVM 锁守护进程 lvmlockd 而不是 clvmd 来管理主动/主动集群中的共享存储设备。这要求您配置将 GFS2 文件系统作为共享逻辑卷挂载的逻辑卷。

另外,这需要您使用 LVMactivate 资源代理来管理 LVM 卷,且您需要使用 lvmlockd 资源代理来管理 lvmlockd 守护进程。

有关配置使用共享逻辑卷包含 GFS2 文件系统的 RHEL 8 Pacemaker 集群的完整步骤,请参考在集群中配置 GFS2 文件系统

13.6. RHEL 8 Pacemaker 集群中的 GFS2 文件系统

在 RHEL 8 中,LVM 使用 LVM 锁守护进程 lvmlockd 而不是 clvmd 管理主动/主动集群中的共享存储设备,如 第 12.3.1 节 “删除了管理共享存储设备的 clvmd 中所述。

要在 RHEL 8 集群中使用 RHEL 7 系统上创建的 GFS2 文件系统,您必须在 RHEL 8 系统上配置挂载为共享逻辑卷的逻辑卷,且您必须开始锁定卷组。有关将现有 RHEL 7 逻辑卷配置为用于 RHEL 8 Pacemaker 集群的共享逻辑卷的步骤示例,请参考 从 RHEL7 迁移到 RHEL8 的 GFS2 文件系统

第 14 章 Shell 和命令行工具

14.1. 本地化的内容由多个软件包提供

在 RHEL 8 中,本地化的内容和翻译不再由单一 glibc-common 软件包提供。现在,本地化的内容和语言都位于 glibc-langpack-CODE 软件包中。另外,默认不会安装所有本地化内容,而只安装在安装程序中选择的本地化内容。用户必须单独安装所需的本地化软件包。

为系统的每个软件包安装额外附加软件包(包含翻译、字典和本地化内容)的元数据软件包被称之为 langpacks。

如需更多信息,请参阅 使用语言包

14.2. 删除了完全由数字组成的用户和组群名称的支持

在 Red Hat Enterprise Linux(RHEL)8 中, useraddgroupadd 命令不允许使用完全由数字字符组成的用户和组群名称。不允许此类名称的原因是,这可能会导致一些工具混淆用户和组群名称以及用户和组群 ID。

有关更多信息,请参阅 从命令行添加一个新用户

14.3. nobody 用户替换 nfsnobody

Red Hat Enterprise Linux (RHEL)7 使用 nobody 用户和 ID 为 99 的组对,以及 nfsnobody 用户和 ID 为 65534 的组对,这也是默认的内核溢出 ID。

在 RHEL 8 中,这些对已合并到 nobody 用户和组对中,其使用 65534 的 ID。RHEL 8 中没有创建 nfsnobody 对。

这一变化减少了对 nobody 拥有但与 NFS 无关的文件的混淆。

14.4. 版本控制系统

RHEL 8 提供以下版本控制系统:

  • Git 2.18,一种具有分散架构的分布式修订控制系统。
  • Mercurial 4.8 是一种轻量级的分布式版本控制系统,旨在高效地处理大型项目。
  • Subversion 1.10,集中式的版本控制系统。

请注意,RHEL 7 中提供的并行版本系统(CVS)和修订控制系统(RCS)没有与 RHEL 8 一起分发。

14.4.1. Subversion 1.10中的显著变化

自从 RHEL 7 中分发了版本 1.7 以来,子版本 1.10 引入了一些新功能,以及以下兼容性变化:

  • 由于 Subversion 库中用于支持语言绑定的不兼容性,Subversion 1.10Python 3 绑定不可用。因此,需要 SubversionPython 绑定的应用程序不被支持。
  • 不再支持基于 Berkeley DB 的存储库。在升级前,使用 svnadmin dump 命令备份使用 Subversion 1.7 创建的存储库。安装 RHEL 8 后,请使用 svnadmin load 命令恢复存储库。
  • RHEL 7 中的 Subversion 1.7 客户端签出的现有工作副本必须升级至新格式,才能从 Subversion 1.10 使用。安装 RHEL 8 后,请在每个工作副本中运行 svn upgrade 命令。
  • 不再支持通过 https:// 访问软件仓库的智能卡验证。

14.5. 软件包从 crontab 条目移到 systemd 计时器

crontab 条目中使用的软件包现在使用 systemd 计时器。运行以下命令来查找带有 systemd 计时器条目的软件包:

$ repoquery --qf %{name} -f '/usr/lib/systemd/system/*.timer'
$ repoquery --qf %{name} -f '/etc/cron.*/*'

第 15 章 动态编程语言、网页服务器、数据库服务器

15.1. 动态编程语言

15.1.1. Python 中的显著变化

15.1.1.1. Python 3 是 RHEL 8 中默认的 Python 实现

Red Hat Enterprise Linux 8 与多个 Python 3 版本一起分发。Python 3.6 将在 RHEL 8 的整个生命周期内被支持。默认情况下,对应的软件包可能没有安装。

Python 2.7python2 软件包中提供。但是,Python 2 有一个短的生命周期,其目的在于帮助客户更顺利地过渡到 Python 3

详情请查看 Python 版本

默认的 python 软件包或未版本化的 /usr/bin/python 可执行文件都不与 RHEL 8 一起分发。建议客户直接使用 python3python2。另外,管理员也可以使用 alternatives 命令来配置 python 命令。请参阅 配置未版本化的 Python

15.1.1.2. 从 Python 2 迁移到 Python 3

作为开发者,您可能想要将之前使用 Python 2 编写的代码迁移到 Python 3。

有关如何将大型代码库迁移到 Python 3 的更多信息,请参阅 保守 Python 3 移植指南

请注意,在迁移后,原始 Python 2 代码就可以被 Python 3 解释器解释,也可以被 Python 2 解释器解析。

15.1.1.3. 配置未指定版本的 Python

系统管理员可以使用 alternatives 命令配置位于 /usr/bin/python 的被指定版本的 python 命令。请注意,在将未版本化的命令配置为对应的版本之前,所需的软件包 python3python38python39python3.11python2 必须安装。

重要

/usr/bin/python 执行文件由 alternatives 系统控制。更新时可能会覆盖任何手动更改。

其他 Python 相关的命令,如 pip3,没有可配置的未版本化变体。

15.1.1.3.1. 直接配置未指定版本的 python 命令

您可以将未版本化的 python 命令直接配置为所选的 Python 版本。

先决条件

  • 确保所需的 Python 版本已安装。

流程

  • 要将未版本化的 python 命令配置为 Python 3.6,请使用:

    # alternatives --set python /usr/bin/python3
  • 要将未版本化的 python 命令配置为 Python 3.8,请使用:

    # alternatives --set python /usr/bin/python3.8
  • 要将未版本化的 python 命令配置为 Python 3.9,请使用:

    # alternatives --set python /usr/bin/python3.9
  • 要将未版本化的 python 命令配置为 Python 3.11,请使用:

    # alternatives --set python /usr/bin/python3.11
  • 要将未指定版本的 python 命令配置为 Python 2,请使用:

    # alternatives --set python /usr/bin/python2
15.1.1.3.2. 以互动方式将未指定版本的 python 命令配置为所需的 Python 版本

您可以以交互方式将未版本化的 python 命令配置为所需的 Python 版本。

先决条件

  • 确保所需的 Python 版本已安装。

流程

  1. 要以互动方式配置未版本化的 python 命令,请使用:

    # alternatives --config python
  2. 从提供的列表中选择所需版本。
  3. 要重置此配置并删除未版本化的 python 命令,请使用:

    # alternatives --auto python
15.1.1.3.3. 其它资源
  • alternatives(8)unversioned-python(1) 手册页

15.1.1.4. 处理 Python 脚本中的解释器指令

在 Red Hat Enterprise Linux 8 中,可执行 Python 脚本期望使用在最小的主 Python 版本中明确指定的解释器指令(也称为 hashbangs 或 shebangs)。例如:

#!/usr/bin/python3
#!/usr/bin/python3.6
#!/usr/bin/python3.8
#!/usr/bin/python3.9
#!/usr/bin/python3.11
#!/usr/bin/python2

构建任何 RPM 软件包时,/usr/lib/rpm/redhat/brp-mangle-shebangs buildroot 策略(BRP)脚本会自动运行,并尝试更正所有可执行文件中的解释器指令。

当遇到带有模糊解释器指令的 Python 脚本时,BRP 脚本会产生错误,例如:

#!/usr/bin/python

或者

#!/usr/bin/env python
15.1.1.4.1. 修改 Python 脚本中的解释器指令

修改会在 RPM 构建时导致构建错误的解释器指令。

先决条件

  • Python 脚本中的一些解释器指令会导致构建错误。

流程

要修改解释程序指令,请完成以下任务之一:

  • 应用 platform-python-devel 软件包中的 pathfix.py 脚本:

    # pathfix.py -pn -i %{__python3} PATH …​

    请注意,可以指定多个 PATH。如果 PATH 是一个目录,pathfix.py 会递归扫描与模式 ^[a-zA-Z0-9_]+\.py$ 匹配的任何 Python 脚本,而不仅仅是具有模糊解释器指令的 Python 脚本。将此命令添加到 %prep 部分或 %install 部分的末尾。

  • 修改打包的 Python 脚本,使其符合期望的格式。为此,pathfix.py也可用于 RPM 构建过程外。当在 RPM 构建外运行 pathfix.py 时,将上面示例中的 %{__python3} 替换为解释器指令的路径,如 /usr/bin/python3

如果打包的 Python 脚本需要 Python 3.6 以外的版本,请调整前面的命令以包括所需的版本。

15.1.1.4.2. 更改自定义软件包中的 /usr/bin/python3 解释器指令

默认情况下,/usr/bin/python3 形式的解释器指令被替换为指向 platform-python 软件包中的 Python 的解释器指令,该软件包用于 Red Hat Enterprise Linux 的系统工具。您可以更改自定义软件包中的 /usr/bin/python3 解释器指令,使其指向从 AppStream 存储库安装的特定版本的 Python。

流程

  • 要为特定版本的 Python 构建软件包,请将相应python 软件包的 python*-rpm-macros 子软件包添加到 SPEC 文件的 BuildRequires 部分。例如,对于 Python 3.6,包括以下行:

    BuildRequires:  python36-rpm-macros

    因此,自定义软件包中的 /usr/bin/python3 解释器指令会自动转换为 /usr/bin/python3.6

注意

要防止 BRP 脚本检查和修改解释器指令,请使用以下 RPM 指令:

%undefine __brp_mangle_shebangs

15.1.1.5. 绑定了 net-snmp 软件包的 Python 不可用

Net-SNMP 工具套件不为 Python 3 提供绑定,它是 RHEL 8 中默认的 Python 实现。因此,RHEL 8 不提供 python-net-snmppython2-net-snmppython3-net-snmp 软件包。

15.1.2. PHP中的显著变化

Red Hat Enterprise Linux 8 与 PHP 7.2 一起分发。这个版本引入了相对于 PHP 5.4 的以下主要变化,后者在 RHEL 7 中提供:

  • PHP 默认使用 FastCGI 进程管理器(FPM)(可以安全地与线程 httpd一起使用)
  • php_valuephp-flag 变量不再用在 httpd 配置文件中;它们应在池配置中设置:/etc/php-fpm.d/*.conf
  • PHP 脚本错误和警告记录到 /var/log/php-fpm/www-error.log 文件中,而不是 /var/log/httpd/error.log
  • 更改 PHP max_execution_time 配置变量时,应增加 httpd ProxyTimeout 设置以匹配
  • 运行 PHP 脚本的用户现在在 FPM 池配置(/etc/php-fpm.d/www.conf 文件,apache 用户是默认的)中配置。
  • 需要在配置更改或者安装新扩展后重启 php-fpm 服务
  • zip 扩展已经从 php-common 软件包移动到独立的软件包 php-pecl-zip

删除了以下扩展:

  • aspell
  • mysql(请注意,mysql ipdo_mysql 扩展仍然可用,由 php-mysqlnd 软件包提供)
  • memcache

15.1.3. Perl 中的显著变化

RHEL 8 提供了 Perl 5.26,与 RHEL 7 中的版本相比有以下变化:

  • Unicode 9.0 现在被支持。
  • 提供了新的 op-entryload-fileload-file SystemTap 探测。
  • 在分配标量以提高性能时,使用 Copy-on-write 机制。
  • 透明处理 IPv4 和 IPv6 套接字的 IO::Socket::IP 模块已添加。
  • 以结构化方式访问 perl -V 数据的 Config::Perl::V 模块 已添加。
  • 添加了一个新的 perl-App-cpanminus 软件包,其中包含用于从全面的 Perl 存档网络(CPAN)存储库获取、提取、构建和安装模块的 cpanm 工具。
  • 出于安全考虑,当前目录. 已从 @INC 模块搜索路径中删除。
  • 因为上面描述的行为的变化,当无法加载文件时, do 语句现在会返回一个弃用警告。
  • do subroutine(LIST) 调用不再被支持,并会产生语法错误。
  • 现在,默认随机化哈希。每次 perl 运行时,从哈希返回的键和值的顺序都会变化。若要禁用随机化,请将 PERL_PERTURB_KEYS 环境变量设为 0
  • 不再允许正则表达式模式中未转义的字面 { 字符。
  • $_ 变量的字典范围支持已删除。
  • 在数组或散列上使用 定义的 运算符会导致致命错误。
  • UNIVERSAL 模块中导入功能会导致严重错误。
  • find2perls2pa2pc2phpstruct 工具已被删除。
  • ${^ENCODING} 工具已被删除。不再支持 编码 片段的默认模式。要以 UTF-8 之外的其他编码编写源代码,请使用编码的 Filter 选项。
  • perl 打包现在与上游对齐。perl 软件包也会安装核心模块,而 /usr/bin/perl 解释器则由 perl-interpreter 软件包提供。在以前的版本中,perl 软件包只包含一个最小解释器,而 perl-core 软件包既包含解释器又包含核心模块。
  • IO::Socket::SSL Perl 模块不再从 ./certs/my-ca.pem 文件或 ./ca 目录加载证书颁发机构证书, 来自 ./certs/server-key.pem 文件中的服务器私钥、来自 ./certs/server-cert.pem 文件的服务器证书、来自 ./certs/client-key.pem 文件的客户端私钥,以及来自 ./certs/client-cert.pem 文件的客户端证书。明确指定文件的路径。

15.1.4. Ruby中的显著变化

RHEL 8 提供了 Ruby 2.5,与 RHEL 7 中提供的 Ruby 2.0.0 相比,它引入了很多新功能和增强。主要变更包括:

  • 添加了增量垃圾收集器。
  • 添加了 Refinements 语法。
  • 现在会对符号进行垃圾收集。
  • $SAFE=2$SAFE=3 安全等级现已过时。
  • FixnumBignum 类已统一为 Integer 类。
  • 通过优化 Hash 类,改进对实例变量的访问,Mutex 类更小更快,性能得到了提高。
  • 某些旧的 API 已被弃用。
  • 捆绑的库,如 RubyGemsRakeRDocPsychMinitesttest-unit 都已更新。
  • 以前与 Ruby 仪器分发的其他库,如 mathnDLext/tkXMLRPC 都已被弃用或不再包含。
  • SemVer 版本方案现在用于 Ruby 版本。

15.1.5. SWIG 中的显著变化

RHEL 8 包含简化的 wrapper 和 Interface Generator(SWIG)版本 3.0,它比 RHEL 7 中发布的版本 2.0 提供了大量新功能、增强和 bug 修复。最值得注意的是,实现了对 C++11 标准的支持。SWIG 现在也支持 Go 1.6PHP 7Octave 4.2Python 3.5

15.1.6. Node.js 包括在 RHEL 中

Node.js 是一个软件开发平台,用于使用 JavaScript 编程语言开发快速、可扩展的网络应用程序。它首次在 RHEL 中提供。之前,它只通过 Software Collection 提供。RHEL 8 提供 Node.js 10

15.2. Tcl

工具命令语言(Tcl) 是一种动态编程语言。此语言的解释器和 C 库都由 tcl 软件包提供。

使用 TclTk (Tcl/Tk)搭配可创建跨平台 GUI 应用程序。TKtk 软件包提供。

请注意,Tk 可以引用以下任意一种:

  • 用于多种语言的编程工具包
  • Tk C 库绑定可用于多种语言,如 C、Ruby、Perl 和 Python
  • 一个需要解释器来实例化 Tk 控制台
  • 为特定 Tcl 解释器添加多个新命令的 Tk 扩展

15.2.1. Tcl/Tk 8.6 中的显著变化

RHEL 8 与 Tcl/Tk 版本 8.6 一起分发,与 Tcl/Tk 版本 8.5 相比,它提供了多个显著变化:

  • 基于对象的编程支持
  • 无堆栈评估实施
  • 增强的例外处理
  • 使用 Tcl 构建并安装的第三方软件包集合
  • 启用多线程操作
  • 对 SQL 数据库增强脚本的支持
  • IPv6 网络支持
  • 内置 Zlib 压缩
  • 列表处理

    提供了两个新命令:lmapdict map,它们允许在 Tcl 容器上的表达转换。

  • 按脚本堆叠的通道

    提供了两个新命令, chan pushchan pop ,允许向或从 I/O 通道添加或删除转换。

有关 Tcl/Tk 版本 8.6 更改和新的功能的详情,请查看以下资源:

如果您需要迁移到 Tcl/Tk 8.6,请参阅 用户使用 Tcl/Tk 编写任务脚本的迁移路径

15.3. Web 服务器

15.3.1. Apache HTTP 服务器中的显著变化

Apache HTTP 服务器 已从 RHEL 7 中的版本 2.4.6 更新至 RHEL 8 中的版本 2.4.37。这个版本包括了几个新功能,但在外部模块的配置和应用程序二进制接口(ABI)级别上保持与 RHEL 7 版本的向后兼容性。

新特性包括:

  • HTTP/2 支持现在由 mod_http2 软件包提供,它是 httpd 模块的一部分。
  • 支持 systemd 套接字激活。详情请查看 httpd.socket(8) 手册页。
  • 添加了多个新模块:

    • mod_proxy_hcheck - 代理健康检查模块
    • mod_proxy_uwsgi - Web 服务器网关接口(WSGI)代理
    • mod_proxy_fdpass - 提供对将客户端套接字传给另一个进程的支持
    • mod_cache_socache - 使用例如 memcache 后端的 HTTP 缓存
    • mod_md - ACME 协议 SSL/TLS 证书服务
  • 现在默认载入以下模块:

    • mod_request
    • mod_macro
    • mod_watchdog
  • 添加了一个新的子软件包 httpd-filesystem,其中包含 Apache HTTP 服务器 的基本目录布局,包括目录的正确权限。
  • 引入了实例化服务支持 httpd@.service。如需更多信息,请参阅 httpd.service 手册页。
  • 新的 httpd-init.service 替换 %post 脚本 来创建自签名的 mod_ssl 密钥对。
  • mod_md 软件包现在支持使用自动证书管理环境(ACME)协议进行自动 TLS 证书提供和续订(与证书提供者一起使用,如 Let’s Encrypt)。
  • Apache HTTP 服务器 现在支持直接从 PKCS#11 模块的硬件安全令牌加载 TLS 证书和私钥。现在,mod_ssl 配置可以使用 PKCS#11 URL 来标识 TLS 私钥,也可选择使用 SSLCertificateKeyFileSSLCertificateFile 指令中的 TLS 证书。
  • 现在,支持 /etc/httpd/conf/httpd.conf 文件中的 ListenFree 指令。

    Listen 指令类似,listenFree 提供有关服务器侦听的 IP 地址、端口或 IP 地址和端口组合的信息。但是,使用 ListenFree ,会默认启用 IP_FREEBIND 套接字选项。因此,允许 httpd 绑定到非本地 IP 地址或尚不存在的 IP 地址。这允许 httpd 侦听套接字,而无需在 httpd 尝试绑定到底层网络接口或指定的动态 IP 地址时处于在线状态。

    请注意,ListenFree 指令目前仅在 RHEL 8 中提供。

    有关 ListenFree 的详情,请查看下表:

    表 15.1. ListenFree 指令的语法、状态和模块

    语法状态模块

    ListenFree [IP-address:]portnumber [protocol]

    MPM

    event、worker、prefork、mpm_winnt、mpm_netware、mpmt_os2

其他显著变化包括:

  • 删除了以下模块:

  • 在 RHEL 8 中,Apache HTTP 服务器 使用的默认 DBM 验证数据库已经从 SDBM 改为 db5
  • Apache HTTP 服务器mod_wsgi 模块已更新为 Python 3。WSGI 应用程序现在只支持 Python 3,且必须从 Python 2 中迁移。
  • 默认情况下,使用 Apache HTTP 服务器 配置的多处理模块(MPM)已从多进程,派生模式(称为 prefork)变为高性能多线程模式 event

    任何不是线程的第三方模块都需要被替换或删除。要更改配置的 MPM,请编辑 /etc/httpd/conf.modules.d/00-mpm.conf 文件。详情请查看 httpd.service(8) 手册页。

  • 现在,suEXEC 允许的用户的 UID 和 GID 最少为 1000 和 500(之前为 100 和 100)。
  • /etc/sysconfig/httpd 文件不再被支持用来为 httpd 服务设置环境变量。为 systemd 服务添加了 httpd.service(8) 手册页。
  • 现在,停止 httpd 服务默认使用"graceful stop"。
  • mod_auth_kerb 模块已被 mod_auth_gssapi 模块替代。

有关部署的步骤,请参阅设置 Apache HTTP web 服务器

15.3.2. RHEL 中的新 nginx web 服务器

RHEL 8 引入了 nginx 1.14,一个支持 HTTP 和其他协议的 Web 和代理服务器,其重点在高并发性、性能和低内存使用率。nginx 以前仅作为 Software Collection 提供。

nginx web 服务器现在支持直接从 PKCS#11 模块的硬件安全令牌加载 TLS 私钥。因此,nginx 配置可以使用 PKCS#11 URL 来识别 ssl_certificate_key 指令中的 TLS 私钥。

15.3.3. RHEL 8.0 中删除了 Apache Tomcat,但在 RHEL 8.8 中重新引入

Apache Tomcat 服务器已从 Red Hat Enterprise Linux 8.0 中删除,但在 RHEL 8.8 中重新引入。Tomcat 是 Java Servlet 和 JavaServer Pages 技术官方参考实现中使用的 servlet 容器。Java Servlet 和 JavaServer Pages 规范是由 Sun 在 Java 社区流程下开发的。Tomcat 是在开放和参与的环境中开发的,并在 Apache 软件许可证版本 2.0 下发布。

与 RHEL 8.8 相比,需要 servlet 容器的早期次版本的用户可以使用 JBoss Web Server

15.4. 代理缓存服务器

15.4.1. RHEL 提供了新的 Varnish Cache

RHEL 首次提供了Varnish Cache,它是一个高性能 HTTP 反向代理。之前,它只通过 Software Collection 提供。Varnish 缓存 将文件或文件片段存储在内存中,用来减少未来对等请求的响应时间和网络带宽消耗。RHEL 8.0 提供了 Varnish Cache 6.0

15.4.2. Squid中的显著变化

RHEL 8.0 提供了 Squid 4.4,它是一个用于 Web 客户端的高性能代理缓存服务器,它支持 FTP、Gopher 和 HTTP 数据对象。与 RHEL 7 提供的版本 3.5 相比,这个版本包括的新功能、改进和程序错误修复。

主要变更包括:

  • 可配置的 helper 队列大小
  • 对 helper 并发频道的更改
  • 更改 helper 二 进制文件
  • 安全互联网内容适配协议(ICAP)
  • 改进了对 Symmetric Multi Processing(SMP)的支持
  • 改进的进程管理
  • 删除了对 SSL 的支持
  • 删除了 Edge Side Inudes(ESI)自定义解析程序
  • 多配置更改

15.5. 数据库服务器

RHEL 8 提供以下数据库服务器:

  • MySQL 8.0,一个多用户、多线程的 SQL 数据库服务器。它由 MySQL 服务器守护进程(mysqld)和多个客户端程序组成。
  • MariaDB 10.3,一个多用户、多线程的 SQL 数据库服务器。就所有实际用途而言,MariaDBMySQL 二进制兼容。
  • PostgreSQL 10PostgreSQL 9.6,一种高级对象关系型数据库管理系统(DBMS)。
  • Redis 5,一种高级键值存储。它通常被称为数据结构服务器,因为键可以包含字符串、散列、列表、集合和排序的集合。Redis 在 RHEL 中第一次提供。

请注意,RHEL 8.0 中不包括 NoSQL MongoDB 数据库服务器,因为它使用服务器端公共许可证(SSPL)。

数据库服务器无法并行安装

由于与 RPM 软件包冲突,RHEL 8.0 中不能并行安装 mariadbmysql 模块。

按照设计,无法并行安装同一模块的多个版本(流)。例如,您需要从 postgresql 模块中只选择一个可用的流,可以是 10 (默认)或 9.6。在 RHEL 6 和 RHEL 7 的 Red Hat Software Collections 中可以并行安装组件。在 RHEL 8 中,可在容器中使用不同版本的数据库服务器。

15.5.1. MariaDB 10.3的显著变化

与 RHEL 7 提供的版本 5.5 相比,MariaDB 10.3 提供了多个新功能,例如:

  • 常见表表达式
  • system-versioned 表
  • FOR 循环
  • 不可见的栏
  • 序列
  • InnoDB 的即时 ADD COLUMN
  • 独立于存储引擎的栏压缩
  • 并行复制
  • 多源复制

此外,新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用客户端库。此库可用于任何版本的 MySQLMariaDB 数据库服务器。因此,用户可以将一个应用程序构建连接到与 RHEL 8 一起分发的任何 MySQLMariaDB 服务器。

其他显著变化包括:

  • MariaDB Galera 集群 是一种同步的多源集群,现在是 MariaDB 的一个标准部分。
  • InnoDB 是默认存储引擎,而不是 XtraDB
  • 已删除 mariadb-bench 子包。
  • 默认允许插件成熟度等级已改为比服务器成熟度低 一 个等级。因此,在之前使用的,但成熟度较低的插件将不再加载。

另请参阅 在 Red Hat Enterprise Linux 8 上使用 MariaDB

15.5.2. MySQL 8.0中的显著变化

RHEL 8 提供了 MySQL 8.0,它提供以下改进:

  • MySQL 现在包含一个事务数据字典,它存储有关数据库对象的信息。
  • MySQL 现在支持角色,角色是特权的集合。
  • 默认字符集已从 latin1 变为 utf8mb4
  • 添加了对通用表表达式(非递归和递归)的支持。
  • MySQL 现在支持窗口功能,它使用相关行对查询中的每一行执行计算。
  • InnoDB 现在支持带有锁定读语句的 NOWAITSKIP LOCKED 选项。
  • 改进了与 GIS 相关的功能。
  • JSON 功能已被改进。
  • 新的 mariadb-connector-c 软件包为 MySQLMariaDB 提供通用客户端库。此库可用于任何版本的 MySQLMariaDB 数据库服务器。因此,用户可以将一个应用程序构建连接到与 RHEL 8 一起分发的任何 MySQLMariaDB 服务器。

此外,与 RHEL 8 一起分发的 MySQL 8.0 服务器被配置为使用 mysql_native_password 作为默认的身份验证插件,因为 RHEL 8 中的客户端工具和库与 caching_sha2_password 方法不兼容,后者在上游 MySQL 8.0 版本中 被默认使用。

要将默认身份验证插件更改为 caching_sha2_password,请编辑 /etc/my.cnf.d/mysql-default-authentication-plugin.cnf 文件:

[mysqld]
default_authentication_plugin=caching_sha2_password

15.5.3. PostgreSQL中的显著变化

RHEL 8.0 提供了两个版本的 PostgreSQL 数据库服务器,在 postgresql 模块的两个流中分发:PostgreSQL 10 (默认流)和 PostgreSQL 9.6。RHEL 7 包含 PostgreSQL 版本 9.2。

PostgreSQL 9.6 中的显著变化是:

  • 可以并行执行的顺序操作: scanjoinaggregate
  • 同步复制的改进
  • 改进了全文本搜索功能用于使用短语进行搜索
  • postgres_fdw 联合驱动程序现在支持远程 joinsortUPDATEDELETE 操作
  • 显著的提高性能,特别是在多 CPU 套接字服务器的可扩展性方面

PostgreSQL 10 的主要改进包括:

  • 使用 publishsubscribe 关键字的逻辑复制
  • 基于 SCRAM-SHA-256 机制的更强大的密码身份验证
  • 声明性表分区
  • 改进了查询并行性
  • 显著的常规性能改进
  • 改进了监控和控制

另请参阅 在 Red Hat Enterprise Linux 8 上使用 PostgreSQL

第 16 章 编译器和开发工具

16.1. RHEL 7 后对 toolchain 的更改

以下小节列出了自 Red Hat Enterprise Linux 7 中描述组件发行版本起的更改。另请参阅 Red Hat Enterprise Linux 8.0 发行注记

16.1.1. RHEL 8 中的 GCC 的更改

在 Red Hat Enterprise Linux 8 中,GCC 工具链基于 GCC 8.2 发行系列。从 Red Hat Enterprise Linux 7 开始的显著变化包括:

  • 添加了大量常规优化,如别名分析、向量器改进、相同的代码折叠、流程间分析、存储合并优化传递等。
  • 改进了 Address Sanitizer。
  • 添加了用来检测内存泄漏的 Leak Sanitizer。
  • 添加了用于检测未定义行为的 Undefined Behavior Sanitizer。
  • 现在可使用 DWARF5 格式生成调试信息。这个功能是实验性的。
  • 源代码覆盖分析工具 GCOV 已进行了各种改进。
  • 添加了对 OpenMP 4.5 规格的支持。此外,C、C++ 和 Fortran 编译器现在支持 OpenMP 4.0 规范的卸载功能。
  • 静态检测某些可能的编程错误的新警告和改进诊断已添加。
  • 现在,源位置作为范围而不是点来跟踪,这样允许更丰富的诊断。编译器现在提供"fix-it"提示,建议可能的代码修改。添加了拼写检查器以提供替代名称,并更容易地检测拼写错误。

Security

GCC 已被扩展,提供一些工具以确保增加生成的代码的强化。与安全相关的改进包括:

  • 为带有溢出检查的算术添加了 __builtin_add_overflow__builtin_sub_overflow__builtin_mul_overflow 内置函数。
  • 添加了 -fstack-clash-protection 选项,以生成防止堆栈冲突的额外代码。
  • 引入了 -fcf-protection 选项,来检查控制流指令的目标地址,以提高程序的安全性。
  • 新的 -Wstringop-truncation 警告选项列出了对绑定字符串操作函数的调用,如 strncatstrncpystpncpy,它们可能会截断复制的字符串,或者让目的地保持不变。
  • 改进了 -Warray-bounds 警告选项,以更好地检测超出边界的数组索引和指针偏移。
  • 添加了 -Wclass-memaccess 警告选项,以警告原始内存访问函数(如 memcpyrealloc )对非平凡类对象可能的不安全操作。

构架和处理器支持

架构和处理器支持的改进包括:

  • 为 Intel AVX-512 架构、一些微架构和 Intel 软件保护扩展(SGX)添加了多个特定于架构的新选项。
  • 现在,代码生成可以针对 64 位 ARM 架构 LSE 扩展、ARMv8.2-A 16 位浮点扩展(FPE)以及 ARMv8.2-A、ARMv8.3-A 和 ARMv8.4-A 架构版本。
  • ARM 和 64 位 ARM 架构上的 -march=native 选项的处理已被修复。
  • 添加了对 64 位 IBM Z 架构的 z13 和 z14 处理器的支持。

语言和标准

与语言和标准有关的显著变化包括:

  • C 语言编译代码时使用的默认标准已改为使用 GNU 扩展的 C17。
  • C++ 语言编译代码时使用的默认标准已改为使用 GNU 扩展的 C++14。
  • C++ 运行时程序库现在支持 C++11 和 C++14 标准。
  • C++ 编译器现在实现了具有许多新功能的 C++14 标准,如变量模板、非静态数据成员初始化器的聚合、扩展的 constexpr 指定符 、了调整大小的释放函数、通用 lambdas、可变长度数组、数字分隔符等。
  • 改进了对 C 语言标准 C11 的支持:现在提供了 ISO C11 atomics、通用选择和线程存储。
  • 新的 __auto_type GNU C 扩展在 C 语言中提供了 C++11 auto 关键字的功能子集。
  • 由 ISO/IEC TS 18661-3:2015 标准指定的 _FloatN_FloatNx 类型名称现在由 C 前端识别。
  • C 语言编译代码时使用的默认标准已改为使用 GNU 扩展的 C17。这与使用 --std=gnu17 选项具有同样的效果。在以前的版本中,默认值是带有 GNU 扩展的 C89。
  • GCC 现在可以使用 C++17 语言标准以及 C++20 标准中的某些功能对代码进行实验性编译。
  • 现在,传递空类作为参数不包括在 Intel 64 和 AMD64 构架中,如平台 ABI 要求。传递或返回仅带有删除副本和移动构造器的类,现在使用与带有非平凡副本或移动构造器的类相同的调用约定。
  • C++11 alignof 运算符返回的值已被修正,以匹配 C _Alignof 运算符,并返回最小对齐。要查找首选的对齐,请使用 GNU 扩展名__alignof__
  • Fortran 语言代码的 libgfortran 库的主版本已变为 5。
  • 对 Ada(GNAT)、GCC Go 和 Objective C/C++ 语言的支持已删除。使用 Go Toolset 进行 Go 代码开发。

16.1.2. RHEL 8 中 GCC 的安全性增强

以下是 GCC 中与安全性相关的更改,以及自 Red Hat Enterprise Linux 7.0 发行版本之后添加的更改。

新警告

添加了这些警告选项:

选项显示警告信息

-Wstringop-truncation

对绑定的字符串操作函数(如 strncatstrncpystpncpy )的调用可能会截断复制的字符串,或者让目的地保持不变。

-Wclass-memaccess

原始功能(如 memcpyrealloc)可能会以不安全的方式处理类型为非 trivial 类的对象。

警告帮助检测以下调用:绕过用户定义的构造器或复制-分配运算符、损坏的虚拟表指针、常量限定类型的数据成员或引用或成员指针。该警告还会检测到可绕过数据成员的访问控制的调用。

-Wmisleading-indentation

代码缩进对于阅读代码的人可能会造成对代码块结构的误导。

-Walloc-size-larger-than=size

调用内存分配超过 size 的内存分配功能。还可与通过两个参数相乘指定分配的函数一起工作,以及与使用属性 alloc_size 装饰的任何函数一起工作。

-Walloc-zero

调用内存分配功能,试图分配零内存。还可与通过两个参数相乘指定分配的函数一起工作,以及与使用属性 alloc_size 装饰的任何函数一起工作。

-Walloca

所有对 alloca 功能的调。

-Walloca-larger-than=size

请求内存大于 size 时调用 alloca 功能。

-Wvla-larger-than=size

可超过指定大小或者其绑定未知约束的 Variable Length Arrays(VLA)定义。

-Wformat-overflow=level

在调用格式化输出函数 sprintf 系列中一定和可能的缓冲区溢出。有关 level 值的详情和说明,请参阅 gcc(1) 手册页。

-Wformat-truncation=level

在调用格式化输出函数的 snprintf 系列调用中的一定和可能的输出截断。有关 level 值的详情和说明,请参阅 gcc(1) 手册页。

-Wstringop-overflow=type

在调用字符串处理函数(如 memcpystrcpy )中的缓冲区溢出。有关 level 值的详情和说明,请参阅 gcc(1) 手册页。

警告改进

改进了以下 GCC 警告:

  • 改进了 -Warray-bounds 选项,以检测更多超出边界数组索引和指针偏移的实例。例如,检测到灵活的数组成员和字符串字面值的负或过量索引。
  • GCC 7 中引入的 -Wrestrict 选项已被改进,以检测通过对标准内存和字符串操作函数(如 memcpystrcpy)的限制限定参数重叠访问对象的更多实例。
  • -Wnonnull 选项已改进,以检测一组将空指针传给预期非空参数(使用属性 nonnull 装饰)的函数的更广泛的情况。

新的 UndefinedBehaviorSanitizer

添加了一个新的用于检测未定义行为的运行时清理程序,称为 UndefinedBehaviorSanitizer。以下选项需要加以注意:

选项检查

-fsanitize=float-divide-by-zero

检查浮点被被零除。

-fsanitize=float-cast-overflow

检查浮点类型到整数转换的结果是否溢出。

-fsanitize=bounds

启用阵列绑定控制并检测对边界外的访问。

-fsanitize=alignment

启用协调检查并检测各种没有对齐的对象。

-fsanitize=object-size

启用对象大小检查并检测到各种对边界外的访问。

-fsanitize=vptr

启用对 C++ 成员功能调用、成员访问以及指针到基本类别和派生类之间的一些转换。另外,检测引用的对象没有正确的动态类型。

-fsanitize=bounds-strict

启用对阵列绑定的严格的检查。这启用了 -fsanitize=bounds 和灵活的类似成员数组的检测。

-fsanitize=signed-integer-overflow

即使在使用通用向量的诊断操作中诊断异常溢出。

-fsanitize=builtin

在运行时诊断 __builtin_clz__builtin_ctz 前缀内置的无效参数。包括 -fsanitize=undefined=undefined 的检查。

-fsanitize=pointer-overflow

为指针嵌套执行 cheap run-time 测试。包括 -fsanitize=undefined=undefined 的检查。

AddressSanitizer 的新选项

这些选项已经被添加到 AddressSanitizer 中:

选项检查

-fsanitize=pointer-compare

指向不同内存对象的指针的警告。

-fsanitize=pointer-subtract

关于指向不同内存对象的指针的减法的警告。

-fsanitize-address-use-after-scope

清除在定义了变量的作用域之后获取和使用其地址的变量。

其他清理程序和工具

  • 添加了 -fstack-clash-protection 选项,以便在堆栈空间被静态或动态分配时插入探测,以可靠地检测堆栈溢出,从而减轻依赖于跳过操作系统提供的堆栈保护页的攻击向量。
  • 添加了一个新的选项 -fcf-protection=[full|branch|return|none],以通过检查控制流传输指令的目标地址(如间接函数调用、函数返回、间接跳转)是否有效,来执行代码插入并提高程序安全性。

其它资源

  • 有关提供给上述某些选项的值的详情和说明,请参阅 gcc(1) 手册页:

    $ man gcc

16.1.3. RHEL 8 中 GCC 兼容性破坏的变化

std::stringstd::list 中 C++ ABI 的更改

libstdc++ 库中的 std::stringstd::list 类的应用二进制接口(ABI)在 RHEL 7 (GCC 4.8) 和 RHEL 8(GCC 8)之间发生了变化,以符合 C++11 标准。libstdc++ 库支持新的和旧的 ABI,但其他一些 C++ 系统库则不支持。因此,库动态链接这些库的应用程序需要重建。这会影响所有 C++ 标准模式,包括 C++98。它还影响了使用 RHEL 7 的红帽开发人员工具集编译器构建的应用程序,该编译器保留旧的 ABI,以保持与系统库的兼容性。

GCC 不再构建 Ada、Go 和 Objective C/C++ 代码

在 Ada(GNAT)、GCC Go 和 Objective C/C++ 语言中构建代码的能力已从 GCC 编译器中删除。

要构建 Go 代码,请使用 Go Toolset。

16.2. 编译器工具集

RHEL 8 提供了以下编译器工具集来作为应用程序流:

  • LLVM 工具集提供 LLVM 编译器基础架构框架、C 和 C++ 语言的 Clang 编译器、LLDB 调试器以及代码分析的相关工具。
  • Rust 工具集提供 Rust 编程语言编译器 rustccargo 构建工具和依赖关系管理器、cargo-vendor 插件和所需的库。
  • Go 工具集提供 Go 编程语言工具和库。Go 也称为 golang

有关用法的详情和信息,请参阅 Red Hat Developer Tools 页面中的编译器工具集用户指南。

16.3. RHEL 8 中的 Java 实现和 Java 工具

RHEL 8 AppStream 软件仓库包括:

  • java-11-openjdk 软件包,提供 OpenJDK 11 Java 运行时环境和 OpenJDK 11 Java 软件开发套件。
  • java-1.8.0-openjdk 软件包,提供 OpenJDK 8 Java 运行时环境和开源 JDK 8 Java 软件开发组件。
  • icedtea-web 软件包提供了一个 Java Web Start 的实现。
  • ant 模块,它为编译、汇编、测试和运行 Java 应用程序提供了 Java 库和命令行工具。Ant 更新至 1.10 版本。
  • maven 模块,提供软件项目管理和理解工具。Maven 以前只作为 Software Collection 或不受支持的可选渠道中提供。
  • scala 模块,提供 Java 平台的通用编程语言。Scala 以前只作为 Software Collection 提供。

此外,java-1.8.0-ibm 软件包通过补充存储库分发。请注意,红帽不支持这个存储库中的软件包。

16.4. GDB 中兼容性破坏的变化

Red Hat Enterprise Linux 8 中提供的 GDB 版本包含许多破坏兼容性的变化,特别是在直接从终端读取 GDB 输出的情况下。以下部分详细介绍了这些变化。

不建议解析 GDB 的输出。首选使用 Python GDB API 或 GDB 机器接口(MI)的脚本。

GDBserver 现在使用 shell 启动 inferior

要在 inferior 命令行参数中启用扩展和变量替换,GDBserver 现在会在 shell 中启动 inferior,与 GDB 一样。

要禁止使用 shell :

  • 使用 target extended-remote GDB 命令时,请使用 set startup-with-shell off 命令禁用 shell。
  • 当使用 目标远程 GDB 命令时,请使用 gdbserver 的 --no-startup-with-shell 选项禁用 shell。

例 16.1. 远程 GDB inferiors 中的 shell 扩展的示例

这个示例演示了在 Red Hat Enterprise Linux 版本 7 和 8 中通过 GDBserver 运行 /bin/echo /* 命令的不同:

  • 对于 RHEL 7:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /*
  • 对于 RHEL 8:

    $ gdbserver --multi :1234
    $ gdb -batch -ex 'target extended-remote :1234' -ex 'set remote exec-file /bin/echo' -ex 'file /bin/echo' -ex 'run /*'
    /bin /boot (...) /tmp /usr /var

gcj 支持已删除

删除了对使用 Java 的 GNU 编译器(gcj) 调试 Java 程序的支持。

符号转储维护命令的新语法

符号转储维护命令语法现在在文件名之前包括一些选项。因此,在 RHEL 7 中可以与 GDB 一起工作的命令在 RHEL 8 中无法工作。

例如,以下命令不再在文件中存储符号,而是生成一个错误消息:

(gdb) maintenance print symbols /tmp/out main.c

符号转储维护命令的新语法为:

maint print symbols [-pc address] [--] [filename]
maint print symbols [-objfile objfile] [-source source] [--] [filename]
maint print psymbols [-objfile objfile] [-pc address] [--] [filename]
maint print psymbols [-objfile objfile] [-source source] [--] [filename]
maint print msymbols [-objfile objfile] [--] [filename]

线程数不再是全局的

在以前的版本中,GDB 只使用全局线程编号。编号已扩展为以 inferior_num.thread_num 形式按 inferior 显示,如 2.1。因此,$_thread 方便变量和 InferiorThread.num Python 属性中的线程号在 inferior 间不再是唯一的。

GDB 现在按线程存储第二个线程 ID,称为全局线程 ID,这是之前版本中线程号的新等价物。要访问全局线程号,请使用 $_gthread 方便变量以及 InferiorThread.global_num Python 属性。

为了向后兼容,机器接口(MI)线程 ID 始终包含全局 ID。

例 16.2. GDB 线程数更改示例

在 Red Hat Enterprise Linux 7 上:

# debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
* 2    process 203923 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
  1    process 203914 "echo" main (argc=1, argv=0x7fffffffdb88) at src/echo.c:109
$1 = 2
(...)
$2 = 1

在 Red Hat Enterprise Linux 8 中:

# dnf debuginfo-install coreutils
$ gdb -batch -ex 'file echo' -ex start -ex 'add-inferior' -ex 'inferior 2' -ex 'file echo' -ex start -ex 'info threads' -ex 'pring $_thread' -ex 'inferior 1' -ex 'pring $_thread'
(...)
  Id   Target Id         Frame
  1.1  process 4106488 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
* 2.1  process 4106494 "echo" main (argc=1, argv=0x7fffffffce58) at ../src/echo.c:109
$1 = 1
(...)
$2 = 1

值内容的内存可能会受限制

在以前的版本中,GDB 不会限制为值内容分配的内存量。因此,调试不正确的程序可能会导致 GDB 分配过多的内存。已添加 max-value-size 设置来限制分配的内存量。这个限制的默认值为 64 KiB。因此,Red Hat Enterprise Linux 8 中的 GDB 不会显示太大的值,而是会报告这个值太大。

例如,打印一个定义为 char s[128*1024]; 的值会生成不同的结果:

  • Red Hat Enterprise Linux 7, $1 = 'A' <repeats 131072 times>
  • On Red Hat Enterprise Linux 8, value requires 131072 bytes, which is more than max-value-size

stabs 格式的Sun 版本不再支持

stabs 调试文件格式的 Sun 版本的支持已删除。GDB 仍然支持在 RHEL 中使用 GCC 的 gcc -gstabs 选项生成的 stabs 格式。

Sysroot 处理的变化

当搜索调试所需文件时,使用 set sysroot path 命令指定系统根。现在,为这个命令提供的目录名可能会有字符串 target: 前缀,它使 GDB 从目标系统中(本地和远程)对共享的库。以前可用的 remote: 前缀现在被视为 target:另外,为了向后兼容,默认的系统根值已从空字符串变为 target:

当 GDB 远程启动进程时,或者当它连接到已运行的进程(本地和远程)时,指定的系统根将附加到主可执行文件的文件名前面。这意味着,对于远程进程,默认值 target: 使 GDB 始终尝试从远程系统加载调试信息。为防止这种情况,请在 target remote 命令之前运行 set sysroot 命令,以便在远程符号文件之前可以找到本地符号文件。

HISTSIZE 不再控制 GDB 命令历史记录大小

在以前的版本中,GDB 使用 HISTSIZE 环境变量来确定命令历史记录应保留多长。GDB 已改为使用 GDBHISTSIZE 环境变量。该变量只适用于 GDB。可能的值及其作用:

  • 正数 - 使用这个大小的命令历史记录,
  • -1 或空字符串 - 保留所有命令的历史记录,
  • 非数字值 - 忽略。

添加了完成限制

在完成过程中考虑的最大候选数量现在可以使用 set max-completions 命令来限制。要显示当前的限制,请运行 show max-completions 命令。默认值为 200。这个限制防止 GDB 产生大量的完成列表并变得无响应。

例如,输入 p <tab><tab> 之后的输出是:

  • 在 RHEL 7 上:Display all 29863 possibilities? (y or n)
  • 在 RHEL 8 上:Display all 200 possibilities? (y or n)

删除了 HP-UX XDB 兼容性模式

HP-UX XDB 兼容模式的 -xdb 选项已从 GDB 中删除。

处理线程的信号

在以前的版本中,GDB 可向当前线程发送信号,而不是实际发送信号的线程。这个 bug 已被解决,GDB 现在在恢复执行时始终将信号传递给正确的线程。

此外,signal 命令现在总是能够将请求的信号正确地传送给当前线程。如果程序针对信号停止了,且用户切换了线程,则 GDB 将要求确认。

断点模式总是插入断开和自动合并

breakpoint always-inserted 设置已被更改。已删除 auto 值和对应行为。默认值现在为 off。另外,off 值不会导致 GDB 不从目标中删除断点,直到所有进程都停止了。

不再支持 remotebaud 命令

set remotebaudshow remotebaud 命令不再被支持。改为使用 set serial baudshow serial baud 命令。

16.5. 编译器和开发工具中的兼容性破坏变化

librtkaio 已删除

有了这个更新,librtkaio 库已删除。这个库提供了对一些文件的高性能实时异步 I/O 访问,这是基于 Linux 内核异步 I/O 支持(KAIO)的。

删除后的结果:

  • 使用 LD_PRELOAD 方法加载 librtkaio 的应用程序会显示缺少库的警告信息,改为加载 librt 库并正确运行。
  • 使用 LD_LIBRARY_PATH 方法加载 librtkaio 的应用程序改为加载 librt 库,并正确运行,而没有任何警告。
  • 使用 dlopen() 系统调用来访问 librtkaio 的应用程序直接载入 librt 库。

librtkaio 用户有以下选项:

  • 使用上述回退机制,无需对其应用程序进行任何更改。
  • 更改应用程序的代码以使用 librt 库,该库提供了兼容符合 POSIX 的 API。
  • 更改应用程序的代码以使用 libaio 库,该库提供了一个兼容的 API。

librtlibaio 都可以在特定条件下提供可比较的功能和性能。

请注意,libaio 软件包具有红帽兼容性级别 2,而 librtk 和移除的 librtkaio 有级别 1。

如需了解更多详细信息,请参阅 https://fedoraproject.org/wiki/Changes/GLIBC223_librtkaio_removal

glibc 中删除了 Sun RPC 和 NIS 接口

glibc 库不再为新应用程序提供 Sun RPC 和 NIS 接口。这些接口现在仅为运行传统应用程序提供。开发人员必须更改其应用程序以使用 libtirpc 库而不是 Sun RPC ,以及 libnsl2 而不是 NIS。应用程序可以从替换库中的 IPv6 支持中受益。

32 位 Xen 的 nosegneg 库已删除

在以前的版本中,glibc i686 软件包包含一个替代的 glibc 构建,这可避免使用带有负偏移(nosegneg)的线程描述符段寄存器。这个替代构建仅用于没有硬件虚拟化支持的 Xen 项目 hypervisor 的 32 位版本,作为优化来降低完全半虚拟化的成本。这些替代构建不再使用,它们已被删除。

make 的新操作 != 会与特定的现存 makefile 语法有不同的解释

!= shell 赋值操作符已添加到 GNU make 中,来作为 $(shell …​) 函数的替代,以提高与 BSD makefiles 的兼容性。因此,名称以感叹号结尾、后面紧跟赋值的变量(如 variable!=value )现在被解释为 shell 赋值。要恢复之前的行为,请在声明标记后添加一个空格,比如 variable! =value

有关运算符和函数之间的更多详情和区别,请参阅 GNU make 手册。

MPI 调试支持的 Valgrind 库已删除

valgrind-openmpi 软件包提供的 Valgrindlibmpiwrap.so 包装库已删除。这个库启用了 Valgrind ,来调试使用消息传递接口(MPI)的程序。这个库特定于之前版本的 Red Hat Enterprise Linux 中的 Open MPI 实现版本。

我们鼓励 libmpiwrap.so 的用户从特定于其 MPI 实现和版本的上游源构建自己的版本。使用 LD_PRELOAD 技术向 Valgrind 提供这些自定义构建库。

valgrind-devel 中删除了开发标头和静态库

在以前的版本中,valgrind-devel 子软件包用于包含用于开发自定义 valgrind 工具的开发文件。这个更新删除了这些文件,因为它们没有受到保证的 API,必须静态链接,且不受支持。valgrind-devel 软件包仍然包含 valgrind-and 程序的开发文件和头文件,如 valgrind.hcallgrind.hdrd.hhelgrind.h、和 memcheck.h),它们稳定且受到良好的支持。

第 17 章 身份管理

17.1. 身份管理软件包作为模块安装

在 RHEL 8 中,安装身份管理(IdM)服务器和客户端所需的软件包作为模块分发。client 流是 idm 模块的默认流,您可以在不启用流的情况下下载安装客户端所需的软件包。

IdM 服务器模块流名为 DL1,它包含与不同类型的 IdM 服务器相对应的多个配置集:

  • server:没有集成 DNS 的 IdM 服务器
  • dns:带有集成 DNS 的 IdM 服务器
  • adtrust:与 Active Directory 有信任协议的 IdM 服务器
  • client: IdM 客户端

要在 DL1 流的特定配置集中下载软件包:

  1. 启用流:

    # yum module enable idm:DL1
  2. 切换到通过流交付的 RPM:

    # yum distro-sync
  3. 安装所选的配置文件:

    # yum module install idm:DL1/profile

    使用上述定义的特定的配置文件之一替换 profile

详情请参阅 安装身份管理服务器所需的软件包安装身份管理客户端所需的软件包

17.2. 活动目录用户现在可以管理身份管理

在 Red Hat Enterprise Linux(RHEL)7 中,外部组成员资格允许 AD 用户和组在系统安全服务守护进程(SSSD)的帮助下访问 POSIX 环境中的 IdM 资源。

IdM LDAP 服务器有自己的机制来授权访问控制。RHEL 8 引进了一个更新,它许作为 IdM 组成员为 AD 用户添加 ID 用户覆盖。ID 覆盖是描述特定的活动目录用户或组属性在特定 ID 视图中应是什么样子的记录,本例中为默认信任视图。更新后,IdM LDAP 服务器可以将 IdM 组的访问控制规则应用给 AD 用户。

AD 用户现在可以使用 IdM UI 的自助服务功能,例如上传其 SSH 密钥或更改其个人数据。AD 管理员可以完全管理 IdM ,而无需两个不同的帐户和密码。

注意

目前,IdM 中所选的功能可能仍对 AD 用户不可用。例如,为作为 IdM admins 组的用户 AD 的 IdM 用户设置密码可能会失败。

17.3. IdM 支持用于安装和管理的 Ansible 角色和模块

Red Hat Enterprise Linux 8.1 引入了 ansible-freeipa 软件包,它为身份管理(IdM)部署和管理提供了 Ansible 角色和模块。您可以使用 Ansible 角色来安装和卸载 IdM 服务器、副本和客户端。您可以使用 Ansible 模块来管理 IdM 组、拓扑和用户。另外,还提供了 playbook 示例。

此更新简化了基于 IdM 的解决方案的安装和配置。

17.4. ansible-freeipa 及所有依赖项在 AppStream 存储库中提供

从 RHEL 8.6 开始,安装 ansible-freeipa 软件包会将 ansible-core 软件包作为依赖项自动安装,它是一个更基本的 ansible 版本。ansible-freeipaansible-core 都在 rhel-9-for-x86_64-appstream-rpms 存储库中提供。

RHEL 8.6 中的 ansible-freeipa 包含 RHEL 8.6 之前包含的的所有模块。

在 RHEL 8.6 之前,您必须首先启用 Ansible 存储库,并安装 ansible 软件包。之后您才能安装 ansible-freeipa

17.5. 传统 RHEL ansible-freeipa 存储库的一个替代方案:Ansible Automation Hub

从 Red Hat Enterprise Linux 8.6 开始,您可以从 Ansible Automation Hub (AAH)下载 ansible-freeipa 模块,而不是从标准 RHEL 存储库下载它们。通过使用 AAH,您可以从此存储库中 ansible-freeipa 模块的快速更新中受益。

在 AAH 中,ansible-freeipa 角色和模块以集合的形式发布。请注意,您需要 Ansible Automation Platform(AAP)订阅来访问 AAH 门户中的内容。您还需要 ansible 版本 2.14 或更高版本。

redhat.rhel_idm 集合与传统的 ansible-freeipa 软件包有相同的内容。但是,集合形式使用完全限定的集合名称(FQCN),其中包含一个命名空间和集合名称。例如,redhat.rhel_idm.ipadnsconfig 模块对应于 RHEL 存储库提供的 ansible-freeipa 中的 ipadnsconfig 模块。命名空间和集合名称的组合可确保对象是唯一的,并可无冲突地共享。

17.6. 添加了 RHEL 8 的会话记录解决方案

在 Red Hat Enterprise Linux 8(RHEL 8)添加了记录会话记录解决方案。新的 tlog 软件包及其关联的 Web 控制台会话播放器能够记录和回放用户终端会话。可以通过 System Security Services Daemon(SSSD)服务针对每个用户或用户组配置记录。所有终端输入和输出都被捕获,并以基于文本的格式存储在系统日志中。出于安全原因,输入默认处于不活动状态,不会截获原始密码和其他敏感信息。

该解决方案可用于安全敏感系统上用户会话的审计。如果出现安全问题,可以检查记录的会话作为分析的 一 部分。系统管理员现在可以在本地配置会话记录,并可以从 RHEL 8 web 控制台界面或使用 tlog-play 工具通过命令行界面查看结果。

17.7. 删除了身份管理功能

17.7.1. 没有 NTP Server IdM 服务器角色

因为 ntpd 在 RHEL 8 中已弃用,取而代之的是 chronyd,所以 IdM 服务器不再被配置为网络时间协议(NTP)服务器,只被配置为 NTP 客户端。RHEL 7 NTP Server IdM 服务器角色也已在 RHEL 8 中被弃用。

17.7.2. OpenLDAP 不支持 NSS 数据库

在以前版本的 Red Hat Enterprise Linux(RHEL)中的 OpenLDAP 套件使用 Mozilla 网络安全服务(NSS)进行加密。RHEL 8 中,OpenLDAP 社区支持的 OpenSSL 取代了 NSS。OpenSSL 不支持 NSS 数据库来存储证书和密钥。但是,它仍然支持服务于同一目的的隐私增强邮件(PEM)文件。

17.7.3. 一些 Python Kerberos 软件包已被替代

在 Red Hat Enterprise Linux(RHEL)8 中,python-gssapi 软件包已替换了 Python Kerberos 软件包,如 python-krbVpython-kerberospython-requests-kerberospython-urllib2_kerberos。主要优点包括:

  • python-kerberospython-krbV 相比,python-gssapi 更容易使用。
  • python-gssapi 支持 python 2python 3,而 python-krbV 不支持。
  • 额外的 Kerberos 软件包 python-requests-gsapipython-urllib-gssapi 当前在 Enterprise Linux(EPEL)的 Extra Packages 存储库中提供。

由于向后兼容性的原因,除了 Kerberos,基于 GSSAPI 的软件允许使用其他通用安全服务 API(GSSAPI)机制,如 NT LAN Manager NTLM

在这个更新提高了 RHEL 8 中 GSSAPI 的可维护性和可调试性。

17.8. SSSD

17.8.1. 现在默认强制使用 AD GPO

在 RHEL 8 中,ad_gpo_access_control 选项的默认设置是 enforcing,它确保评估并强制执行基于活动目录组策略对象(GPO)的访问控制规则。

相反,RHEL 7 中此选项的默认值是 permissive,它评估但不强制执行基于 GPO 的访问控制规则。使用 permissive 模式时,每次用户被 GPO 拒绝访问都会记录系统日志消息,但是仍允许这些用户登录。

注意

红帽建议确保在从 RHEL 7 升级到 RHEL 8 前,在 Active Directory 中正确配置 GPO。

不影响默认 RHEL 7 主机中授权的错误配置的 GPO 可能会影响默认的 RHEL 8 主机。

有关 GPO 的更多信息,请参阅 在 RHEL 中应用组策略对象访问控制sssd-ad 手册页中的 ad_gpo_access_control 条目。

17.8.2. authselect 替代 authconfig

在 RHEL 8 中,authselect 工具替换了 authconfig 工具。authselect 提供了一种更安全的 PAM 堆栈管理方法,使 PAM 配置更改对系统管理员来说更加简单。authselect 可用于配置身份验证方法,如密码、证书、智能卡和指纹。authselect 不配置加入远程域所需的服务。此任务由特殊工具执行,比如 realmdipa-client-install

17.8.3. KCM 替代另外 KEYRING 来作为默认的凭证缓存存储

在 RHEL 8 中,默认凭证缓存存储是 Kerberos 凭证管理器(KCM),它由 sssd-kcm 守护进程支持。KCM 克服了之前使用的 KEYRING 的限制,例如难以在容器化环境中使用,因为它没有命名空间,不能查看和管理配额。

有了这个更新,RHEL 8 包含一个更适合容器化环境的凭证缓存,并为在以后的版本中构建更多功能提供了基础。

17.8.4. sssctl 为 IdM 域打印一个 HBAC 规则报告

有了这个更新,系统安全服务守护进程(SSSD)的 sssctl 工具可以打印身份管理(IdM)域的访问控制报告。出于监管方面的原因,此功能满足了某些环境查看可访问特定客户端计算机的用户和组列表的需求。在 IdM 客户端上运行 sssctl access-report domain_name 会打印 IdM 域中应用到客户端机器的的基于主机的访问控制(HBAC)规则的解析子集。

请注意,除了 IdM 外,其它供应商都不支持这个特性。

17.8.5. 从 RHEL 8.8 开始,SSSD 不再默认缓存本地用户,也不会通过 nss_sss 模块给它们提供服务

在 RHEL 8.8 及更高版本中,系统安全服务守护进程(SSSD) files 供应商(其为 /etc/passwd/etc/group 文件中的用户和组提供服务)默认被禁用。/etc/sssd/sssd.conf 配置文件中的 enable_files_domain 设置的默认值为 false

对于 RHEL 8.7 及更早的版本,SSSD files 供应商默认被启用。sssd.conf 配置文件中 enable_files_domain 设置的默认值为 truesss nsswitch 模块在 /etc/nsswitch.conf 文件中的 files 之前。

17.8.6. SSSD 现在允许您选择多个智能卡验证设备中的一个

默认情况下,系统安全服务守护进程(SSSD)会尝试自动为智能卡身份验证检测设备。如果连接了多个设备,SSSD 会选择它检测到的第一个设备。因此,您无法选择特定的设备,这个设备有时会导致失败。

有了这个更新,您可以为 sssd.conf 配置文件的 [pam] 部分配置一个新的 p11_uri 选项。此选项允许您定义哪个设备用于智能卡身份验证。

例如,要选择一个由 OpenSC PKCS#11 模块检测到的 slot ID 为 2 的读卡器,请添加:

p11_uri = library-description=OpenSC%20smartcard%20framework;slot-id=2

sssd.conf[pam] 部分:

详情请查看 man sssd.conf 页面。

17.9. 删除了 SSSD 功能

17.9.1. sssd-secrets 已被删除

Red Hat Enterprise Linux 8 中删除了系统安全服务守护进程(SSSD)的 sssd-secrets 组件。这是因为机密服务提供商 Custodia 不再被积极地开发。使用其他身份管理工具存储机密,如身份管理 Vault。

17.9.2. libwbclient 的 SSSD 版本已删除

libwbclient 软件包的 SSSD 实现允许 Samba smbd 服务从 AD 检索用户和组信息,而无需运行 winbind 服务。由于 Samba 现在要求 winbind 服务运行并处理与 AD 的通信,出于安全原因,相关的代码已从 smdb 中删除。因为这个额外需要的功能不是 SSSD 的一部分,且 libwbclient 的 SSSD 实现不能与 Samba 的最新版本一起使用,因此 libwbclient 的 SSSD 实现已在 RHEL 8.5 中删除。

第 18 章 Web 控制台

18.1. Web 控制台现在默认可用

RHEL 8 web 控制台(也称为 Cockpit)的软件包现在是 Red Hat Enterprise Linux 默认存储库的一部分,因此可以立即安装在注册的 RHEL 8 系统上。

另外,在 RHEL 8 的非最小安装上,会自动安装 web 控制台,控制台所需的防火墙端口会自动打开。

登录前还添加了系统消息,提供有关如何启用或访问 Web 控制台的信息。

18.2. 新的防火墙接口

RHEL 8 web 控制台中的 Networking 标签页现在包含 防火墙 设置。在这个部分中,用户可以:

  • 启用/禁用防火墙
  • 添加/删除服务

详情请参阅 使用 web 控制台管理防火墙

18.3. 订阅管理

RHEL 8 web 控制台为使用在本地系统中安装的红帽订阅管理器提供了一个界面。Subscription Manager 连接到红帽客户门户网站,并验证所有可用信息:

  • 活跃订阅
  • 过期的订阅
  • 续订的订阅

如果您要续订订阅或在红帽客户门户网站中获得不同的订阅,您不必手动更新订阅管理器数据。Subscription Manager 会自动将数据与红帽客户门户网站同步。

注意

Web 控制台的订阅页面现在由新的 subscription-manager-cockpit 软件包提供。

详情请参阅 web 控制台中的管理订阅

18.4. Web 控制台的更好的 IdM 集成

如果您的系统已在身份管理(IdM)域中注册了,则 RHEL 8 web 控制台现在默认使用域的集中管理的 IdM 资源。这包括以下优点:

  • IdM 域的管理员可以使用 Web 控制台来管理本地机器。
  • 控制台的 Web 服务器会自动切换到由 IdM 证书颁发机构(CA)发布并被浏览器接受的证书。
  • IdM 域中具有 Kerberos 票据的用户不需要提供登录凭证来访问 Web 控制台。
  • Web 控制台可以访问 IdM 域已知的 SSH 主机,而无需手动添加 SSH 连接。

请注意,要使 IdM 与 Web 控制台集成正常工作,用户首先需要在 IdM 服务器中运行带有 enable-admins-sudo 选项的 ipa-advise 工具。

18.5. Web 控制台现在与移动浏览器兼容

有了这个更新,Web 控制台菜单和页面可以在移动浏览器变体上导航。这样就可以从移动设备使用 RHEL 8 web 控制台管理系统。

18.6. Web 控制台前端页面现在显示缺少的更新和订阅

如果 RHEL 8 web 控制台管理的系统有过时的软件包或过期的订阅,现在会在系统的 web 控制台首页上显示警告信息。

18.7. Web 控制台现在支持 PBD 注册

有了这个更新,您可以使用 RHEL 8 web 控制台界面将基于策略的解密(PBD)规则应用到受管系统上的磁盘。这使用 Clevis 解密客户端来方便 Web 控制台中的各种安全管理功能,例如 LUKS 加密磁盘分区的自动解锁。

18.8. 支持 LUKS v2

在 Web 控制台的 Storage 选项卡中,您现在可以使用 LUKS(Linux 统一密钥设置)版本 2 格式创建、锁定、解锁、调整大小以及配置加密设备。

这个 LUKS 的新版本提供:

  • 更灵活的解锁策略
  • 更强大的加密
  • 更好地与将来的更改兼容

18.9. 现在可以使用 web 控制台管理虚拟机

Virtual Machines 页面现在被添加到 RHEL 8 web 控制台界面中,这使用户可以创建和管理基于 libvirt 的虚拟机。

有关 web 控制台和虚拟机管理器之间虚拟管理功能差异的信息,请参阅 虚拟机管理器和 web 控制台中虚拟化功能的差别

18.10. Web 控制台不支持 Internet Explorer

对 Internet Explorer 浏览器的支持已从 RHEL 8 web 控制台中删除。现在,在 Internet Explorer 中尝试打开 Web 控制台会显示一个错误屏幕,其中包含可以改为使用的推荐浏览器列表。

第 19 章 虚拟化

19.1. 现在可以使用 web 控制台管理虚拟机

Virtual Machines 页面现在被添加到 RHEL 8 web 控制台界面中,这使用户可以创建和管理基于 libvirt 的虚拟机(VM)。

另外,虚拟机管理器(virt-manager)应用程序已被弃用,可能在以后的 RHEL 主发行版本中不被支持。

但请注意,Web 控制台目前不提供 virt-manager 提供的所有虚拟管理功能。有关 RHEL 8 web 控制台和虚拟机管理器之间可用功能差异的详情,请参阅 配置和管理虚拟化 文档。

19.2. 虚拟化现在支持 Q35 机器类型

Red hat Enterprise Linux 8 引入了对 Q35 的支持,这是一种更加现代的基于 PCI Express 的机器类型。这在虚拟设备的特性和性能方面提供了各种改进,并确保更广泛的现代设备与虚拟化兼容。另外,Red Hat Enterprise Linux 8 中创建的虚拟机被设置为默认使用 Q35。

请注意,之前默认的 PC 机器类型已弃用,可能在以后的 RHEL 主要版本中不被支持。但是,不建议将现有虚拟机的机器类型从 PC 更改为 Q35

PCQ35 之间的显著区别包括:

  • 旧的操作系统,如 Windows XP 不支持 Q35,如果在 Q35 虚拟机上使用,将不能引导。
  • 目前,当在 Q35 虚拟机上使用 RHEL 6 作为操作系统时,在某些情况下,对该虚拟机热插拔到 PCI 设备将无法正常工作。此外,某些传统的 virtio 设备在 RHEL 6 Q35 虚拟机上无法正常工作。

    因此,推荐在 RHEL 6 虚拟机中使用 PC 机器类型。

  • Q35 模拟 PCI Express(PCI-e)总线而不是 PCI。因此,对客户机操作系统会显示不同的设备拓扑和寻址方案。
  • Q35 具有内置的 SATA/AHCI 控制器,而不是 IDE 控制器。
  • SecureBoot 功能仅适用于 Q35 虚拟机。

19.3. 删除了虚拟化功能

已弃用并删除 cpu64-rhel6 CPU 模型

cpu64-rhel6 QEMU 虚拟 CPU 模型已在 RHEL 8.1 中弃用,已从 RHEL 8.2 中删除。建议您根据主机上的 CPU,使用 QEMU 和 libvirt 提供的其他 CPU 型号。

IVSHMEM 已经被禁用

在多个虚拟机之间提供共享内存的虚拟机间共享内存设备(IVSHMEM)功能现在在 Red Hat Enterprise Linux 8 中已禁用。使用这个设备配置的虚拟机将无法引导。同样,尝试热插拔这样的设备也会失败。

virt-install 无法再使用 NFS 位置

在这个版本中, virt-install 工具无法挂载 NFS 位置。因此,使用 virt-install 安装带有 --location 选项的值指定的 NFS 地址的虚拟机时,安装会失败。要临时解决这个问题,请在使用 virt-install 之前挂载您的 NFS 共享或使用 HTTP 位置。

RHEL 8 不支持 tulip 驱动程序

有了这个更新,tulip 网络驱动程序不再被支持。因此,当在 Microsoft Hyper-V hypervisor 上的第一代虚拟机(VM)上使用 RHEL 8 时,"Legacy Network Adapter"设备无法正常工作,这会导致此类虚拟机的 PXE 安装失败。

要使 PXE 安装正常工作,请在生成 2 Hyper-V 虚拟机上安装 RHEL 8。如果您需要 RHEL 8 第一代虚拟机,请使用 ISO 安装。

LSI Logic SAS 和 Parallel SCSI 驱动程序不被支持

SCSI 的 LSI Logic SAS 驱动程序(mptsas)和 LSI Logic Parallel 驱动程序(mptspi)不再被支持。因此,可以将驱动程序用于将 RHEL 8 作为 VMWare hypervisor 上的客户机操作系统安装到 SCSI 磁盘上,但创建的虚拟机不被红帽支持。

安装 virtio-win 不再创建带有 Windows 驱动程序的软盘镜像

由于软盘驱动器的限制,virtio-win 驱动程序不再作为软盘镜像提供。用户应改为使用 ISO 镜像。

第 20 章 容器

一组容器镜像可用于 Red Hat Enterprise Linux 8。主要变更包括:

  • Docker 不包含在 RHEL 8.0 中。要使用容器,请使用 podmanbuildahskopeorunc 工具。

    有关这些工具以及在 RHEL 8 中使用容器的详情,请参考 构建、运行和管理容器

  • podman 已作为完全支持的功能发布。

    podman 管理单节点上的 pod、容器镜像和容器。它在 libpod 库基础上构建,这支持管理容器和容器组,称为 pod。

    了解如何使用 podman,查看 构建、运行和管理容器

  • 在 RHEL 8 GA 中,新提供了红帽通用基础镜像(UBI)。UBI 替换了红帽以前提供的一些镜像,如标准的和最小的 RHEL 基础镜像。

    与旧的红帽镜像不同,UBI 可以自由地重新分发。这意味着它们可以在任何环境中使用,在任意地方共享。即使您不是红帽客户,您也可以使用它们。

    有关 UBI 文档,请参阅 构建、运行和管理容器

  • 在 RHEL 8 GA 中,提供了额外的容器镜像,可提供 AppStream 组件,这些容器镜像与 RHEL 7 中的 Red Hat Software Collections 一起发布。所有 RHEL 8 镜像均基于 ubi8 基础镜像。
  • RHEL 8 完全支持 64 位 ARM 架构的容器镜像 ARM。
  • rhel-tools 容器已在 RHEL 8 中删除。support-tools 容器提供了 sosredhat-support-tool 工具程序。系统管理员也可以使用此镜像来构建系统工具容器镜像。
  • 在 RHEL 8 中,对无根容器的支持作为技术预览提供。

    无根容器是由没有管理权限的普通系统用户创建和管理的容器。

第 21 章 桌面和图形

21.1. GNOME Shell 是默认的桌面环境

RHEL 8 与作为默认桌面环境的 GNOME Shell 一起分发。

与 KDE Plasma Workspaces (KDE)相关的所有软件包已删除,不再可以使用 KDE 作为默认 GNOME 桌面环境的替代品。

红帽不支持从带有 KDE 的 RHEL 7 迁移到 RHEL 8 GNOME。建议带有 KDE 的 RHEL 7 用户备份其数据并安装带有 GNOME Shell 的 RHEL 8。

21.2. GNOME Shell 中的显著变化

RHEL 8 与 GNOME Shell 版本 3.28 一起分发。

本节:

  • 突出显示与 GNOME Shell 版本 3.28 相关的增强功能。
  • 告知 GNOME Shell 环境与显示协议的默认组合的更改。
  • 解释了如何访问默认不可用的功能。
  • 解释了用于软件管理的 GNOME 工具中的更改。

21.2.1. RHEL 8 中的GNOME Shell,版本 3.28

RHEL 8 提供的 GNOME Shell,版本 3.28。主要改进包括:

  • 新的 GNOME Boxes 功能
  • 新屏幕键盘
  • 扩展设备支持,最重要的是 Thunderbolt 3 接口的集成
  • GNOME 软件、dconf-editor 和 GNOME Terminal 的改进

21.2.2. GNOME Shell 环境

GNOME 3 提供了两个基本环境:

  • GNOME 标准
  • GNOME 经典

两个环境都可以使用两个不同的协议来构建图形用户界面:

  • X11 协议,它使用 X.Org 作为显示服务器。
  • Wayland 协议,它使用 GNOME Shell 作为 Wayland 合成器和显示服务器。

    这种显示服务器的解决方案进一步被称为 Wayland 上的 GNOME Shell

RHEL 8 中的默认组合是使用 Wayland 上的 GNOME Shell 作为显示服务器的 GNOME 标准环境。

但是,您可能希望切换到 GNOME Shell 环境和图形协议堆栈的另一个组合。更多信息请参阅 第 21.3 节 “选择 GNOME 环境并显示协议”

其它资源

  • 有关使用两个 GNOME Shell 环境的基础知识的更多信息,请参阅 GNOME 环境的概述

21.2.3. 桌面图标

在 RHEL 8 中,Nautilus 文件管理器不再提供桌面图标功能,而是由桌面图标 gnome-shell 扩展提供。

要能够使用扩展,您必须安装 Appstream 存储库中提供的 gnome-shell-extension-desktop-icons 软件包。

其它资源

21.2.4. 部分扩展

GNOME Shell on Wayland 会话中,提供了部分扩展功能。该功能使得按部分扩展 GUI 成为可能,这可以提高特定显示器上扩展的 GUI 的外观。

请注意,这个功能当前被视为实验性功能,因此在默认情况下是禁用的。

要启用分数扩展,请运行以下命令:

# gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

21.2.5. 用于软件包管理的 GNOME Software

在 RHEL 7 上的图形环境中提供软件包管理的工具集的gnome-packagekit 软件包不再可用。

在 RHEL 8 上,GNOME Software 工具提供了类似的功能,它可让您安装和更新应用程序和 gnome-shell 扩展。GNOME Softwaregnome-software 软件包中分发。

其它资源

21.2.6. 使用 sudo 打开图形应用程序

当尝试使用 sudo 命令在终端中打开图形应用程序时,您必须执行以下操作:

X11 应用程序

如果应用程序使用 X11 显示协议,请在 X 服务器访问控制列表中添加本地用户 root。因此,允许 root 连接到 Xwayland,这会将 X11 协议转换为 Wayland 协议,反之亦然。

例 21.1. 将 root 添加到 X 服务器访问控制列表,以使用 sudo 打开 xclock

$ xhost +si:localuser:root

$ sudo xclock

Wayland 应用程序

如果应用是 Wayland 原生的,请包含 -E 选项。

例 21.2. 使用 sudo 打开 GNOME 计算器

$ sudo -E gnome-calculator

否则,如果您只输入 sudo 和应用程序的名称,打开应用程序的操作会失败,并显示以下错误消息:

No protocol specified
Unable to init server: could not connect: connection refused
# Failed to parse arguments: Cannot open display

21.3. 选择 GNOME 环境并显示协议

要在 GNOME 环境和图形协议堆栈的各种组合之间切换,请使用以下流程。

流程

  1. 从登录屏幕(GDM),点 Sign In 按钮旁边的齿轮按钮。

    注意

    您无法从锁定屏幕访问这个选项。当您首次启动 RHEL 8 或从当前会话注销时,会出现登录屏幕。

    gnome environments new

  2. 在出现的下拉菜单中,选择您首选的选项。

    注意

    请注意,在登录屏幕上显示的菜单中,X.Org 显示服务器标记为 X11 显示服务器。

重要

由上述流程导致的 GNOME 环境和图形协议堆栈的更改在用户退出登录以及关闭或重启计算机时永久存在。

第 22 章 国际化

22.1. RHEL 8 国际语言

Red Hat Enterprise Linux 8 支持多种语言的安装,并根据您的需要更改语言。

  • 东亚语言 - 日语、韩语、简体中文和繁体中文。
  • 欧洲语言 - 英语、德语、西班牙语、法语、意大利语、葡萄牙语和俄语。

下表列出了为各种主要语言提供的字体和输入法。

语言默认字体(字体软件包)输入法

English

dejavu-sans-fonts

 

法语

dejavu-sans-fonts

 

德语

dejavu-sans-fonts

 

意大利语

dejavu-sans-fonts

 

俄语

dejavu-sans-fonts

 

西班牙语

dejavu-sans-fonts

 

葡萄牙语

dejavu-sans-fonts

 

简体中文

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libpinyin, libpinyin

繁体中文

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-libzhuyin, libzhuyin

日语

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-kkc, libkc

韩语

google-noto-sans-cjk-ttc-fonts, google-noto-serif-cjk-ttc-fonts

ibus-hangul, libhangu

22.2. RHEL 8 中国际化的显著变化

RHEL 8 与 RHEL 7 相比,对国际化进行了以下更改:

  • 添加了对 Unicode 11 计算行业标准的支持。
  • 国际化发布在多个软件包中,这样就可以进行较小的内存占用安装。如需更多信息,参阅 请使用语言包
  • 现在,多区域的 glibc 软件包更新会与 Common Locale Data Repository(CLDR)同步。

第 23 章 用于 SAP 解决方案的 Red Hat Enterprise Linux

用于 SAP 解决方案的 Red Hat Enterprise Linux 为 SAP 工作负载提供了一致的基础。有关关键业务 IT 环境(如 SAP 环境)的 RHEL for SAP Solutions 订阅所提供的功能和好处的列表,请参阅 用于 SAP Solutions 订阅的 Red Hat Enterprise Linux 概述。以下资源提供了 RHEL 7 和 RHEL 8 之间变化的概述。

除了两个主要 RHEL 存储库( BaseOS 和 AppStream)外,RHEL 8 for SAP Solutions 订阅还包括 SAP Solutions 和 SAP NetWeaver 存储库。SAP 环境和工作负载都需要这两个存储库。

RHEL 7 和 RHEL 8 之间的存储库名称变化

下表列出了 RHEL 7 for SAP HANA / Solutions 和 RHEL 8 for SAP Solutions 之间重命名的存储库:

最初的存储库名称。新存储库名称 [a]修改自备注

rhel-sap-hana-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-solutions-rpms

RHEL 8.0

也适用于 Extended Update Support(EUS)和 Update Services for SAP Solutions(E4S)存储库

rhel-sap-for-rhel-7-<server|for-power-le>-rpms

rhel-8-for-<arch>-sap-netweaver-rpms

RHEL 8.0

也适用于 Extended Update Support(EUS)和 Update Services for SAP Solutions(E4S)存储库

[a] 此表使用示例来帮助识别完整的存储库 ID,其中 < <arch>; 是特定的架构。

附录 A. 对软件包的更改

以下章节包含了对 RHEL 7 和 RHEL 8 间软件包的更改,以及对 RHEL 8 次版本间的更改。

A.1. 新软件包

A.1.1. RHEL 8 次要发行本中添加的软件包

从 RHEL 8.1 开始,在 RHEL 8 中添加了以下软件包:

软件包软件仓库新内容

aardvark-dns

rhel8-AppStream

RHEL 8.6

accel-config

rhel8-BaseOS

RHEL 8.4

accel-config-devel

rhel8-CRB

RHEL 8.4

accel-config-libs

rhel8-BaseOS

RHEL 8.4

adwaita-icon-theme-devel

rhel8-CRB

RHEL 8.6

adwaita-qt5

rhel8-AppStream

RHEL 8.5

alsa-sof-firmware

rhel8-BaseOS

RHEL 8.3

alsa-sof-firmware-debug

rhel8-BaseOS

RHEL 8.3

anaconda-widgets-devel

rhel8-CRB

RHEL 8.7

annobin-annocheck

rhel8-AppStream

RHEL 8.3

ansible-collection-microsoft-sql

rhel8-AppStream

RHEL 8.5

ansible-collection-redhat-rhel_mgmt

rhel8-AppStream

RHEL 8.5

ansible-core

rhel8-AppStream

RHEL 8.6

ansible-freeipa

rhel8-AppStream

RHEL 8.1

ansible-freeipa-tests

rhel8-AppStream

RHEL 8.5

ansible-pcp

rhel8-AppStream

RHEL 8.5

ansible-test

rhel8-AppStream

RHEL 8.6

apiguardian

rhel8-AppStream

RHEL 8.4

asio-devel

rhel8-CRB

RHEL 8.1

asio-devel

rhel8-CRB

RHEL 8.3

aspnetcore-runtime-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-runtime-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-runtime-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-runtime-7.0

rhel8-AppStream

RHEL 8.7

aspnetcore-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

aspnetcore-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

aspnetcore-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

aspnetcore-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

autogen-libopts-devel

rhel8-CRB

RHEL 8.3

avahi-glib-devel

rhel8-CRB

RHEL 8.4

avahi-gobject-devel

rhel8-CRB

RHEL 8.4

avahi-tools

rhel8-AppStream

RHEL 8.9

avahi-ui

rhel8-CRB

RHEL 8.4

avahi-ui-devel

rhel8-CRB

RHEL 8.4

bash-devel

rhel8-CRB

RHEL 8.6

batik-css

rhel8-AppStream

RHEL 8.4

batik-util

rhel8-AppStream

RHEL 8.4

bcc-devel

rhel8-CRB

RHEL 8.2

bind9.16

rhel8-AppStream

RHEL 8.6

bind9.16-chroot

rhel8-AppStream

RHEL 8.6

bind9.16-devel

rhel8-CRB

RHEL 8.6

bind9.16-dnssec-utils

rhel8-CRB

RHEL 8.6

bind9.16-doc

rhel8-CRB

RHEL 8.6

bind9.16-libs

rhel8-AppStream

RHEL 8.6

bind9.16-license

rhel8-AppStream

RHEL 8.6

bind9.16-utils

rhel8-AppStream

RHEL 8.6

chan

rhel8-AppStream

RHEL 8.3

cifs-utils-devel

rhel8-CRB

RHEL 8.8

clang-resource-filesystem

rhel8-AppStream

RHEL 8.5

cockpit-leapp

rhel8-AppStream

RHEL 8.7

compat-exiv2-026

rhel8-AppStream

RHEL 8.2

compat-hwloc1

rhel8-BaseOS

RHEL 8.5

compat-sap-c++-10

rhel8-SAP

RHEL 8.3

compat-sap-c++-11

rhel8-SAP

RHEL 8.5

compat-sap-c++-12

rhel8-SAP

RHEL 8.7

conmon

rhel8-AppStream

RHEL 8.2

coreos-installer

rhel8-AppStream

RHEL 8.5

coreos-installer-bootinfra

rhel8-AppStream

RHEL 8.5

coreos-installer-dracut

rhel8-AppStream

RHEL 8.6

crit

rhel8-AppStream

RHEL 8.2

criu-devel

rhel8-AppStream

RHEL 8.5

criu-libs

rhel8-AppStream

RHEL 8.5

crun

rhel8-AppStream

RHEL 8.3

crypto-policies-scripts

rhel8-BaseOS

RHEL 8.3

dejavu-lgc-sans-fonts

rhel8-AppStream

RHEL 8.4

delve

rhel8-AppStream

RHEL 8.2

directory-maven-plugin-javadoc

rhel8-AppStream

RHEL 8.2

directory-maven-plugin

rhel8-AppStream

RHEL 8.2

disruptor

rhel8-AppStream

RHEL 8.6

dotnet-apphost-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-apphost-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-apphost-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-apphost-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-build-reference-packages

rhel8-CRB

RHEL 8.5

dotnet-hostfxr-3.1

rhel8-AppStream

RHEL 8.2

dotnet-hostfxr-5.0

rhel8-AppStream

RHEL 8.3

dotnet-hostfxr-6.0

rhel8-AppStream

RHEL 8.5

dotnet-hostfxr-7.0

rhel8-AppStream

RHEL 8.7

dotnet-runtime-3.1

rhel8-AppStream

RHEL 8.2

dotnet-runtime-5.0

rhel8-AppStream

RHEL 8.3

dotnet-runtime-6.0

rhel8-AppStream

RHEL 8.5

dotnet-runtime-7.0

rhel8-AppStream

RHEL 8.7

dotnet-sdk-3.1-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-3.1

rhel8-AppStream

RHEL 8.2

dotnet-sdk-5.0

rhel8-AppStream

RHEL 8.3

dotnet-sdk-5.0-source-built-artifacts

rhel8-CRB

RHEL 8.5

dotnet-sdk-6.0

rhel8-AppStream

RHEL 8.5

dotnet-sdk-6.0-source-built-artifacts

rhel8-CRB

RHEL 8.6

dotnet-sdk-7.0

rhel8-AppStream

RHEL 8.7

dotnet-sdk-7.0-source-built-artifacts

rhel8-CRB

RHEL 8.7

dotnet-targeting-pack-3.1

rhel8-AppStream

RHEL 8.2

dotnet-targeting-pack-5.0

rhel8-AppStream

RHEL 8.3

dotnet-targeting-pack-6.0

rhel8-AppStream

RHEL 8.5

dotnet-targeting-pack-7.0

rhel8-AppStream

RHEL 8.7

dotnet-templates-3.1

rhel8-AppStream

RHEL 8.2

dotnet-templates-5.0

rhel8-AppStream

RHEL 8.3

dotnet-templates-6.0

rhel8-AppStream

RHEL 8.5

dotnet-templates-7.0

rhel8-AppStream

RHEL 8.7

dotnet5.0-build-reference-packages

rhel8-CRB

RHEL 8.5

dwarves

rhel8-CRB

RHEL 8.2

ecj

rhel8-AppStream

RHEL 8.8

eclipse-ecf-core

rhel8-AppStream

RHEL 8.4

eclipse-ecf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-core

rhel8-AppStream

RHEL 8.4

eclipse-emf-runtime

rhel8-AppStream

RHEL 8.4

eclipse-emf-xsd

rhel8-AppStream

RHEL 8.4

eclipse-equinox-osgi

rhel8-AppStream

RHEL 8.4

eclipse-jdt

rhel8-AppStream

RHEL 8.4

eclipse-p2-discovery

rhel8-AppStream

RHEL 8.4

eclipse-pde

rhel8-AppStream

RHEL 8.4

eclipse-platform

rhel8-AppStream

RHEL 8.4

eclipse-swt

rhel8-AppStream

RHEL 8.4

ee4j-parent

rhel8-AppStream

RHEL 8.2

efivar-devel

rhel8-CRB

RHEL 8.6

egl-utils

rhel8-AppStream

RHEL 8.7

elfutils-debuginfod

rhel8-BaseOS

RHEL 8.3

elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.2

elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.2

emoji-picker

rhel8-AppStream

RHEL 8.4

eth-tools-basic

rhel8-AppStream

RHEL 8.5

eth-tools-fastfabric

rhel8-AppStream

RHEL 8.5

evince-devel

rhel8-CRB

RHEL 8.4

fapolicyd

rhel8-AppStream

RHEL 8.1

fapolicyd-selinux

rhel8-AppStream

RHEL 8.3

fdo-admin-cli

rhel8-AppStream

RHEL 8.6

fdo-client

rhel8-AppStream

RHEL 8.6

fdo-init

rhel8-AppStream

RHEL 8.6

fdo-manufacturing-server

rhel8-AppStream

RHEL 8.6

fdo-owner-cli

rhel8-AppStream

RHEL 8.6

fdo-owner-onboarding-server

rhel8-AppStream

RHEL 8.6

fdo-rendezvous-server

rhel8-AppStream

RHEL 8.6

felix-gogo-command

rhel8-AppStream

RHEL 8.4

felix-gogo-runtime

rhel8-AppStream

RHEL 8.4

felix-gogo-shell

rhel8-AppStream

RHEL 8.4

felix-scr

rhel8-AppStream

RHEL 8.4

fence-agents-ibm-powervs

rhel8-AppStream

RHEL 8.6

fence-agents-ibm-vpc

rhel8-AppStream

RHEL 8.6

fence-agents-kubevirt

rhel8-AppStream

RHEL 8.6

fence-agents-openstack

rhel8-HighAvailability

RHEL 8.7

fence-virtd-cpg

rhel8-AppStream

RHEL 8.6

flatpak-devel

rhel8-CRB

RHEL 8.5

flatpak-selinux

rhel8-AppStream

RHEL 8.2

flatpak-session-helper

rhel8-AppStream

RHEL 8.2

flatpak-spawn

rhel8-AppStream

RHEL 8.4

flatpak-xdg-utils

rhel8-AppStream

RHEL 8.4

frr-selinux

rhel8-AppStream

RHEL 8.7

fstrm

rhel8-AppStream

RHEL 8.4

fstrm-devel

rhel8-AppStream

RHEL 8.4

fstrm-utils

rhel8-CRB

RHEL 8.7

fwupd-devel

rhel8-CRB

RHEL 8.6

gcc-plugin-annobin

rhel8-AppStream

RHEL 8.7

gcc-toolset-9-libasan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libatomic-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-liblsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libtsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-9-libubsan-devel

rhel8-AppStream

RHEL 8.2

gcc-toolset-10

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-annobin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-binutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-build

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dwz

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-dyninst-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-elfutils-libs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-c++

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-gfortran

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gcc-plugin-devel

rhel8-CRB

RHEL 8.5

gcc-toolset-10-gdb

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-doc

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-gdb-gdbserver

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libasan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libatomic-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libitm-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-liblsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libquadmath-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libstdc++-docs

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libtsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-libubsan-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-ltrace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-make-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-perftools

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-strace

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-client

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-initscript

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-runtime

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-systemtap-server

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-toolchain

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind

rhel8-AppStream

RHEL 8.3

gcc-toolset-10-valgrind-devel

rhel8-AppStream

RHEL 8.3

gcc-toolset-11

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-annocheck

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-binutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-build

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dwz

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-dyninst-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-debuginfod-client-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libelf-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-elfutils-libs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-c++

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gdb-plugin

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-gfortran

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gcc-plugin-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-doc

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-gdb-gdbserver

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libasan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libatomic-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libgccjit-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libitm-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-liblsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libquadmath-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libstdc++-docs

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libtsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-libubsan-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-ltrace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-make-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-perftools

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-strace

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-client

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-initscript

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-runtime

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-sdt-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-systemtap-server

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-toolchain

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind

rhel8-AppStream

RHEL 8.5

gcc-toolset-11-valgrind-devel

rhel8-AppStream

RHEL 8.5

gcc-toolset-12

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-annocheck

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-binutils-gold

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-build

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-dwz

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-c++

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-gfortran

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.8

gcc-toolset-12-gcc-plugin-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-gdb

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libasan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libatomic-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libgccjit-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libitm-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-liblsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libquadmath-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libstdc++-docs

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libtsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-libubsan-devel

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-offload-nvptx

rhel8-AppStream

RHEL 8.7

gcc-toolset-12-runtime

rhel8-AppStream

RHEL 8.7

gcc-toolset-13

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-annocheck

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-annobin-plugin-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-binutils-gold

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-dwz

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-c++

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-gfortran

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-annobin

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gcc-plugin-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-gdb

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libasan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libatomic-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libgccjit-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libitm-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-liblsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libquadmath-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libstdc++-docs

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libtsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-libubsan-devel

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-offload-nvptx

rhel8-AppStream

RHEL 8.9

gcc-toolset-13-runtime

rhel8-AppStream

RHEL 8.9

gdm-devel

rhel8-CRB

RHEL 8.6

gdm-pam-extensions-devel

rhel8-CRB

RHEL 8.6

git-credential-libsecret

rhel8-AppStream

RHEL 8.3

git-lfs

rhel8-AppStream

RHEL 8.3

glade

rhel8-CRB

RHEL 8.7

glassfish-jsp

rhel8-AppStream

RHEL 8.4

glibc-doc

rhel8-BaseOS

RHEL 8.7

glibc-gconv-extra

rhel8-AppStream

RHEL 8.6

gnome-session-kiosk-session

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-classification-banner

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-custom-menu

rhel8-AppStream

RHEL 8.9

gnome-shell-extension-dash-to-panel

rhel8-AppStream

RHEL 8.6

gnome-shell-extension-gesture-inhibitor

rhel8-AppStream

RHEL 8.5

gnome-shell-extension-heads-up-display

rhel8-AppStream

RHEL 8.6

gnome-software-devel

rhel8-CRB

RHEL 8.5

google-gson

rhel8-AppStream

RHEL 8.4

grafana-pcp

rhel8-AppStream

RHEL 8.2

graphviz-python3

rhel8-CRB

RHEL 8.2

greenboot

rhel8-AppStream

RHEL 8.3

greenboot-default-health-checks

rhel8-AppStream

RHEL 8.6

greenboot-grub2

rhel8-AppStream

RHEL 8.3

greenboot-reboot

rhel8-AppStream

RHEL 8.3

greenboot-rpm-ostree-grub2

rhel8-AppStream

RHEL 8.3

greenboot-status

rhel8-AppStream

RHEL 8.3

gtk-vnc2-devel

rhel8-CRB

RHEL 8.9

gtk3-devel-docs

rhel8-CRB

RHEL 8.7

guava

rhel8-AppStream

RHEL 8.2

gvnc-devel

rhel8-CRB

RHEL 8.9

HdrHistogram

rhel8-AppStream

RHEL 8.3

HdrHistogram_c

rhel8-AppStream

RHEL 8.3

HdrHistogram-javadoc

rhel8-AppStream

RHEL 8.3

hostapd

rhel8-AppStream

RHEL 8.6

http-parser-devel

rhel8-CRB

RHEL 8.2

ibus-table-devel

rhel8-CRB

RHEL 8.4

ibus-table-tests

rhel8-CRB

RHEL 8.4

ibus-typing-booster-tests

rhel8-CRB

RHEL 8.4

icu4j

rhel8-AppStream

RHEL 8.4

idm-pki-acme

rhel8-AppStream

RHEL 8.7

idm-pki-base

rhel8-AppStream

RHEL 8.7

idm-pki-base-java

rhel8-AppStream

RHEL 8.7

idm-pki-ca

rhel8-AppStream

RHEL 8.7

idm-pki-kra

rhel8-AppStream

RHEL 8.7

idm-pki-server

rhel8-AppStream

RHEL 8.7

idm-pki-symkey

rhel8-AppStream

RHEL 8.7

idm-pki-tools

rhel8-AppStream

RHEL 8.7

idn2

rhel8-AppStream

RHEL 8.1

ima-evm-utils0

rhel8-BaseOS

RHEL 8.4

inkscape1

rhel8-AppStream

RHEL 8.8

inkscape1-docs

rhel8-AppStream

RHEL 8.8

inkscape1-view

rhel8-AppStream

RHEL 8.8

intel-cmt-cat-devel

rhel8-CRB

RHEL 8.4

ipa-client-epn

rhel8-AppStream

RHEL 8.3

ipa-client-samba

rhel8-AppStream

RHEL 8.1

ipa-healthcheck

rhel8-AppStream

RHEL 8.1

ipa-healthcheck-core

rhel8-AppStream

RHEL 8.2

ipa-selinux

rhel8-AppStream

RHEL 8.3

ipxe-bootimgs-aarch64

rhel8-AppStream

RHEL 8.6

ipxe-bootimgs-x86

rhel8-AppStream

RHEL 8.6

iscsi-initiator-utils-devel

rhel8-CRB

RHEL 8.3

jaf-javadoc

rhel8-AppStream

RHEL 8.2

jaf

rhel8-AppStream

RHEL 8.2

jakarta-activation2

rhel8-AppStream

RHEL 8.8

jakarta-annotations

rhel8-AppStream

RHEL 8.7

java-1.8.0-openjdk-accessibility-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-accessibility-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-1.8.0-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs

rhel8-AppStream

RHEL 8.3

java-11-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.4

java-11-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.4

java-17-openjdk

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo

rhel8-AppStream

RHEL 8.5

java-17-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel

rhel8-AppStream

RHEL 8.5

java-17-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless

rhel8-AppStream

RHEL 8.5

java-17-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-javadoc

rhel8-AppStream

RHEL 8.5

java-17-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods

rhel8-AppStream

RHEL 8.5

java-17-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src

rhel8-AppStream

RHEL 8.5

java-17-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs

rhel8-AppStream

RHEL 8.5

java-17-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.5

java-17-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.5

java-21-openjdk

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo

rhel8-AppStream

RHEL 8.9

java-21-openjdk-demo-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-demo-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel

rhel8-AppStream

RHEL 8.9

java-21-openjdk-devel-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-devel-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless

rhel8-AppStream

RHEL 8.9

java-21-openjdk-headless-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-headless-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-javadoc

rhel8-AppStream

RHEL 8.9

java-21-openjdk-javadoc-zip

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods

rhel8-AppStream

RHEL 8.9

java-21-openjdk-jmods-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-jmods-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src

rhel8-AppStream

RHEL 8.9

java-21-openjdk-src-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-src-slowdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs

rhel8-AppStream

RHEL 8.9

java-21-openjdk-static-libs-fastdebug

rhel8-CRB

RHEL 8.9

java-21-openjdk-static-libs-slowdebug

rhel8-CRB

RHEL 8.9

jaxb-api4

rhel8-AppStream

RHEL 8.8

jaxb-codemodel

rhel8-AppStream

RHEL 8.8

jaxb-core

rhel8-AppStream

RHEL 8.8

jaxb-dtd-parser

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-runtime

rhel8-AppStream

RHEL 8.8

jaxb-istack-commons-tools

rhel8-AppStream

RHEL 8.8

jaxb-relaxng-datatype

rhel8-AppStream

RHEL 8.8

jaxb-rngom

rhel8-AppStream

RHEL 8.8

jaxb-runtime

rhel8-AppStream

RHEL 8.8

jaxb-txw2

rhel8-AppStream

RHEL 8.8

jaxb-xjc

rhel8-AppStream

RHEL 8.8

jaxb-xsom

rhel8-AppStream

RHEL 8.8

jctools

rhel8-AppStream

RHEL 8.6

jetty-continuation

rhel8-AppStream

RHEL 8.4

jetty-http

rhel8-AppStream

RHEL 8.4

jetty-io

rhel8-AppStream

RHEL 8.4

jetty-security

rhel8-AppStream

RHEL 8.4

jetty-server

rhel8-AppStream

RHEL 8.4

jetty-servlet

rhel8-AppStream

RHEL 8.4

jetty-util

rhel8-AppStream

RHEL 8.4

jigawatts

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.5

jigawatts-javadoc

rhel8-AppStream

RHEL 8.8

jmc-core-javadoc

rhel8-AppStream

RHEL 8.2

jmc-core

rhel8-AppStream

RHEL 8.2

jmc

rhel8-AppStream

RHEL 8.2

jolokia-jvm-agent

rhel8-AppStream

RHEL 8.2

jq-devel

rhel8-CRB

RHEL 8.5

js-d3-flame-graph

rhel8-AppStream

RHEL 8.3

Judy-devel

rhel8-BaseOS

RHEL 8.1

Judy-devel

rhel8-CRB

RHEL 8.3

junit5

rhel8-AppStream

RHEL 8.4

kernel-abi-stablelists

rhel8-BaseOS

RHEL 8.4

kmod-redhat-oracleasm

rhel8-BaseOS

RHEL 8.4

kpatch-dnf

rhel8-BaseOS

RHEL 8.4

lasso-devel

rhel8-CRB

RHEL 8.5

leapp

rhel8-AppStream

RHEL 8.7

leapp-deps

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9

rhel8-AppStream

RHEL 8.7

leapp-upgrade-el8toel9-deps

rhel8-AppStream

RHEL 8.7

libadwaita-qt5

rhel8-AppStream

RHEL 8.5

libasan6

rhel8-AppStream

RHEL 8.4

libasan8

rhel8-AppStream

RHEL 8.7

libbabeltrace-devel

rhel8-CRB

RHEL 8.3

libblockdev-crypto-devel

rhel8-CRB

RHEL 8.3

libblockdev-devel

rhel8-CRB

RHEL 8.3

libblockdev-fs-devel

rhel8-CRB

RHEL 8.3

libblockdev-loop-devel

rhel8-CRB

RHEL 8.3

libblockdev-lvm-devel

rhel8-CRB

RHEL 8.3

libblockdev-mdraid-devel

rhel8-CRB

RHEL 8.3

libblockdev-part-devel

rhel8-CRB

RHEL 8.3

libblockdev-swap-devel

rhel8-CRB

RHEL 8.3

libblockdev-utils-devel

rhel8-CRB

RHEL 8.3

libblockdev-vdo-devel

rhel8-CRB

RHEL 8.3

libbpf-devel

rhel8-CRB

RHEL 8.2

libbpf-static

rhel8-CRB

RHEL 8.2

libbpf

rhel8-BaseOS

RHEL 8.2

libbytesize-devel

rhel8-CRB

RHEL 8.3

libcap-ng-python3

rhel8-BaseOS

RHEL 8.5

libdazzle-devel

rhel8-CRB

RHEL 8.4

libdhash-devel

rhel8-CRB

RHEL 8.7

libdnf-devel

rhel8-CRB

RHEL 8.4

libdwarves1

rhel8-CRB

RHEL 8.2

libecpg

rhel8-AppStream

RHEL 8.4

libecpg-devel

rhel8-CRB

RHEL 8.4

libepubgen-devel

rhel8-CRB

RHEL 8.4

libestr-devel

rhel8-CRB

RHEL 8.7

libgcab1-devel

rhel8-CRB

RHEL 8.6

libguestfs-appliance

rhel8-AppStream

RHEL 8.6

libnbd

rhel8-AppStream

RHEL 8.3

libnbd-bash-completion

rhel8-AppStream

RHEL 8.6

libnbd-devel

rhel8-AppStream

RHEL 8.3

libnetapi

rhel8-BaseOS

RHEL 8.8

libnetapi-devel

rhel8-CRB

RHEL 8.8

libnftnl-devel

rhel8-CRB

RHEL 8.2

libnumbertext

rhel8-AppStream

RHEL 8.4

libpgtypes

rhel8-AppStream

RHEL 8.4

libpinyin-devel

rhel8-CRB

RHEL 8.6

libpsl-devel

rhel8-CRB

RHEL 8.3

libreoffice

rhel8-AppStream

RHEL 8.8

librepo-devel

rhel8-CRB

RHEL 8.4

librhsm-devel

rhel8-CRB

RHEL 8.4

libselinux-static

rhel8-CRB

RHEL 8.6

libsemanage-devel

rhel8-CRB

RHEL 8.3

libserf-devel

rhel8-CRB

RHEL 8.7

libslirp

rhel8-AppStream

RHEL 8.3

libslirp-devel

rhel8-AppStream

RHEL 8.3

libsmi-devel

rhel8-CRB

RHEL 8.4

libsndfile-utils

rhel8-AppStream

RHEL 8.8

libsolv-devel

rhel8-CRB

RHEL 8.4

libsolv-tools

rhel8-CRB

RHEL 8.4

libss-devel

rhel8-CRB

RHEL 8.6

libssh-config

rhel8-BaseOS

RHEL 8.1

libstoragemgmt-devel

rhel8-BaseOS

RHEL 8.3

libstoragemgmt-devel

rhel8-CRB

RHEL 8.3

libstoragemgmt-nfs-plugin

rhel8-AppStream

RHEL 8.7

libtpms

rhel8-AppStream

RHEL 8.6

libtpms-devel

rhel8-AppStream

RHEL 8.6

libtraceevent

rhel8-BaseOS

RHEL 8.8

libtraceevent-devel

rhel8-CRB

RHEL 8.8

libtracefs

rhel8-BaseOS

RHEL 8.8

libtracefs-devel

rhel8-CRB

RHEL 8.8

libtsan2

rhel8-AppStream

RHEL 8.7

libudisks2-devel

rhel8-CRB

RHEL 8.3

liburing-devel

rhel8-CRB

RHEL 8.3

liburing

rhel8-AppStream

RHEL 8.2

libuser-devel

rhel8-CRB

RHEL 8.6

libuv-devel

rhel8-CRB

RHEL 8.4

libverto-libev

rhel8-AppStream

RHEL 8.7

libvirt-daemon-driver-storage-iscsi-direct

rhel8-AppStream

RHEL 8.3

libvirt-wireshark

rhel8-AppStream

RHEL 8.6

libvma-utils

rhel8-AppStream

RHEL 8.9

libvoikko-devel

rhel8-CRB

RHEL 8.5

libwpe

rhel8-AppStream

RHEL 8.8

libwpe-devel

rhel8-CRB

RHEL 8.8

libxdp

rhel8-AppStream

RHEL 8.3

libxdp-devel

rhel8-CRB

RHEL 8.8

libxdp-static

rhel8-CRB

RHEL 8.8

libxkbfile-1.1.0-1.el8

rhel8-AppStream

RHEL 8.3

libxmlb

rhel8-BaseOS

RHEL 8.3

libxmlb-devel

rhel8-CRB

RHEL 8.6

libXvMC-devel

rhel8-CRB

RHEL 8.3

libzstd-devel

rhel8-BaseOS

RHEL 8.2

libzstd

rhel8-BaseOS

RHEL 8.2

lld-test

rhel8-AppStream

RHEL 8.2

lmdb

rhel8-CRB

RHEL 8.8

lmdb-devel

rhel8-CRB

RHEL 8.6

lmdb-libs

rhel8-AppStream

RHEL 8.1

log4j

rhel8-AppStream

RHEL 8.6

log4j-jcl

rhel8-AppStream

RHEL 8.6

log4j-slf4j

rhel8-AppStream

RHEL 8.6

log4j-web

rhel8-AppStream

RHEL 8.8

lpsolve-devel

rhel8-CRB

RHEL 8.5

lucene

rhel8-AppStream

RHEL 8.4

lucene-analysis

rhel8-AppStream

RHEL 8.4

lucene-analyzers-smartcn

rhel8-AppStream

RHEL 8.4

lucene-queries

rhel8-AppStream

RHEL 8.4

lucene-queryparser

rhel8-AppStream

RHEL 8.4

lucene-sandbox

rhel8-AppStream

RHEL 8.4

lz4-java

rhel8-AppStream

RHEL 8.4

lz4-java-javadoc

rhel8-AppStream

RHEL 8.4

make43

rhel8-AppStream

RHEL 8.7

make43-devel

rhel8-AppStream

RHEL 8.7

mariadb-pam

rhel8-AppStream

RHEL 8.4

marisa-devel

rhel8-CRB

RHEL 8.9

maven-openjdk11

rhel8-AppStream

RHEL 8.2

maven-openjdk8

rhel8-AppStream

RHEL 8.2

maven-openjdk17

rhel8-AppStream

RHEL 8.6

mdevctl

rhel8-AppStream

RHEL 8.3

memstrack

rhel8-BaseOS

RHEL 8.3

mercurial-chg

rhel8-AppStream

RHEL 8.7

micropipenv

rhel8-AppStream

RHEL 8.4

mingw32-spice-vdagent

rhel8-CRB

RHEL 8.2

mingw64-spice-vdagent

rhel8-CRB

RHEL 8.2

mobile-broadband-provider-info-devel

rhel8-CRB

RHEL 8.5

mod_auth_mellon-diagnostics

rhel8-AppStream

RHEL 8.1

modulemd-tools

rhel8-AppStream

RHEL 8.5c

mpdecimal

rhel8-AppStream

RHEL 8.8

mpdecimal++

rhel8-CRB

RHEL 8.8

mpdecimal-devel

rhel8-CRB

RHEL 8.8

mpdecimal-doc

rhel8-CRB

RHEL 8.8

mpich-doc

rhel8-AppStream

RHEL 8.4

mvapich2-devel

rhel8-AppStream

RHEL 8.4

mvapich2-doc

rhel8-AppStream

RHEL 8.4

mvapich2-psm2-devel

rhel8-AppStream

RHEL 8.4

mysql-selinux

rhel8-AppStream

RHEL 8.4

nbdfuse

rhel8-AppStream

RHEL 8.3

nbdkit-basic-filters

rhel8-AppStream

RHEL 8.3

nbdkit-curl-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-gzip-filter

rhel8-AppStream

RHEL 8.6

nbdkit-gzip-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-linuxdisk-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-nbd-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-python-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-server

rhel8-AppStream

RHEL 8.3

nbdkit-ssh-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-tar-filter

rhel8-AppStream

RHEL 8.6

nbdkit-tar-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-tmpdisk-plugin

rhel8-AppStream

RHEL 8.6

nbdkit-vddk-plugin

rhel8-AppStream

RHEL 8.3

nbdkit-xz-filter

rhel8-AppStream

RHEL 8.3

netavark

rhel8-AppStream

RHEL 8.6

net-snmp-perl

rhel8-AppStream

RHEL 8.3

NetworkManager-cloud-setup

rhel8-AppStream

RHEL 8.2

NetworkManager-initscripts-updown

rhel8-BaseOS

RHEL 8.6

nftables-devel

rhel8-CRB

RHEL 8.6

nispor

rhel8-AppStream

RHEL 8.4

nispor-devel

rhel8-AppStream

RHEL 8.4

nginx-mod-devel

rhel8-AppStream

RHEL 8.6

nmstate-devel

rhel8-CRB

RHEL 8.6

nmstate-libs

rhel8-AppStream

RHEL 8.6

nmstate-plugin-ovsdb

rhel8-AppStream

RHEL 8.3

nodejs-full-i18n

rhel8-AppStream

RHEL 8.3

nodejs-packaging-bundler

rhel8-AppStream

RHEL 8.7

nss_wrapper-libs

rhel8-AppStream

RHEL 8.8

numatop

rhel8-BaseOS

RHEL 8.2

ocaml-libnbd

rhel8-CRB

RHEL 8.3

ocaml-libnbd-devel

rhel8-CRB

RHEL 8.3

oci-seccomp-bpf-hook

rhel8-AppStream

RHEL 8.3

oci-seccomp-bpf-hook

rhel8-BaseOS

RHEL 8.3

opae

rhel8-BaseOS

RHEL 8.3

openldap-servers

rhel8-CRB

RHEL 8.6

open-vm-tools-salt-minion

rhel8-AppStream

RHEL 8.7

open-vm-tools-sdmp

rhel8-AppStream

RHEL 8.3

opencv

rhel8-CRB

RHEL 8.5

openslp-devel

rhel8-CRB

RHEL 8.7

opentest4j

rhel8-AppStream

RHEL 8.4

osbuild

rhel8-AppStream

RHEL 8.3

osbuild-composer

rhel8-AppStream

RHEL 8.3

osbuild-composer-core

rhel8-AppStream

RHEL 8.4

osbuild-composer-dnf-json

rhel8-AppStream

RHEL 8.6

osbuild-composer-worker

rhel8-AppStream

RHEL 8.3

osbuild-luks2

rhel8-AppStream

RHEL 8.6

osbuild-lvm2

rhel8-AppStream

RHEL 8.6

osbuild-ostree

rhel8-AppStream

RHEL 8.3

osbuild-selinux

rhel8-AppStream

RHEL 8.3

owasp-java-encoder-javadoc

rhel8-AppStream

RHEL 8.2

owasp-java-encoder

rhel8-AppStream

RHEL 8.2

pam_wrapper

rhel8-CRB

RHEL 8.7

pcm

rhel8-AppStream

RHEL 8.5

pcp-export-pcp2elasticsearch

rhel8-AppStream

RHEL 8.2

pcp-export-pcp2spark

rhel8-AppStream

RHEL 8.2

pcp-pmda-bpftrace

rhel8-AppStream

RHEL 8.2

pcp-pmda-denki

rhel8-AppStream

RHEL 8.6

pcp-pmda-hacluster

rhel8-AppStream

RHEL 8.4

pcp-pmda-mongodb

rhel8-AppStream

RHEL 8.6

pcp-pmda-mssql

rhel8-AppStream

RHEL 8.2

pcp-pmda-netcheck

rhel8-AppStream

RHEL 8.2

pcp-pmda-openmetrics

rhel8-AppStream

RHEL 8.2

pcp-pmda-openvswitch

rhel8-AppStream

RHEL 8.3

pcp-pmda-rabbitmq

rhel8-AppStream

RHEL 8.3

pcp-pmda-sockets

rhel8-AppStream

RHEL 8.4

pcp-pmda-statsd

rhel8-AppStream

RHEL 8.3

pcre2-tools

rhel8-CRB

RHEL 8.3

perl-AutoLoader

rhel8-AppStream

RHEL 8.6

perl-AutoSplit

rhel8-AppStream

RHEL 8.6

perl-autouse

rhel8-AppStream

RHEL 8.6

perl-B

rhel8-AppStream

RHEL 8.6

perl-base

rhel8-AppStream

RHEL 8.6

perl-Benchmark

rhel8-AppStream

RHEL 8.6

perl-blib

rhel8-AppStream

RHEL 8.6

perl-Class-Struct

rhel8-AppStream

RHEL 8.6

perl-Compress-Raw-Lzma

rhel8-AppStream

RHEL 8.6

perl-Config-Extensions

rhel8-AppStream

RHEL 8.6

perl-Convert-ASN1

rhel8-AppStream

RHEL 8.2

perl-DBM_Filter

rhel8-AppStream

RHEL 8.6

perl-debugger

rhel8-AppStream

RHEL 8.6

perl-deprecate

rhel8-AppStream

RHEL 8.6

perl-diagnostics

rhel8-AppStream

RHEL 8.6

perl-DirHandle

rhel8-AppStream

RHEL 8.6

perl-doc

rhel8-AppStream

RHEL 8.6

perl-Dumpvalue

rhel8-AppStream

RHEL 8.6

perl-DynaLoader

rhel8-AppStream

RHEL 8.6

perl-encoding-warnings

rhel8-AppStream

RHEL 8.6

perl- English

rhel8-AppStream

RHEL 8.6

perl-ExtUtils-Constant

rhel8-AppStream

RHEL 8.6

perl-Fcntl

rhel8-AppStream

RHEL 8.6

perl-fields

rhel8-AppStream

RHEL 8.6

perl-File-Basename

rhel8-AppStream

RHEL 8.6

perl-File-Compare

rhel8-AppStream

RHEL 8.6

perl-File-Copy

rhel8-AppStream

RHEL 8.6

perl-File-DosGlob

rhel8-AppStream

RHEL 8.6

perl-File-Find

rhel8-AppStream

RHEL 8.6

perl-File-stat

rhel8-AppStream

RHEL 8.6

perl-FileCache

rhel8-AppStream

RHEL 8.6

perl-FileHandle

rhel8-AppStream

RHEL 8.6

perl-filetest

rhel8-AppStream

RHEL 8.6

perl-FindBin

rhel8-AppStream

RHEL 8.6

perl-GDBM_File

rhel8-AppStream

RHEL 8.6

perl-Getopt-Std

rhel8-AppStream

RHEL 8.6

perl-Hash-Util

rhel8-AppStream

RHEL 8.6

perl-Hash-Util-FieldHash

rhel8-AppStream

RHEL 8.6

perl-I18N-Collate

rhel8-AppStream

RHEL 8.6

perl-I18N-Langinfo

rhel8-AppStream

RHEL 8.6

perl-I18N-LangTags

rhel8-AppStream

RHEL 8.6

perl-if

rhel8-AppStream

RHEL 8.6

perl-IO-Compress-Lzma

rhel8-AppStream

RHEL 8.6

perl-IPC-Open3

rhel8-AppStream

RHEL 8.6

perl-less

rhel8-AppStream

RHEL 8.6

perl-LDAP

rhel8-AppStream

RHEL 8.2

perl-lib

rhel8-AppStream

RHEL 8.6

perl-locale

rhel8-AppStream

RHEL 8.6

perl-Mail-AuthenticationResults

rhel8-AppStream

RHEL 8.8

perl-Mail-Sender

rhel8-AppStream

RHEL 8.3

perl-meta-notation

rhel8-AppStream

RHEL 8.6

perl-mro

rhel8-AppStream

RHEL 8.6

perl-NDBM_File

rhel8-AppStream

RHEL 8.6

perl-Net

rhel8-AppStream

RHEL 8.6

perl-NEXT

rhel8-AppStream

RHEL 8.6

perl-Object-HashBase

rhel8-AppStream

RHEL 8.3

perl-Object-HashBase-tools

rhel8-AppStream

RHEL 8.3

perl-ODBM_File

rhel8-AppStream

RHEL 8.6

perl-Opcode

rhel8-AppStream

RHEL 8.6

perl-overload

rhel8-AppStream

RHEL 8.6

perl-overloading

rhel8-AppStream

RHEL 8.6

perl-ph

rhel8-AppStream

RHEL 8.6

perl-Pod-Functions

rhel8-AppStream

RHEL 8.6

perl-POSIX

rhel8-AppStream

RHEL 8.6

perl-Safe

rhel8-AppStream

RHEL 8.6

perl-Search-Dict

rhel8-AppStream

RHEL 8.6

perl-SelectSaver

rhel8-AppStream

RHEL 8.6

perl-sigtrap

rhel8-AppStream

RHEL 8.6

perl-sort

rhel8-AppStream

RHEL 8.6

perl-subs

rhel8-AppStream

RHEL 8.6

perl-Symbol

rhel8-AppStream

RHEL 8.6

perl-Sys-Hostname

rhel8-AppStream

RHEL 8.6

perl-Term-Complete

rhel8-AppStream

RHEL 8.6

perl-Term-ReadLine

rhel8-AppStream

RHEL 8.6

perl-Term-Size-Any

rhel8-CRB

RHEL 8.6

perl-Term-Size-Perl

rhel8-CRB

RHEL 8.6

perl-Text-Abbrev

rhel8-AppStream

RHEL 8.6

perl-Thread

rhel8-AppStream

RHEL 8.6

perl-Thread-Semaphore

rhel8-AppStream

RHEL 8.6

perl-Tie

rhel8-AppStream

RHEL 8.6

perl-Tie-File

rhel8-AppStream

RHEL 8.6

perl-Tie-Memoize

rhel8-AppStream

RHEL 8.6

perl-Tie-RefHash

rhel8-AppStream

RHEL 8.6

perl-Time

rhel8-AppStream

RHEL 8.6

perl-Unicode-UCD

rhel8-AppStream

RHEL 8.6

perl-User-pwent

rhel8-AppStream

RHEL 8.6

perl-vars

rhel8-AppStream

RHEL 8.6

perl-vmsish

rhel8-AppStream

RHEL 8.6

pg_repack

rhel8-AppStream

RHEL 8.5

pgaudit

rhel8-AppStream

RHEL 8.2

php-ffi

rhel8-AppStream

RHEL 8.3

php-pecl-rrd

rhel8-AppStream

RHEL 8.2

php-pecl-xdebug

rhel8-AppStream

RHEL 8.2

php-pecl-xdebug3

rhel8-AppStream

RHEL 8.6

pipewire0.2

rhel8-AppStream

RHEL 8.3

pipewire0.2-devel

rhel8-AppStream

RHEL 8.3

pipewire0.2-libs

rhel8-AppStream

RHEL 8.3

pki-acme

rhel8-AppStream

RHEL 8.4

pmix-devel

rhel8-CRB

RHEL 8.3

podman-catatonit

rhel8-AppStream

RHEL 8.3

podman-gvproxy

rhel8-AppStream

RHEL 8.5

podman-plugins

rhel8-AppStream

RHEL 8.4

postfix-cdb

rhel8-AppStream

RHEL 8.2

postfix-pcre

rhel8-AppStream

RHEL 8.2

postfix-sqlite

rhel8-AppStream

RHEL 8.2

postgres-decoderbufs

rhel8-AppStream

RHEL 8.2

postgresql-private-devel

rhel8-AppStream

RHEL 8.8

postgresql-private-libs

rhel8-AppStream

RHEL 8.8

procps-ng-devel

rhel8-CRB

RHEL 8.8

prometheus-jmx-exporter

rhel8-AppStream

RHEL 8.2

prometheus-jmx-exporter-openjdk11

rhel8-AppStream

RHEL 8.6

prometheus-jmx-exporter-openjdk17

rhel8-AppStream

RHEL 8.8

prometheus-jmx-exporter-openjdk8

rhel8-AppStream

RHEL 8.8

protobuf-lite-devel

rhel8-CRB

RHEL 8.3

py3c-devel

rhel8-CRB

RHEL 8.4

py3c-doc

rhel8-CRB

RHEL 8.4

python-ldb-devel-common

rhel8-CRB

RHEL 8.7

python-sphinx-latex

rhel8-CRB

RHEL 8.7

python2-pip-wheel

rhel8-Modules

RHEL 8.1

python2-setuptools-wheel

rhel8-Modules

RHEL 8.1

python2-wheel-wheel

rhel8-Modules

RHEL 8.1

python3-babeltrace

rhel8-CRB

RHEL 8.7

python3-bind9.16

rhel8-CRB

RHEL 8.6

python3-brotli

rhel8-AppStream

RHEL 8.3

python3-cairo-devel

rhel8-CRB

RHEL 8.7

python3-cloud-what

rhel8-BaseOS

RHEL 8.5

python3-criu

rhel8-AppStream

RHEL 8.2

python3-dasbus

rhel8-AppStream

RHEL 8.3

python3-distro

rhel8-Modules

RHEL 8.1

python3-dnf-plugin-modulesync

rhel8-AppStream

RHEL 8.6

python3-dnf-plugin-post-transaction-actions

rhel8-BaseOS

RHEL 8.2

python3-freeradius

rhel8-AppStream

RHEL 8.3

python3-idm-pki

rhel8-AppStream

RHEL 8.7

python3-ipatests

rhel8-AppStream

RHEL 8.4

python3-lasso

rhel8-AppStream

RHEL 8.7

python3-ldb-devel

rhel8-CRB

RHEL 8.7

python3-leapp

rhel8-AppStream

RHEL 8.7

python3-libmodulemd

rhel8-AppStream

RHEL 8.3

python3-libmount

rhel8-AppStream

RHEL 8.3

python3-libnbd

rhel8-AppStream

RHEL 8.3

python3-networkx-core

rhel8-AppStream

RHEL 8.2

python3-networkx

rhel8-AppStream

RHEL 8.2

python3-nftables

rhel8-BaseOS

RHEL 8.2

python3-nispor

rhel8-AppStream

RHEL 8.4

python3-osbuild

rhel8-AppStream

RHEL 8.3

python3-pacemaker

rhel8-HighAvailability

RHEL 8.9

python3-pillow-devel

rhel8-CRB

RHEL 8.5

python3-pillow-doc

rhel8-CRB

RHEL 8.5

python3-pillow-tk

rhel8-CRB

RHEL 8.5

python3-pip-wheel

rhel8-BaseOS

RHEL 8.1

python3-podman

rhel8-AppStream

RHEL 8.5

python3-protobuf

rhel8-AppStream

RHEL 8.2

python3-pyghmi

rhel8-AppStream

RHEL 8.5

python3-pyodbc

rhel8-AppStream

RHEL 8.4

python3-pyverbs

rhel8-BaseOS

RHEL 8.4

python3-samba-dc

rhel8-BaseOS

RHEL 8.8

python3-samba-devel

rhel8-CRB

RHEL 8.8

python3-scour

rhel8-AppStream

RHEL 8.8

python3-setuptools-wheel

rhel8-BaseOS

RHEL 8.1

python3-solv

rhel8-BaseOS

RHEL 8.3

python3-subversion

rhel8-AppStream

RHEL 8.4

python3-talloc-devel

rhel8-CRB

RHEL 8.7

python3-tomli

rhel8-AppStream

RHEL 8.9

python3-tracer

rhel8-AppStream

RHEL 8.4

python3-wheel-wheel

rhel8-AppStream

RHEL 8.1

python3-wx-siplib

rhel8-AppStream

RHEL 8.3

python3.11

rhel8-AppStream

RHEL 8.8

python3.11-attrs

rhel8-CRB

RHEL 8.8

python3.11-cffi

rhel8-AppStream

RHEL 8.8

python3.11-charset-normalizer

rhel8-AppStream

RHEL 8.8

python3.11-cryptography

rhel8-AppStream

RHEL 8.8

python3.11-Cython

rhel8-CRB

RHEL 8.8

python3.11-debug

rhel8-CRB

RHEL 8.8

python3.11-devel

rhel8-AppStream

RHEL 8.8

python3.11-idle

rhel8-CRB

RHEL 8.8

python3.11-idna

rhel8-AppStream

RHEL 8.8

python3.11-iniconfig

rhel8-CRB

RHEL 8.8

python3.11-libs

rhel8-AppStream

RHEL 8.8

python3.11-lxml

rhel8-AppStream

RHEL 8.8

python3.11-mod_wsgi

rhel8-AppStream

RHEL 8.8

python3.11-numpy

rhel8-AppStream

RHEL 8.8

python3.11-numpy-f2py

rhel8-AppStream

RHEL 8.8

python3.11-packaging

rhel8-CRB

RHEL 8.8

python3.11-pip

rhel8-AppStream

RHEL 8.8

python3.11-pip-wheel

rhel8-AppStream

RHEL 8.8

python3.11-pluggy

rhel8-CRB

RHEL 8.8

python3.11-ply

rhel8-AppStream

RHEL 8.8

python3.11-psycopg2

rhel8-AppStream

RHEL 8.8

python3.11-psycopg2-debug

rhel8-CRB

RHEL 8.8

python3.11-psycopg2-tests

rhel8-CRB

RHEL 8.8

python3.11-pybind11

rhel8-CRB

RHEL 8.8

python3.11-pybind11-devel

rhel8-CRB

RHEL 8.8

python3.11-pycparser

rhel8-AppStream

RHEL 8.8

python3.11-PyMySQL

rhel8-AppStream

RHEL 8.8

python3.11-pyparsing

rhel8-CRB

RHEL 8.8

python3.11-pysocks

rhel8-AppStream

RHEL 8.8

python3.11-pytest

rhel8-CRB

RHEL 8.8

python3.11-pyyaml

rhel8-AppStream

RHEL 8.8

python3.11-requests

rhel8-AppStream

RHEL 8.8

python3.11-rpm-macros

rhel8-AppStream

RHEL 8.8

python3.11-scipy

rhel8-AppStream

RHEL 8.8

python3.11-semantic_version

rhel8-CRB

RHEL 8.8

python3.11-setuptools

rhel8-AppStream

RHEL 8.8

python3.11-setuptools-rust

rhel8-CRB

RHEL 8.8

python3.11-setuptools-wheel

rhel8-AppStream

RHEL 8.8

python3.11-six

rhel8-AppStream

RHEL 8.8

python3.11-test

rhel8-CRB

RHEL 8.8

python3.11-tkinter

rhel8-AppStream

RHEL 8.8

python3.11-urllib3

rhel8-AppStream

RHEL 8.8

python3.11-wheel

rhel8-AppStream

RHEL 8.8

python3.11-wheel-wheel

rhel8-CRB

RHEL 8.8

python38-asn1crypto

rhel8-AppStream

RHEL 8.2

python38-atomicwrites

rhel8-CRB

RHEL 8.2

python38-attrs

rhel8-CRB

RHEL 8.2

python38-babel

rhel8-AppStream

RHEL 8.2

python38-cffi

rhel8-AppStream

RHEL 8.2

python38-chardet

rhel8-AppStream

RHEL 8.2

python38-cryptography

rhel8-AppStream

RHEL 8.2

python38-Cython

rhel8-AppStream

RHEL 8.2

python38-debug

rhel8-AppStream

RHEL 8.2

python38-devel

rhel8-AppStream

RHEL 8.2

python38-idle

rhel8-AppStream

RHEL 8.2

python38-idna

rhel8-AppStream

RHEL 8.2

python38-jinja2

rhel8-AppStream

RHEL 8.2

python38-libs

rhel8-AppStream

RHEL 8.2

python38-lxml

rhel8-AppStream

RHEL 8.2

python38-markupsafe

rhel8-AppStream

RHEL 8.2

python38-mod_wsgi

rhel8-AppStream

RHEL 8.2

python38-more-itertools

rhel8-CRB

RHEL 8.2

python38-numpy-doc

rhel8-AppStream

RHEL 8.2

python38-numpy-f2py

rhel8-AppStream

RHEL 8.2

python38-numpy

rhel8-AppStream

RHEL 8.2

python38-packaging

rhel8-CRB

RHEL 8.2

python38-pip-wheel

rhel8-AppStream

RHEL 8.2

python38-pip

rhel8-AppStream

RHEL 8.2

python38-pluggy

rhel8-CRB

RHEL 8.2

python38-ply

rhel8-AppStream

RHEL 8.2

python38-psutil

rhel8-AppStream

RHEL 8.2

python38-psycopg2-doc

rhel8-AppStream

RHEL 8.2

python38-psycopg2-tests

rhel8-AppStream

RHEL 8.2

python38-psycopg2

rhel8-AppStream

RHEL 8.2

python38-py

rhel8-CRB

RHEL 8.2

python38-pycparser

rhel8-AppStream

RHEL 8.2

python38-PyMySQL

rhel8-AppStream

RHEL 8.2

python38-pyparsing

rhel8-CRB

RHEL 8.2

python38-pysocks

rhel8-AppStream

RHEL 8.2

python38-pytest

rhel8-CRB

RHEL 8.2

python38-pytz

rhel8-AppStream

RHEL 8.2

python38-pyyaml

rhel8-AppStream

RHEL 8.2

python38-requests

rhel8-AppStream

RHEL 8.2

python38-resolvelib

rhel8-AppStream

RHEL 8.6

python38-rpm-macros

rhel8-AppStream

RHEL 8.2

python38-scipy

rhel8-AppStream

RHEL 8.2

python38-setuptools-wheel

rhel8-AppStream

RHEL 8.2

python38-setuptools

rhel8-AppStream

RHEL 8.2

python38-six

rhel8-AppStream

RHEL 8.2

python38-test

rhel8-AppStream

RHEL 8.2

python38-tkinter

rhel8-AppStream

RHEL 8.2

python38-urllib3

rhel8-AppStream

RHEL 8.2

python38-wcwidth

rhel8-CRB

RHEL 8.2

python38-wheel-wheel

rhel8-AppStream

RHEL 8.2

python38-wheel

rhel8-AppStream

RHEL 8.2

python38

rhel8-AppStream

RHEL 8.2

python39

rhel8-AppStream

RHEL 8.4

python39-attrs

rhel8-CRB

RHEL 8.4

python39-cffi

rhel8-AppStream

RHEL 8.4

python39-chardet

rhel8-AppStream

RHEL 8.4

python39-cryptography

rhel8-AppStream

RHEL 8.4

python39-Cython

rhel8-CRB

RHEL 8.4

python39-debug

rhel8-CRB

RHEL 8.4

python39-devel

rhel8-AppStream

RHEL 8.4

python39-idle

rhel8-AppStream

RHEL 8.4

python39-idna

rhel8-AppStream

RHEL 8.4

python39-iniconfig

rhel8-CRB

RHEL 8.4

python39-libs

rhel8-AppStream

RHEL 8.4

python39-lxml

rhel8-AppStream

RHEL 8.4

python39-mod_wsgi

rhel8-AppStream

RHEL 8.4

python39-more-itertools

rhel8-CRB

RHEL 8.4

python39-numpy

rhel8-AppStream

RHEL 8.4

python39-numpy-doc

rhel8-AppStream

RHEL 8.4

python39-numpy-f2py

rhel8-AppStream

RHEL 8.4

python39-packaging

rhel8-CRB

RHEL 8.4

python39-pip

rhel8-AppStream

RHEL 8.4

python39-pip-wheel

rhel8-AppStream

RHEL 8.4

python39-pluggy

rhel8-CRB

RHEL 8.4

python39-ply

rhel8-AppStream

RHEL 8.4

python39-psutil

rhel8-AppStream

RHEL 8.4

python39-psycopg2

rhel8-AppStream

RHEL 8.4

python39-psycopg2-doc

rhel8-AppStream

RHEL 8.4

python39-psycopg2-tests

rhel8-AppStream

RHEL 8.4

python39-py

rhel8-CRB

RHEL 8.4

python39-pybind11

rhel8-CRB

RHEL 8.4

python39-pybind11-devel

rhel8-CRB

RHEL 8.4

python39-pycparser

rhel8-AppStream

RHEL 8.4

python39-PyMySQL

rhel8-AppStream

RHEL 8.4

python39-pyparsing

rhel8-CRB

RHEL 8.4

python39-pysocks

rhel8-AppStream

RHEL 8.4

python39-pytest

rhel8-CRB

RHEL 8.4

python39-pyyaml

rhel8-AppStream

RHEL 8.4

python39-requests

rhel8-AppStream

RHEL 8.4

python39-rpm-macros

rhel8-AppStream

RHEL 8.4

python39-scipy

rhel8-AppStream

RHEL 8.4

python39-setuptools

rhel8-AppStream

RHEL 8.4

python39-setuptools-wheel

rhel8-AppStream

RHEL 8.4

python39-six

rhel8-AppStream

RHEL 8.4

python39-test

rhel8-AppStream

RHEL 8.4

python39-tkinter

rhel8-AppStream

RHEL 8.4

python39-toml

rhel8-AppStream

RHEL 8.4

python39-urllib3

rhel8-AppStream

RHEL 8.4

python39-wcwidth

rhel8-CRB

RHEL 8.4

python39-wheel

rhel8-AppStream

RHEL 8.4

python39-wheel-wheel

rhel8-AppStream

RHEL 8.4

qatengine

rhel8-AppStream

RHEL 8.4

qatlib

rhel8-AppStream

RHEL 8.4

qatlib-devel

rhel8-CRB

RHEL 8.4

qatlib-service

rhel8-AppStream

RHEL 8.7

qatlib-tests

rhel8-CRB

RHEL 8.6

qatzip

rhel8-AppStream

RHEL 8.6

qatzip-devel

rhel8-CRB

RHEL 8.6

qatzip-libs

rhel8-AppStream

RHEL 8.6

qemu-kvm-docs

rhel8-AppStream

RHEL 8.6

qemu-kvm-hw-usbredir

rhel8-AppStream

RHEL 8.6

qemu-kvm-ui-opengl

rhel8-AppStream

RHEL 8.6

qemu-kvm-ui-spice

rhel8-AppStream

RHEL 8.6

qgpgme-devel

rhel8-CRB

RHEL 8.4

qt5-qt3d-doc

rhel8-AppStream

RHEL 8.7

qt5-qtbase-doc

rhel8-AppStream

RHEL 8.7

qt5-qtbase-private-devel

rhel8-AppStream

RHEL 8.2

qt5-qtconnectivity-doc

rhel8-AppStream

RHEL 8.7

qt5-qtdeclarative-doc

rhel8-AppStream

RHEL 8.7

qt5-qtgraphicaleffects-doc

rhel8-AppStream

RHEL 8.7

qt5-qtimageformats-doc

rhel8-AppStream

RHEL 8.7

qt5-qtlocation-doc

rhel8-AppStream

RHEL 8.7

qt5-qtmultimedia-doc

rhel8-AppStream

RHEL 8.7

qt5-qtquickcontrols-doc

rhel8-AppStream

RHEL 8.7

qt5-qtquickcontrols2-doc

rhel8-AppStream

RHEL 8.7

qt5-qtscript-doc

rhel8-AppStream

RHEL 8.7

qt5-qtsensors-doc

rhel8-AppStream

RHEL 8.7

qt5-qtserialbus-devel

rhel8-CRB

RHEL 8.5

qt5-qtserialbus-doc

rhel8-AppStream

RHEL 8.7

qt5-qtserialport-doc

rhel8-AppStream

RHEL 8.7

qt5-qtsvg-doc

rhel8-AppStream

RHEL 8.7

qt5-qttools-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwayland-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwebchannel-doc

rhel8-AppStream

RHEL 8.7

qt5-qtwebsockets-doc

rhel8-AppStream

RHEL 8.7

qt5-qtx11extras-doc

rhel8-AppStream

RHEL 8.7

qt5-qtxmlpatterns-doc

rhel8-AppStream

RHEL 8.7

quota-devel

rhel8-CRB

RHEL 8.4

redhat-cloud-client-configuration

rhel8-AppStream

RHEL 8.7

resource-agents-paf

rhel8-HighAvailability

RHEL 8.5

rhc

rhel8-AppStream

RHEL 8.4

rhc-worker-playbook

rhel8-AppStream

RHEL 8.4

rhsm-icons

rhel8-BaseOS

RHEL 8.2

rig

rhel8-AppStream

RHEL 8.6

rpm-plugin-fapolicyd

rhel8-AppStream

RHEL 8.4

rshim

rhel8-AppStream

RHEL 8.4

rsyslog-mmfields

rhel8-AppStream

RHEL 8.6

rsyslog-omamqp1

rhel8-AppStream

RHEL 8.3

rsyslog-openssl

rhel8-AppStream

RHEL 8.5

rsyslog-udpspoof

rhel8-AppStream

RHEL 8.4

rtla

rhel8-AppStream

RHEL 8.8

ruby-bundled-gems

rhel8-AppStream

RHEL 8.7

ruby-default-gems

rhel8-AppStream

RHEL 8.3

rubygem-rbs

rhel8-AppStream

RHEL 8.5

rubygem-rexml

rhel8-AppStream

RHEL 8.5

rubygem-rss

rhel8-AppStream

RHEL 8.5

rubygem-typeprof

rhel8-AppStream

RHEL 8.5

rust-analyzer

rhel8-AppStream

RHEL 8.8

rust-std-static-wasm32-unknown-unknown

rhel8-AppStream

RHEL 8.5

rust-std-static-wasm32-wasi

rhel8-AppStream

RHEL 8.6

samba-devel

rhel8-CRB

RHEL 8.4

samba-dc-libs

rhel8-BaseOS

RHEL 8.8

samba-dcerpc

rhel8-BaseOS

RHEL 8.8

samba-ldb-ldap-modules

rhel8-BaseOS

RHEL 8.8

samba-tools

rhel8-BaseOS

RHEL 8.8

samba-usershares

rhel8-BaseOS

RHEL 8.8

samba-vfs-iouring

rhel8-AppStream

RHEL 8.5

samba-winexe

rhel8-BaseOS

RHEL 8.4

sat4j

rhel8-AppStream

RHEL 8.4

sblim-cmpi-base

rhel8-AppStream

RHEL 8.1

sblim-gather

rhel8-AppStream

RHEL 8.5

sblim-gather-provider

rhel8-CRB

RHEL 8.5

sblim-indication_helper

rhel8-AppStream

RHEL 8.1

sblim-wbemcli

rhel8-AppStream

RHEL 8.1

setools-console-analyses

rhel8-AppStream

RHEL 8.2

setools-gui

rhel8-AppStream

RHEL 8.2

sevctl

rhel8-AppStream

RHEL 8.5

shadow-utils-subid

rhel8-BaseOS

RHEL 8.6

shadow-utils-subid-devel

rhel8-CRB

RHEL 8.6

sisu

rhel8-AppStream

RHEL 8.2

snactor

rhel8-AppStream

RHEL 8.7

spice-client-win-x64

rhel8-AppStream

RHEL 8.2

spice-client-win-x86

rhel8-AppStream

RHEL 8.2

spice-qxl-wddm-dod

rhel8-AppStream

RHEL 8.2

spice-qxl-xddm

rhel8-AppStream

RHEL 8.2

spice-streaming-agent

rhel8-AppStream

RHEL 8.2

spice-vdagent-win-x64

rhel8-AppStream

RHEL 8.2

spice-vdagent-win-x86

rhel8-AppStream

RHEL 8.2

sshpass

rhel8-AppStream

RHEL 8.6

sssd-idp

rhel8-AppStream

RHEL 8.7

sssd-polkit-rules

rhel8-BaseOS

RHEL 8.1

stalld

rhel8-AppStream

RHEL 8.4

stratisd-dracut

rhel8-AppStream

RHEL 8.5

stress-ng

rhel8-NFV

RHEL 8.3

subversion-ruby

rhel8-CRB

RHEL 8.7

swig (swig:4.0)

rhel8-AppStream

RHEL 8.4

swig-doc (swig:4.0)

rhel8-BaseOS

RHEL 8.4

swig-gdb (swig:4.0)

rhel8-AppStream

RHEL 8.4

swtpm

rhel8-AppStream

RHEL 8.6

swtpm-devel

rhel8-AppStream

RHEL 8.6

swtpm-libs

rhel8-AppStream

RHEL 8.6

swtpm-tools

rhel8-AppStream

RHEL 8.6

swtpm-tools-pkcs11

rhel8-AppStream

RHEL 8.6

synce4l

rhel8-AppStream

RHEL 8.8

tesseract

rhel8-AppStream

RHEL 8.5

tesseract-devel

rhel8-CRB

RHEL 8.5

texlive-context

rhel8-AppStream

RHEL 8.3

texlive-pst-arrow

rhel8-AppStream

RHEL 8.3

texlive-pst-tools

rhel8-AppStream

RHEL 8.3

texlive-translator

rhel8-AppStream

RHEL 8.8

thermald

rhel8-AppStream

RHEL 8.3

tigervnc-selinux

rhel8-AppStream

RHEL 8.3

tomcat

rhel8-AppStream

RHEL 8.8

tomcat-admin-webapps

rhel8-AppStream

RHEL 8.8

tomcat-docs-webapp

rhel8-AppStream

RHEL 8.8

tomcat-el-3.0-api

rhel8-AppStream

RHEL 8.8

tomcat-jsp-2.3-api

rhel8-AppStream

RHEL 8.8

tomcat-lib

rhel8-AppStream

RHEL 8.8

tomcat-servlet-4.0-api

rhel8-AppStream

RHEL 8.8

tomcat-webapps

rhel8-AppStream

RHEL 8.8

toolbox-tests

rhel8-AppStream

RHEL 8.5

tpm2-pkcs11

rhel8-AppStream

RHEL 8.8

tpm2-pkcs11-tools

rhel8-AppStream

RHEL 8.8

tracer-common

rhel8-AppStream

RHEL 8.4

tracker-devel

rhel8-CRB

RHEL 8.3

tss2

rhel8-BaseOS

RHEL 8.5

tss2-devel

rhel8-CRB

RHEL 8.5

tuned-profiles-postgresql

rhel8-AppStream

RHEL 8.7

twolame-devel

rhel8-CRB

RHEL 8.4

ucx-cma

rhel8-AppStream

RHEL 8.4

ucx-devel

rhel8-AppStream

RHEL 8.4

ucx-ib

rhel8-AppStream

RHEL 8.4

ucx-rdmacm

rhel8-AppStream

RHEL 8.4

udftools

rhel8-AppStream

RHEL 8.5

udica

rhel8-AppStream

RHEL 8.1

udisks2-lsm

rhel8-AppStream

RHEL 8.3

unicode-ucd-unihan

rhel8-CRB

RHEL 8.5

unifdef

rhel8-CRB

RHEL 8.9

univocity-parsers

rhel8-AppStream

RHEL 8.4

usbguard-notifier

rhel8-AppStream

RHEL 8.3

usbguard-selinux

rhel8-AppStream

RHEL 8.3

utf8proc-devel

rhel8-CRB

RHEL 8.7

vdo-support

rhel8-BaseOS

RHEL 8.3

virt-v2v-bash-completion

rhel8-AppStream

RHEL 8.6

virt-v2v-man-pages-ja

rhel8-AppStream

RHEL 8.6

virt-v2v-man-pages-uk

rhel8-AppStream

RHEL 8.6

WALinuxAgent-udev

rhel8-AppStream

RHEL 8.4

webrtc-audio-processing-devel

rhel8-CRB

RHEL 8.6

weldr-client

rhel8-AppStream

RHEL 8.6

whois-nls

rhel8-AppStream

RHEL 8.2

whois

rhel8-AppStream

RHEL 8.2

woff2-devel

rhel8-CRB

RHEL 8.4

wpebackend-fdo

rhel8-AppStream

RHEL 8.8

wpebackend-fdo-devel

rhel8-CRB

RHEL 8.8

xapian-core

rhel8-AppStream

RHEL 8.5

xapian-core-devel

rhel8-CRB

RHEL 8.5

xapian-core-libs

rhel8-AppStream

RHEL 8.5

xdp-tools

rhel8-AppStream

RHEL 8.3

xmlgraphics-commons

rhel8-AppStream

RHEL 8.4

xmlstarlet

rhel8-AppStream

RHEL 8.7

xorg-x11-server-source

rhel8-CRB

RHEL 8.3

xxhash

rhel8-AppStream

RHEL 8.7

xxhash-devel

rhel8-CRB

RHEL 8.7

xxhash-doc

rhel8-CRB

RHEL 8.7

xxhash-libs

rhel8-AppStream

RHEL 8.7

yara

rhel8-AppStream

RHEL 8.7

yara-devel

rhel8-CRB

RHEL 8.7

zstd

rhel8-AppStream

RHEL 8.2

有关当前 RHEL 8 次要发行本中可用软件包的完整列表,请查看 软件包清单

A.1.2. RHEL 8.0 中的新软件包

以下软件包在 RHEL 8.0 中是新的:

# | 389-ds-base-legacy-tools

A | aajohan-comfortaa-fonts, abrt-addon-coredump-helper, abrt-cli-ng, abrt-plugin-machine-id, abrt-plugin-sosreport, adcli-doc, alsa-ucm, alsa-utils-alsabat, anaconda-install-env-deps, annobin, ant-lib, ant-xz, apcu-panel, apr-util-bdb, aspell-en, assertj-core, assertj-core-javadoc, atlas-corei2, atlas-corei2-devel, audispd-plugins-zos, authselect, authselect-compat, authselect-libs

B | bacula-logwatch, beignet, blivet-data, bluez-obexd, bnd-maven-plugin, boom-boot, boom-boot-conf, boom-boot-grub2, boost-container, boost-coroutine, boost-fiber, boost-log, boost-mpich-python3, boost-numpy3, boost-openmpi-python3, boost-python3, boost-python3-devel, boost-stacktrace, boost-type_erasure, brltty-dracut, brltty-espeak-ng, brotli, brotli-devel, bubblewrap, buildah

C | c2esp, cargo, cargo-doc, cargo-vendor, cjose, cjose-devel, clang, clang-analyzer, clang-devel, clang-libs, clang-tools-extra, cldr-emoji-annotation, clippy, cmake-data, cmake-doc, cmake-filesystem, cmake-rpm-macros, cockpit-composer, cockpit-dashboard, cockpit-machines, cockpit-packagekit, cockpit-pcp, cockpit-session-recording, cockpit-storaged, compat-guile18, compat-guile18-devel, compat-libgfortran-48, compat-libpthread-nonshared, compat-openssl10, compiler-rt, composer-cli, container-exception-logger, container-selinux, containernetworking-plugins, containers-common, coreutils-common, coreutils-single, cppcheck, createrepo_c, createrepo_c-devel, createrepo_c-libs, crypto-policies, CUnit, CUnit-devel, cyrus-imapd-vzic

D | dbus-c, dbus-c-devel, dbus-c++-glib, dbus-common, dbus-daemon, dbus-tools, dhcp-client, dhcp-relay, dhcp-server, dleyna-renderer, dnf, dnf-automatic, dnf-data, dnf-plugin-spacewalk, dnf-plugin-subscription-manager, dnf-plugins-core, dnf-utils, dnssec-trigger-panel, docbook2X, dotnet, dotnet-host, dotnet-host-fxr-2.1, dotnet-runtime-2.1, dotnet-sdk-2.1, dotnet-sdk-2.1.5xx, dpdk, dpdk-devel, dpdk-doc, dpdk-tools, dracut-live, dracut-squash, driverctl, drpm, drpm-devel, dtc

E | edk2-aarch64, edk2-ovmf, efi-filesystem, efi-srpm-macros, egl-wayland, eglexternalplatform-devel, eigen3-devel, emacs-lucid, enca, enca-devel, enchant2, enchant2-devel, espeak-ng, evemu, evemu-libs, execstack

F | fence-agents-lpar, fence-agents-zvm, fftw-libs-quad, freeradius-rest, fuse-common, fuse-overlayfs, fuse-sshfs, fuse3, fuse3-devel, fuse3-libs

G | galera, gcc-gdb-plugin, gcc-offload-nvptx, gdb-headless, gdbm-libs, gdk-pixbuf2-modules, gdk-pixbuf2-xlib, gdk-pixbuf2-xlib-devel, gegl04, gegl04-devel, genwqe-tools, genwqe-vpd, genwqe-zlib, genwqe-zlib-devel, geronimo-jpa, geronimo-jpa-javadoc, gfbgraph, gflags, gflags-devel, ghc-srpm-macros, ghostscript-tools-dvipdf, ghostscript-tools-fonts, ghostscript-tools-printing, ghostscript-x11, git-clang-format, git-core, git-core-doc, git-subtree, glassfish-annotation-api, glassfish-annotation-api-javadoc, glassfish-jax-rs-api, glassfish-jax-rs-api-javadoc, glassfish-jaxb-bom, glassfish-jaxb-bom-ext, glassfish-jaxb-codemodel, glassfish-jaxb-codemodel-annotation-compiler, glassfish-jaxb-codemodel-parent, glassfish-jaxb-core, glassfish-jaxb-external-parent, glassfish-jaxb-parent, glassfish-jaxb-rngom, glassfish-jaxb-runtime, glassfish-jaxb-runtime-parent, glassfish-jaxb-txw-parent, glassfish-jaxb-txw2, glassfish-legal, glassfish-master-pom, glassfish-servlet-api, glassfish-servlet-api-javadoc, glibc-all-langpacks, glibc-langpack-aa, glibc-langpack-af, glibc-langpack-agr, glibc-langpack-ak, glibc-langpack-am, glibc-langpack-an, glibc-langpack-anp, glibc-langpack-ar, glibc-langpack-as, glibc-langpack-ast, glibc-langpack-ayc, glibc-langpack-az, glibc-langpack-be, glibc-langpack-bem, glibc-langpack-ber, glibc-langpack-bg, glibc-langpack-bhb, glibc-langpack-bho, glibc-langpack-bi, glibc-langpack-bn, glibc-langpack-bo, glibc-langpack-br, glibc-langpack-brx, glibc-langpack-bs, glibc-langpack-byn, glibc-langpack-ca, glibc-langpack-ce, glibc-langpack-chr, glibc-langpack-cmn, glibc-langpack-crh, glibc-langpack-cs, glibc-langpack-csb, glibc-langpack-cv, glibc-langpack-cy, glibc-langpack-da, glibc-langpack-de, glibc-langpack-doi, glibc-langpack-dsb, glibc-langpack-dv, glibc-langpack-dz, glibc-langpack-el, glibc-langpack-en, glibc-langpack-eo, glibc-langpack-es, glibc-langpack-et, glibc-langpack-eu, glibc-langpack-fa, glibc-langpack-ff, glibc-langpack-fi, glibc-langpack-fil, glibc-langpack-fo, glibc-langpack-fr, glibc-langpack-fur, glibc-langpack-fy, glibc-langpack-ga, glibc-langpack-gd, glibc-langpack-gez, glibc-langpack-gl, glibc-langpack-gu, glibc-langpack-gv, glibc-langpack-ha, glibc-langpack-hak, glibc-langpack-he, glibc-langpack-hi, glibc-langpack-hif, glibc-langpack-hne, glibc-langpack-hr, glibc-langpack-hsb, glibc-langpack-ht, glibc-langpack-hu, glibc-langpack-hy, glibc-langpack-ia, glibc-langpack-id, glibc-langpack-ig, glibc-langpack-ik, glibc-langpack-is, glibc-langpack-it, glibc-langpack-iu, glibc-langpack-ja, glibc-langpack-ka, glibc-langpack-kab, glibc-langpack-kk, glibc-langpack-kl, glibc-langpack-km, glibc-langpack-kn, glibc-langpack-ko, glibc-langpack-kok, glibc-langpack-ks, glibc-langpack-ku, glibc-langpack-kw, glibc-langpack-ky, glibc-langpack-lb, glibc-langpack-lg, glibc-langpack-li, glibc-langpack-lij, glibc-langpack-ln, glibc-langpack-lo, glibc-langpack-lt, glibc-langpack-lv, glibc-langpack-lzh, glibc-langpack-mag, glibc-langpack-mai, glibc-langpack-mfe, glibc-langpack-mg, glibc-langpack-mhr, glibc-langpack-mi, glibc-langpack-miq, glibc-langpack-mjw, glibc-langpack-mk, glibc-langpack-ml, glibc-langpack-mn, glibc-langpack-mni, glibc-langpack-mr, glibc-langpack-ms, glibc-langpack-mt, glibc-langpack-my, glibc-langpack-nan, glibc-langpack-nb, glibc-langpack-nds, glibc-langpack-ne, glibc-langpack-nhn, glibc-langpack-niu, glibc-langpack-nl, glibc-langpack-nn, glibc-langpack-nr, glibc-langpack-nso, glibc-langpack-oc, glibc-langpack-om, glibc-langpack-or, glibc-langpack-os, glibc-langpack-pa, glibc-langpack-pap, glibc-langpack-pl, glibc-langpack-ps, glibc-langpack-pt, glibc-langpack-quz, glibc-langpack-raj, glibc-langpack-ro, glibc-langpack-ru, glibc-langpack-rw, glibc-langpack-sa, glibc-langpack-sah, glibc-langpack-sat, glibc-langpack-sc, glibc-langpack-sd, glibc-langpack-se, glibc-langpack-sgs, glibc-langpack-shn, glibc-langpack-shs, glibc-langpack-si, glibc-langpack-sid, glibc-langpack-sk, glibc-langpack-sl, glibc-langpack-sm, glibc-langpack-so, glibc-langpack-sq, glibc-langpack-sr, glibc-langpack-ss, glibc-langpack-st, glibc-langpack-sv, glibc-langpack-sw, glibc-langpack-szl, glibc-langpack-ta, glibc-langpack-tcy, glibc-langpack-te, glibc-langpack-tg, glibc-langpack-th, glibc-langpack-the, glibc-langpack-ti, glibc-langpack-tig, glibc-langpack-tk, glibc-langpack-tl, glibc-langpack-tn, glibc-langpack-to, glibc-langpack-tpi, glibc-langpack-tr, glibc-langpack-ts, glibc-langpack-tt, glibc-langpack-ug, glibc-langpack-uk, glibc-langpack-unm, glibc-langpack-ur, glibc-langpack-uz, glibc-langpack-ve, glibc-langpack-vi, glibc-langpack-wa, glibc-langpack-wae, glibc-langpack-wal, glibc-langpack-wo, glibc-langpack-xh, glibc-langpack-yi, glibc-langpack-yo, glibc-langpack-yue, glibc-langpack-yuw, glibc-langpack-zh, glibc-langpack-zu, glibc-locale-source, glibc-minimal-langpack, glog, glog-devel, gmock, gmock-devel, gmp-c++, gnome-autoar, gnome-backgrounds-extras, gnome-characters, gnome-control-center, gnome-control-center-filesystem, gnome-logs, gnome-photos, gnome-photos-tests, gnome-remote-desktop, gnome-shell-extension-desktop-icons, gnome-tweaks, go-compilers-golang-compiler, go-srpm-macros, go-toolset, golang, golang-bin, golang-docs, golang-misc, golang-race, golang-src, golang-tests, google-droid-kufi-fonts, google-droid-sans-fonts, google-droid-sans-mono-fonts, google-droid-serif-fonts, google-noto-cjk-fonts-common, google-noto-mono-fonts, google-noto-nastaliq-urdu-fonts, google-noto-sans-cjk-jp-fonts, google-noto-sans-cjk-ttc-fonts, google-noto-sans-oriya-fonts, google-noto-sans-oriya-ui-fonts, google-noto-sans-tibetan-fonts, google-noto-serif-bengali-fonts, google-noto-serif-cjk-ttc-fonts, google-noto-serif-devanagari-fonts, google-noto-serif-gujarati-fonts, google-noto-serif-kannada-fonts, google-noto-serif-malayalam-fonts, google-noto-serif-tamil-fonts, google-noto-serif-telugu-fonts, google-roboto-slab-fonts, gpgmepp, gpgmepp-devel, grub2-tools-efi, gssntlmssp, gstreamer1-plugins-good-gtk, gtest, gtest-devel, guava20, guava20-javadoc, guava20-testlib, guice-assistedinject, guice-bom, guice-extensions, guice-grapher, guice-jmx, guice-jndi, guice-multibindings, guice-servlet, guice-testlib, guice-throwingproviders, gutenprint-libs, gutenprint-libs-ui

H | hamcrest-core, hawtjni-runtime, hexchat, hexchat-devel, httpcomponents-client-cache, httpd-filesystem, hunspell-es-AR, hunspell-es-BO, hunspell-es-CL, hunspell-es-CO, hunspell-es-CR, hunspell-es-CU, hunspell-es-DO, hunspell-es-EC, hunspell-es-ES, hunspell-es-GT, hunspell-es-HN, hunspell-es-MX, hunspell-es-NI, hunspell-es-PA, hunspell-es-PE, hunspell-es-PR, hunspell-es-PY, hunspell-es-SV, hunspell-es-US, hunspell-es-UY, hunspell-es-VE

I | i2c-tools-perl, ibus-libzhuyin, ibus-wayland, iio-sensor-proxy, infiniband-diags-compat, integritysetup, ipa-idoverride-memberof-plugin, ipcalc, ipmievd, iproute-tc, iptables-arptables, iptables-ebtables, iptables-libs, isl, isl-devel, isns-utils-devel, isns-utils-libs, istack-commons-runtime, istack-commons-tools, ivy-local

J | jackson-annotations, jackson-annotations-javadoc, jackson-core, jackson-core-javadoc, jackson-databind, jackson-databind-javadoc, jackson-jaxrs-json-provider, jackson-jaxrs-providers, jackson-jaxrs-providers-datatypes, jackson-jaxrs-providers-javadoc, jackson-module-jaxb-annotations, jackson-module-jaxb-annotations-javadoc, javapackages-filesystem, javapackages-local, jbig2dec-libs, jboss-annotations-1.2-api, jboss-interceptors-1.2-api, jboss-interceptors-1.2-api-javadoc, jboss-jaxrs-2.0-api, jboss-logging, jboss-logging-tools, jcl-over-slf4j, jdeparser, jdom2, jdom2-javadoc, jimtcl, jimtcl-devel, jq, js-uglify, Judy, jul-to-slf4j, julietaula-montserrat-fonts

K | kabi-dw, kdump-anaconda-addon, kernel-core, kernel-cross-headers, kernel-debug-core, kernel-debug-modules, kernel-debug-modules-extra, kernel-modules, kernel-modules-extra, kernel-rpm-macros, kernel-rt-core, kernel-rt-debug-core, kernel-rt-debug-modules, kernel-rt-debug-modules-extra, kernel-rt-modules, kernel-rt-modules-extra, kernelshark, koan, kyotocabinet-libs

L | lame-devel, lame-libs, langpacks-af, langpacks-am, langpacks-ar, langpacks-as, langpacks-ast, langpacks-be, langpacks-bg, langpacks-bn, langpacks-br, langpacks-bs, langpacks-ca, langpacks-cs, langpacks-cy, langpacks-da, langpacks-de, langpacks-el, langpacks-en, langpacks-en_GB, langpacks-es, langpacks-et, langpacks-eu, langpacks-fa, langpacks-fi, langpacks-fr, langpacks-ga, langpacks-gl, langpacks-gu, langpacks-he, langpacks-hi, langpacks-hr, langpacks-hu, langpacks-ia, langpacks-id, langpacks-is, langpacks-it, langpacks-ja, langpacks-kk, langpacks-kn, langpacks-ko, langpacks-lt, langpacks-lv, langpacks-mai, langpacks-mk, langpacks-ml, langpacks-mr, langpacks-ms, langpacks-nb, langpacks-ne, langpacks-nl, langpacks-nn, langpacks-nr, langpacks-nso, langpacks-or, langpacks-pa, langpacks-pl, langpacks-pt, langpacks-pt_BR, langpacks-ro, langpacks-ru, langpacks-si, langpacks-sk, langpacks-sl, langpacks-sq, langpacks-sr, langpacks-ss, langpacks-sv, langpacks-ta, langpacks-te, langpacks-th, langpacks-tn, langpacks-tr, langpacks-ts, langpacks-uk, langpacks-ur, langpacks-ve, langpacks-vi, langpacks-xh, langpacks-zh_CN, langpacks-zh_TW, langpacks-zu, lato-fonts, lensfun, lensfun-devel, leptonica, leptonica-devel, liba52, libaec, libaec-devel, libatomic_ops, libbabeltrace, libblockdev-lvm-dbus, libcephfs-devel, libcephfs2, libcmocka, libcmocka-devel, libcomps, libcomps-devel, libcurl-minimal, libdap, libdap-devel, libdatrie, libdatrie-devel, libdazzle, libdc1394, libdnf, libEMF, libEMF-devel, libeot, libepubgen, libertas-sd8686-firmware, libertas-sd8787-firmware, libertas-usb8388-firmware, libertas-usb8388-olpc-firmware, libev, libev-devel, libev-libevent-devel, libev-source, libfdisk, libfdisk-devel, libfdt, libfdt-devel, libgit2, libgit2-devel, libgit2-glib, libgit2-glib-devel, libgomp-offload-nvptx, libgudev, libgudev-devel, libi2c, libidn2, libidn2-devel, libijs, libinput-utils, libipt, libisoburn, libisoburn-devel, libkcapi, libkcapi-hmaccalc, libkeepalive, libknet1, libknet1-compress-bzip2-plugin, libknet1-compress-lz4-plugin, libknet1-compress-lzma-plugin, libknet1-compress-lzo2-plugin, libknet1-compress-plugins-all, libknet1-compress-zlib-plugin, libknet1-crypto-nss-plugin, libknet1-crypto-openssl-plugin, libknet1-crypto-plugins-all, libknet1-devel, libknet1-plugins-all, liblangtag-data, libmad, libmad-devel, libmcpp, libmemcached-libs, libmetalink, libmodulemd, libmodulemd-devel, libmodulemd1, libnghttp2, libnghttp2-devel, libnice-gstreamer1, libnsl, libnsl2, libnsl2-devel, liboggz, libomp, libomp-devel, libomp-test, libpeas-loader-python3, libpkgconf, libpq, libpq-devel, libproxy-webkitgtk4, libpsl, libqhull, libqhull_p, libqhull_r, libqxp, librados-devel, libradosstriper-devel, libradosstriper1, librbd-devel, libreoffice-help-en, libreoffice-langpack-af, libreoffice-langpack-ar, libreoffice-langpack-as, libreoffice-langpack-bg, libreoffice-langpack-bn, libreoffice-langpack-br, libreoffice-langpack-ca, libreoffice-langpack-cs, libreoffice-langpack-cy, libreoffice-langpack-da, libreoffice-langpack-de, libreoffice-langpack-dz, libreoffice-langpack-el, libreoffice-langpack-es, libreoffice-langpack-et, libreoffice-langpack-eu, libreoffice-langpack-fa, libreoffice-langpack-fi, libreoffice-langpack-fr, libreoffice-langpack-ga, libreoffice-langpack-gl, libreoffice-langpack-gu, libreoffice-langpack-he, libreoffice-langpack-hi, libreoffice-langpack-hr, libreoffice-langpack-hu, libreoffice-langpack-id, libreoffice-langpack-it, libreoffice-langpack-ja, libreoffice-langpack-kk, libreoffice-langpack-kn, libreoffice-langpack-ko, libreoffice-langpack-lt, libreoffice-langpack-lv, libreoffice-langpack-mai, libreoffice-langpack-ml, libreoffice-langpack-mr, libreoffice-langpack-nb, libreoffice-langpack-nl, libreoffice-langpack-nn, libreoffice-langpack-nr, libreoffice-langpack-nso, libreoffice-langpack-or, libreoffice-langpack-pa, libreoffice-langpack-pl, libreoffice-langpack-pt-BR, libreoffice-langpack-pt-PT, libreoffice-langpack-ro, libreoffice-langpack-ru, libreoffice-langpack-si, libreoffice-langpack-sk, libreoffice-langpack-sl, libreoffice-langpack-sr, libreoffice-langpack-ss, libreoffice-langpack-st, libreoffice-langpack-sv, libreoffice-langpack-ta, libreoffice-langpack-te, libreoffice-langpack-th, libreoffice-langpack-tn, libreoffice-langpack-tr, libreoffice-langpack-ts, libreoffice-langpack-uk, libreoffice-langpack-ve, libreoffice-langpack-xh, libreoffice-langpack-zh-Hans, libreoffice-langpack-zh-Hant, libreoffice-langpack-zu, librhsm, librx, librx-devel, libsass, libsass-devel, libserf, libsigsegv, libsigsegv-devel, libssh, libssh-devel, libstemmer, libstemmer-devel, libubsan, libucil, libucil-devel, libunicap, libunicap-devel, libuv, libvarlink, libvarlink-devel, libvarlink-util, libvirt-dbus, libX11-xcb, libxcam, libxcrypt, libxcrypt-devel, libxcrypt-static, libXNVCtrl, libXNVCtrl-devel, libzhuyin, libzip-tools, lld, lld-devel, lld-libs, lldb, lldb-devel, lldpd, lldpd-devel, llvm, llvm-devel, llvm-doc, llvm-googletest, llvm-libs, llvm-static, llvm-test, llvm-toolset, log4j-over-slf4j, log4j12, log4j12-javadoc, lohit-gurmukhi-fonts, lohit-odia-fonts, lorax-composer, lorax-lmc-novirt, lorax-lmc-virt, lorax-templates-generic, lorax-templates-rhel, lttng-ust, lttng-ust-devel, lua-expat, lua-filesystem, lua-json, lua-libs, lua-lpeg, lua-lunit, lua-posix, lua-socket, lvm2-dbusd, lz4-libs

M | make-devel, man-db-cron, mariadb-backup, mariadb-common, mariadb-connector-c, mariadb-connector-c-config, mariadb-connector-c-devel, mariadb-connector-odbc, mariadb-errmsg, mariadb-gssapi-server, mariadb-java-client, mariadb-oqgraph-engine, mariadb-server-galera, mariadb-server-utils, maven-artifact-transfer, maven-artifact-transfer-javadoc, maven-lib, maven-resolver, maven-resolver-api, maven-resolver-connector-basic, maven-resolver-impl, maven-resolver-javadoc, maven-resolver-spi, maven-resolver-test-util, maven-resolver-transport-classpath, maven-resolver-transport-file, maven-resolver-transport-http, maven-resolver-transport-wagon, maven-resolver-util, maven-wagon-file, maven-wagon-ftp, maven-wagon-http, maven-wagon-http-lightweight, maven-wagon-http-shared, maven-wagon-provider-api, maven-wagon-providers, mcpp, mecab, mecab-ipadic, mecab-ipadic-EUCJP, mesa-vulkan-devel, meson, metis, metis-devel, microdnf, mingw-binutils-generic, mingw-filesystem-base, mingw32-binutils, mingw32-bzip2, mingw32-bzip2-static, mingw32-cairo, mingw32-cpp, mingw32-crt, mingw32-expat, mingw32-filesystem, mingw32-fontconfig, mingw32-freetype, mingw32-freetype-static, mingw32-gcc, mingw32-gcc-c, mingw32-gettext, mingw32-gettext-static, mingw32-glib2, mingw32-glib2-static, mingw32-gstreamer1, mingw32-harfbuzz, mingw32-harfbuzz-static, mingw32-headers, mingw32-icu, mingw32-libffi, mingw32-libjpeg-turbo, mingw32-libjpeg-turbo-static, mingw32-libpng, mingw32-libpng-static, mingw32-libtiff, mingw32-libtiff-static, mingw32-openssl, mingw32-pcre, mingw32-pcre-static, mingw32-pixman, mingw32-pkg-config, mingw32-readline, mingw32-sqlite, mingw32-sqlite-static, mingw32-termcap, mingw32-win-iconv, mingw32-win-iconv-static, mingw32-winpthreads, mingw32-winpthreads-static, mingw32-zlib, mingw32-zlib-static, mingw64-binutils, mingw64-bzip2, mingw64-bzip2-static, mingw64-cairo, mingw64-cpp, mingw64-crt, mingw64-expat, mingw64-filesystem, mingw64-fontconfig, mingw64-freetype, mingw64-freetype-static, mingw64-gcc, mingw64-gcc-c, mingw64-gettext, mingw64-gettext-static, mingw64-glib2, mingw64-glib2-static, mingw64-gstreamer1, mingw64-harfbuzz, mingw64-harfbuzz-static, mingw64-headers, mingw64-icu, mingw64-libffi, mingw64-libjpeg-turbo, mingw64-libjpeg-turbo-static, mingw64-libpng, mingw64-libpng-static, mingw64-libtiff, mingw64-libtiff-static, mingw64-openssl, mingw64-pcre, mingw64-pcre-static, mingw64-pixman, mingw64-pkg-config, mingw64-readline, mingw64-sqlite, mingw64-sqlite-static, mingw64-termcap, mingw64-win-iconv, mingw64-win-iconv-static, mingw64-winpthreads, mingw64-winpthreads-static, mingw64-zlib, mingw64-zlib-static, mockito, mockito-javadoc, mod_http2, mod_md, mozvoikko, mpich, mpich-devel, mpitests-mvapich2-psm2, multilib-rpm-config, munge, munge-devel, munge-libs, mvapich2, mvapich2-psm2, mysql, mysql-common, mysql-devel, mysql-errmsg, mysql-libs, mysql-server, mysql-test

N | nbdkit-bash-completion, nbdkit-plugin-gzip, nbdkit-plugin-python3, nbdkit-plugin-xz, ncurses-c++-libs, ncurses-compat-libs, netconsole-service, network-scripts, network-scripts-team, NetworkManager-config-connectivity-redhat, nghttp2, nginx, nginx-all-modules, nginx-filesystem, nginx-mod-http-image-filter, nginx-mod-http-perl, nginx-mod-http-xslt-filter, nginx-mod-mail, nginx-mod-stream, ninja-build, nkf, nodejs, nodejs-devel, nodejs-docs, nodejs-nodemon, nodejs-packaging, npm, npth, nss_db, nss_nis, nss_wrapper, nss-altfiles, ntpstat

O | objectweb-pom, objenesis, objenesis-javadoc, ocaml-cppo, ocaml-labltk, ocaml-labltk-devel, oci-systemd-hook, oci-umount, ocl-icd, ocl-icd-devel, ongres-scram, ongres-scram-client, oniguruma, oniguruma-devel, openal-soft, openal-soft-devel, openblas, openblas-devel, openblas-openmp, openblas-openmp64, openblas-openmp64_, openblas-Rblas, openblas-serial64, openblas-serial64_, openblas-srpm-macros, openblas-static, openblas-threads, openblas-threads64, openblas-threads64_, opencl-filesystem, opencl-headers, opencv-contrib, OpenIPMI-lanserv, openscap-python3, openssl-ibmpkcs11, openssl-pkcs11, openwsman-python3, os-maven-plugin, os-maven-plugin-javadoc, osad, osgi-annotation, osgi-annotation-javadoc, osgi-compendium, osgi-compendium-javadoc, osgi-core, osgi-core-javadoc, ostree, ostree-devel, ostree-grub2, ostree-libs, overpass-mono-fonts

p | p11-kit-server, pacemaker-schemas, pam_cifscreds, pandoc, pandoc-common, papi-libs, pcaudiolib, pcp-pmda-podman, pcre-cpp, pcre-utf16, pcre-utf32, Peripety, perl-AnyEvent, perl-Attribute-Handlers, perl-B-Debug, perl-B-Hooks-EndOfScope, perl-bignum, perl-Canary-Stability, perl-Class-Accessor, perl-Class-Factory-Util, perl-Class-Method-Modifiers, perl-Class-Tiny, perl-Class-XSAccessor, perl-common-sense, perl-Compress-Bzip2, perl-Config-AutoConf, perl-Config-Perl-V, perl-CPAN-DistnameInfo, perl-CPAN-Meta-Check, perl-Data-Dump, perl-Data-Section, perl-Data-UUID, perl-Date-ISO8601, perl-DateTime-Format-Builder, perl-DateTime-Format-HTTP, perl-DateTime-Format-ISO8601, perl-DateTime-Format-Mail, perl-DateTime-Format-Strptime, perl-DateTime-TimeZone-SystemV, perl-DateTime-TimeZone-Tzfile, perl-Devel-CallChecker, perl-Devel-Caller, perl-Devel-GlobalDestruction, perl-Devel-LexAlias, perl-Devel-Peek, perl-Devel-PPPort, perl-Devel-SelfStubber, perl-Devel-Size, perl-Digest-CRC, perl-DynaLoader-Functions, perl-encoding, perl-Errno, perl-Eval-Closure, perl-experimental, perl-Exporter-Tiny, perl-ExtUtils-Command, perl-ExtUtils-Miniperl, perl-ExtUtils-MM-Utils, perl-Fedora-VSP, perl-File-BaseDir, perl-File-chdir, perl-File-DesktopEntry, perl-File-Find-Object, perl-File-MimeInfo, perl-File-ReadBackwards, perl-Filter-Simple, perl-generators, perl-Import-Into, perl-Importer, perl-inc-latest, perl-interpreter, perl-IO, perl-IO-All, perl-IO-Multiplex, perl-IPC-System-Simple, perl-IPC-SysV, perl-JSON-XS, perl-libintl-perl, perl-libnet, perl-libnetcfg, perl-List-MoreUtils-XS, perl-Locale-gettext, perl-Math-BigInt, perl-Math-BigInt-FastCalc, perl-Math-BigRat, perl-Math-Complex, perl-Memoize, perl-MIME-Base64, perl-MIME-Charset, perl-MIME-Types, perl-Module-CoreList-tools, perl-Module-CPANfile, perl-Module-Install-AuthorTests, perl-Module-Install-ReadmeFromPod, perl-MRO-Compat, perl-namespace-autoclean, perl-namespace-clean, perl-Net-Ping, perl-Net-Server, perl-NKF, perl-NTLM, perl-open, perl-Params-Classify, perl-Params-ValidationCompiler, perl-Parse-PMFile, perl-Path-Tiny, perl-Perl-Destruct-Level, perl-perlfaq, perl-PerlIO-utf8_strict, perl-PerlIO-via-QuotedPrint, perl-Pod-Html, perl-Pod-Markdown, perl-Ref-Util, perl-Ref-Util-XS, perl-Role-Tiny, perl-Scope-Guard, perl-SelfLoader, perl-Software-License, perl-Specio, perl-Sub-Exporter-Progressive, perl-Sub-Identify, perl-Sub-Info, perl-Sub-Name, perl-SUPER, perl-Term-ANSIColor, perl-Term-Cap, perl-Term-Size-Any, perl-Term-Size-Perl, perl-Term-Table, perl-Test-LongString, perl-Test-Warnings, perl-Test2-Suite, perl-Text-Balanced, perl-Text-Tabs+Wrap, perl-Text-Template, perl-Types-Serialiser, perl-Unicode-Collate, perl-Unicode-EastAsianWidth, perl-Unicode-LineBreak, perl-Unicode-Normalize, perl-Unicode-UTF8, perl-Unix-Syslog, perl-Variable-Magic, perl-YAML-LibYAML-LibYAML, php-dbg, php-gmp, php-json, php-opcache, php-pecl-apcu-devel, php-pecl-zip, pigz, pinentry-emacs, pinentry-gnome3, pipewire-devel, pipewire-doc, pipewire-libs, pipewire-utils, pkgconf, pkgconf-m4, pkgconf-pkg-config, pki-servlet-4.0-api, pki-servlet-container, platform-python-coverage, platform-python-debug, platform-python-devel, platform-python-devel, platform-python-pip, platform-python-setuptools, plexus-interactivity-api, plexus-interactivity-jline, plexus-languages, plexus-languages-javadoc, plotutils-devel, pmix, pmreorder, podman, podman-docker, policycoreutils-dbus, policycoreutils-dbus, policycoreutils-python-utils, polkit-libs, poppler-qt5, poppler-qt5-devel, postfix-mysql, postfix-pgsql, postgresql-odbc-tests, postgresql-plpython3, postgresql-server-devel, postgresql-test-rpm-macros, postgresql-upgrade-devel, potrace, powermock-api-easymock, powermock-api-mockito, powermock-api-support, powermock-common, powermock-core, powermock-javadoc, powermock-junit4, powermock-reflect, powermock-testng, prefixdevname, pstoedit, ptscotch-mpich, ptscotch-mpich-devel, ptscotch-mpich-devel-parmetis, ptscotch-openmpi, ptscotch-openmpi-devel, publicsuffix-list-dafsa, python-pymongo-doc, python-qt5-rpm-macros, python-sphinx-locale, python-sqlalchemy-doc, python-virtualenv-doc, python2, python2-attrs, python2-babel, python2-backports-ssl_match_hostname, python2-bson, python2-cairo, python2-cairo-devel, python2-chardet, python2-Cython, python2-Cython, python2-devel, python2-dns, python2-docs, python2-docs-info, python2-docutils, python2-funcsigs, python2-idna, python2-ipaddress, python2-iso8601, python2-jinja2, python2-libs, python2-lxml, python2-markupsafe, python2-mock, python2-nose, python2-numpy, python2-numpy-doc, python2-numpy-f2py, python2-pip, python2-pluggy, python2-psycopg2, python2-psycopg2-debug, python2-psycopg2-tests, python2-py, python2-pygments, python2-pymongo, python2-pymongo-gridfs, python2-PyMySQL, python2-pysocks, python2-pytest-mock, python2-pytest-mock, python2-pytz, python2-pyyaml, python2-requests, python2-scipy, python2-scour, python2-setuptools, python2-setuptools_scm, python2-six, python2-sqlalchemy, python2-talloc, python2-test, python2-tkinter, python2-tools, python2-urllib3, python2-virtualenv, python2-wheel, python3-abrt, python3-abrt-addon, python3-abrt-container-addon, python3-abrt-doc, python3-argcomplete, python3-argh, python3-asn1crypto, python3-attrs, python3-audit, python3-augeas, python3-avahi, python3-azure-sdk, python3-babel, python3-bcc, python3-bind, python3-blivet, python3-blockdev, python3-boom, python3-boto3, python3-botocore, python3-brlapi, python3-bson, python3-bytesize, python3-cairo, python3-cffi, python3-chardet, python3-clufter, python3-configobj, python3-configshell, python3-cpio, python3-createrepo_c, python3-cryptography, python3-cups, python3-custodia, python3-Cython, python3-dateutil, python3-dbus, python3-dbus-client-gen, python3-dbus-python-client-gen, python3-dbus-signature-pyparsing, python3-decorator, python3-dmidecode, python3-dnf, python3-dnf-plugin-spacewalk, python3-dnf-plugin-versionlock, python3-dnf-plugins-core, python3-dns, python3-docs, python3-docutils, python3-ethtool, python3-evdev, python3-fasteners, python3-firewall, python3-flask, python3-gevent, python3-gflags, python3-gobject-base, python3-ogle-api-client, python3-gpg, python3-greenlet, python3-greenlet-devel, python3-gssapi, python3-hawkey, python3-hivex, python3-html5lib, python3-httplib2, python3-helloize, python3-hwdata, python3-hypothesis, python3-idna, python3-imagesize, python3-iniparse, python3-inotify, python3-into-dbus-python, python3-ipaclient, python3-ipalib, python3-ipaserver, python3-iscsi-initiator-utils, python3-iso8601, python3-itsdangerous, python3-jabberpy, python3-javapackages, python3-jinja2, python3-jmespath, python3-jsonpatch, python3-jsonpointer, python3-jsonschema, python3-justbases, python3-justbytes, python3-jwcrypto, python3-jwt, python3-kdcproxy, python3-keycloak-httpd-client-install, p