搜索

8.10 发行注记

download PDF
Red Hat Enterprise Linux 8.10

Red Hat Enterprise Linux 8.10 发行注记

Red Hat Customer Content Services

摘要

本发行注记提供了已在 Red Hat Enterprise Linux 8.10 中实施的改进和附加组件的高级信息,并记录了本版本中已知的问题,以及重要的 bug 修复、技术预览、已弃用的功能和其他详情。
有关安装 Red Hat Enterprise Linux 的详情,请参考 第 3.1 节 “安装”

对红帽文档提供反馈

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

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

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

第 1 章 概述

1.1. RHEL 8.10 中的主要变化

安装程序和镜像创建

RHEL 镜像构建器的主要亮点:

  • 您可以创建不同的分区模式,如 auto-lvmlvmraw
  • 您可以使用所选的和未选的选项来为配置文件自定义定制选项,并将其添加到蓝图自定义中,以添加和删除规则。

如需更多信息,请参阅 新功能 - 安装程序和镜像创建

安全性

SCAP 安全指南 0.1.72 包含更新的 CIS 配置文件、与 PCI DSS 策略版本 4.0 一致的配置文件,以及最新 DISA STIG 策略的配置文件。

Linux 内核加密 API (libkcapi) 1.4.0 引入了新的工具和选项。值得注意的是,使用新的 -T 选项,您可以在哈希-和计算中指定目标文件名。

stunnel TLS/SSL 隧道服务 5.71 更改了 FIPS 模式下 OpenSSL 1.1 及更新版本的行为。除了这个更改外,版本 5.71 还提供了许多新功能,如支持现代 PostgreSQL 客户端。

OpenSSL TLS 工具包现在包含对 RSA PKCS #1 v1.5 解密过程的类似 Bleichenbacher 攻击的 API 级别的保护。

如需更多信息,请参阅 新功能 - 安全性

动态编程语言、网页和数据库服务器

以下应用程序流的后续版本现在可用:

  • Python 3.12
  • Ruby 3.3
  • PHP 8.2
  • nginx 1.24
  • MariaDB 10.11
  • PostgreSQL 16

以下组件已升级:

  • Git 升级到版本 2.43.0
  • Git LFS 升级到版本 3.4.1

如需更多信息,请参阅 新功能 - 动态编程语言、Web 和数据库服务器

身份管理

RHEL 8.10 中的身份管理(IdM)引入了将用户身份验证委派给支持 OAuth 2 设备授权流的外部身份提供方(IdP)。现在,这是一个完全支持的功能。

在外部 IdP 执行身份验证和授权后,IdM 用户会收到一个具有单点登录功能的 Kerberos 票据。

如需更多信息,请参阅 新功能 - 身份管理

容器

主要变更包括:

  • 用于创建多架构容器镜像的 podman farm build 命令作为技术预览提供。
  • Podman 现在支持 containers.conf 模块,来加载一组预先确定的配置。
  • Container Tools 软件包已更新。
  • Podman v4.9 RESTful API 现在在拉取或将镜像推送到注册中心时显示进度数据。
  • SQLite 现在作为 Podman 的默认数据库后端被完全支持。
  • Containerfile 现在支持多行 HereDoc 指令。
  • pasta 作为网络名称已弃用。
  • BoltDB 数据库后端已被弃用。
  • container-tools:4.0 模块已弃用。
  • Container Network Interface (CNI)网络堆栈已弃用,并将在以后的发行版本中删除。

如需更多信息,请参阅 新功能 - 容器

1.2. 原位升级和操作系统转换

RHEL 7 原位升级到 RHEL 8

目前可能的原位升级路径是:

  • 在 64 位 Intel、IBM POWER 8 (little endian)和 IBM Z 构架上,从 RHEL 7.9 升级到 RHEL 8.8 和 RHEL 8.10
  • 在 64 位 Intel 构架上带有 SAP HANA 的系统上,从 RHEL 7.9 升级到 RHEL 8.8 和 RHEL 8.10。

如需更多信息,请参阅支持的 Red Hat Enterprise Linux 原位升级路径

有关执行原位升级的步骤,请参阅 从 RHEL 7 升级到 RHEL 8

有关在带有 SAP 环境的系统上执行原位升级的说明,请参阅 如何将 SAP 环境从 RHEL 7 原位升级到 RHEL 8

有关红帽如何支持原位升级过程的详情,请查看 原位升级支持策略

主要改进包括:

  • 已实现了新的逻辑,以确定升级后 systemd 服务的期望的状态。
  • 本地存储的 DNF 存储库现在可用于原位升级。
  • 您现在可以配置 DNF ,以能够使用代理进行升级。
  • 使用 HTTPS 访问的自定义 DNF 存储库执行原位升级的问题已修复。
  • 如果已修改了 /etc/pki/tls/openssl.cnf 配置文件,则该文件现在在升级过程中被目标默认 OpenSSL 配置文件替代,以防止升级后出现问题。如需更多信息,请参阅预升级报告。
从 RHEL 6 原位升级到 RHEL 8

不可能直接执行从 RHEL 6 到 RHEL 8 的原位升级。但是,您可以执行从 RHEL 6 到 RHEL 7 的原位升级,然后执行到 RHEL 8 的第二个原位升级。如需更多信息,请参阅 从 RHEL 6 升级到 RHEL 7

从 RHEL 8 原位升级到 RHEL 9

文档 从 RHEL 8 升级到 RHEL 9 中提供了有关如何使用 Leapp 工具执行从 RHEL 8 原位升级到 RHEL 9 的说明。RHEL 8 和 RHEL 9 的主要区别记录在 采用 RHEL 9 时的注意事项 中。

从不同的 Linux 发行版转换到 RHEL

如果您使用 Alma Linux 8、CentOS Linux 8、Oracle Linux 8 或 Rocky Linux 8,您可以使用红帽支持的 Convert2RHEL 工具将操作系统转换为 RHEL 8。如需更多信息,请参阅从基于 RPM 的 Linux 发行版转换到 RHEL

如果您使用 CentOS Linux 7 或 Oracle Linux 7,您可以将操作系统转换为 RHEL,然后执行到 RHEL 8 的原位升级。

有关红帽如何支持从其他 Linux 发行本转换到 RHEL 的详情,请参考 Convert2RHEL 支持政策文档

1.3. 红帽客户门户网站 Labs

红帽客户门户网站 Labs 是客户门户网站的一个部分中的一组工具,地址为 https://access.redhat.com/labs/。红帽客户门户网站 Labs 中的应用程序可帮助您提高性能、快速解决问题、发现安全问题以及快速部署和配置复杂应用程序。一些最常用的应用程序有:

1.4. 其它资源

注意

发行注记包括访问原始跟踪票据的链接。私有票据没有链接,取而代之的是这个脚注。[1]



[1] 发行注记包括访问原始跟踪票据的链接。私有票据没有链接,取而代之的是这个脚注。

第 2 章 构架

Red Hat Enterprise Linux 8.10 与内核版本 4.18.0-553 一起分发,它提供对以下构架的支持:

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

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

第 3 章 RHEL 8 中的内容发布

3.1. 安装

Red Hat Enterprise Linux 8 使用 ISO 镜像安装。AMD64、Intel 64 位、64 位 ARM、IBM Power Systems 和 IBM Z 架构有两种类型的 ISO 镜像:

  • 二进制 DVD ISO:包含 BaseOS 和 AppStream 软件仓库的完整安装镜像,并允许您在没有附加软件仓库的情况下完成安装。

    注意

    安装 ISO 镜像的大小为几个 GB,因此可能不适用于光盘介质格式。当使用安装 ISO 镜像时,建议使用 USB 盘或 USB 硬盘驱动器创建可引导安装介质。您还可以使用 Image Builder 工具创建自定义的 RHEL 镜像。有关镜像构建器的更多信息,请参阅 编写自定义的 RHEL 系统镜像文档。

  • 引导 ISO:用来引导到安装程序的最小引导 ISO 镜像。这个选项需要访问 BaseOS 和 AppStream 软件仓库来安装软件包。软件仓库是二进制 DVD ISO 镜像的一部分。

有关下载 ISO 镜像、创建安装介质和完成 RHEL 安装的说明,请参阅 执行标准的 RHEL 8 安装 文档。有关自动的 Kickstart 安装和其他高级主题,请参阅 执行高级的 RHEL 8 安装 文档。

3.2. 软件仓库

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 软件仓库的详情,请查看 软件包清单

3.3. 应用程序流

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 中可用模块列表,请查看 软件包清单

3.4. 使用 YUM/DNF 的软件包管理

在 Red Hat Enterprise Linux 8 上,安装软件是由 YUM 工具来保证的,该工具基于 DNF 技术。我们有意坚持使用 yum 术语,以便与以前的 RHEL 主版本保持一致。但是,如果您输入 dnf 而不是 yum,则命令可以按预期工作,因为 yumdnf 的别名,以便兼容。

如需了解更多详细信息,请参阅以下文档:

第 4 章 新功能

这部分论述了 Red Hat Enterprise Linux 8.10 中引入的新功能和主要改进。

4.1. 安装程序和镜像创建

能够对蓝图文件系统自定义使用分区模式

有了此更新,在使用 RHEL 镜像构建器时,您可以使用所选的文件系统定制自定义蓝图。您可以在创建镜像时选择以下分区模式之一:

  • 默认:auto-lvm
  • LVM:镜像使用逻辑卷管理器(LVM),即使没有额外的分区
  • raw :镜像使用原始分区,即使有额外的分区

Jira:RHELDOCS-16337[1]

镜像构建器中的文件系统自定义策略更改

当在蓝图中使用 RHEL 镜像构建器文件系统自定义时,会有以下策略更改:

目前,可以设置 mountpoint 和最小分区 minsize。以下镜像类型不支持文件系统自定义:image-installeredge-installeredge-simplified-installer ,以下镜像类型不创建已分区的操作系统镜像自定义其文件系统无意义:edge-commitedge-containertarcontainer。蓝图现在支持 tpm 及其子目录的 mountpoint 自定义。

Jira:RHELDOCS-17261[1]

4.2. 安全性

SCAP 安全指南 rebase 到 0.1.72

SCAP 安全指南(SSG)软件包已 rebase 到上游版本 0.1.72。此版本提供了bug 修正和各种改进,最重要的是:

  • CIS 配置文件已被更新为与最新的基准一致。
  • PCI DSS 配置文件与 PCI DSS 策略版本 4.0 一致。
  • STIG 配置文件与最新的 DISA STIG 策略一致。

如需更多信息,请参阅 SCAP 安全指南发行注记

Jira:RHEL-25250[1]

OpenSSL 现在包含针对类似 Bleichenbacher 的攻击的保护

这个 OpenSSL TLS 工具包发行版本引入了类似对 RSA PKCS #1 v1.5 解密过程的 Bleichenbacher 攻击的保护。如果 RSA 解密在 PKCS #1 v1.5 解密过程中检测到一个错误,则它现在返回一个随机生成的确定性消息,而不是一个错误。这个变化提供了对漏洞的通用保护,如 CVE-2020-25659CVE-2020-25657

您可以通过对 RSA 解密上下文调用 EVP_PKEY_CTX_ctrl_str (ctx, "rsa_pkcs1_implicit_rejection"."0") 函数来禁用这个保护,但这会使您的系统更易受攻击。

Jira:RHEL-17689[1]

librdkafka rebase 到 1.6.1

Apache Kafka 协议的 librdkafka 实现已 rebase 到上游版本 1.6.1。这是 RHEL 8 的第一个主功能发行版本。rebase 提供了很多重要的改进和 bug 修复。对于所有相关更改,请参阅 librdkafka 软件包中提供的 CHANGELOG.md 文档。

注意

此更新更改了配置默认值,并弃用了一些配置属性。如需更多详细信息,请参阅 CHANGELOG.md 中的升级注意事项部分。此版本中的 API (C 和 C++)和 ABI © 与旧版本的 librdkafka 兼容,但一些对配置属性的更改可能需要对现有应用程序进行更改。

Jira:RHEL-12892[1]

libkcapi rebase 到 1.4.0

提供对 Linux 内核加密 API 访问的 libkcapi 库已 rebase 到上游版本 1.4.0。更新包括各种改进和 bug 修复,最重要的是:

  • 添加了 sm3sumsm3hmac 工具。
  • 添加了 kcapi_md_sm3kcapi_md_hmac_sm3 API。
  • 添加了 SM4 方便功能。
  • 修复了对链接时间优化(LTO)的支持。
  • 修复了 LTO 回归测试。
  • 修复了对任意大小的 kcapi-enc 的 AEAD 加密的支持。

Jira:RHEL-5366[1]

stunnel rebase 到 5.71

stunnel TLS/SSL 隧道服务已 rebase 到上游版本 5.71。此更新更改了 FIPS 模式下 OpenSSL 1.1 及更新版本的行为。如果 OpenSSL 在 FIPS 模式下,且 stunnel 默认 FIPS 配置被设置为 no,则 stunnel 适应 OpenSSL ,且 FIPS 模式被启用。

其他新功能包括:

  • 添加了对现代 PostgreSQL 客户端的支持。
  • 您可以使用 protocolHeader 服务级选项来插入自定义的 connect 协议协商标头。
  • 您可以使用 protocolHost 选项控制客户端 SMTP 协议协商 HELO/EHLO 值。
  • 添加了对客户端 protocol = ldap 的客户端支持。
  • 现在,您可以使用服务级 sessionResume 选项配置会话恢复。
  • 添加了服务器模式下使用 CApath 请求客户端证书的支持(以前,只支持使用 CAfile )。
  • 改进了文件读和日志记录性能。
  • 添加了对 retry 选项的可配置延迟的支持。
  • 在客户端模式下,当设置了 verifyChain 时,请求和验证 OCSP 装订。
  • 在服务器模式下,始终提供 OCSP 装订。
  • 不确定的 OCSP 验证会破坏 TLS 协商。您可以通过设置 OCSPrequire = no 来禁用它。

Jira:RHEL-2340[1]

OpenSSH 限制身份验证中的人工延迟

登录失败后 OpenSSH 的响应被人工延迟,以防止用户枚举攻击。此更新引入了一个上限,以便在远程身份验证用时很长(例如在特权访问管理(PAM)处理中)时,这种人工延迟不会过长。

Jira:RHEL-1684

libkcapi 现在提供了一个用于在哈希-和计算中指定目标文件名的选项

这个 libkcapi (Linux 内核加密 API)软件包的更新引进了新选项 -T,用于在哈希-和计算中指定目标文件名。此选项的值覆盖处理后的 HMAC 文件中指定的文件名。您只能通过 -c 选项使用这个选项,例如:

$ sha256hmac -c <hmac_file> -T <target_file>

Jira:RHEL-15300[1]

audit rebase 到 3.1.2

Linux Audit 系统已更新至版本 3.1.2,与之前发布的版本 3.0.7 相比,它提供了 bug 修复、功能增强和性能改进。主要改进包括:

  • auparse 库现在解释未命名的和匿名的套接字。
  • 您可以在 ausearchaureport 工具的 startend 选项中使用新关键字 this-hour
  • auditctl 程序中添加了用于信号的用户友好的关键字。
  • 改进了对 auparse 中损坏的日志的处理。
  • 现在,ProtectControlGroups 选项在 auditd 服务中默认被禁用。
  • 对 exclude 过滤器的规则检查已修复。
  • OPENAT2 字段的解释已改进。
  • audispd af_unix 插件已移到独立的程序。
  • Python 绑定已被修改,以防止从 Python API 设置审计规则。这个更改是由于 Simplified Wrapper 和 Interface Generator (SWIG)中的一个 bug 而做的。

Jira:RHEL-15001[1]

4.3. Shell 和命令行工具

openCryptoki rebase 到版本 3.22.0

opencryptoki 软件包已更新至版本 3.22.0。主要变更包括:

  • 使用 CPACF 保护的密钥添加了对 AES-XTS 密钥类型的支持。
  • 添加了对管理证书对象的支持。
  • 添加了对使用 no-login 选项的公共会话的支持。
  • 添加了对以 Security Officer (SO)身份登录的支持。
  • 添加了对导入和导出 EdwardsMontgomery 密钥的支持。
  • 添加了对导入 RSA-PSS 密钥和证书的支持。
  • 为安全起见,AES-XTS 密钥的两个密钥部分不应相同。此更新增加了对密钥生成和导入过程的检查,以确保这一点。
  • 实施了各种 bug 修复。

Jira:RHEL-11413[1]

4.4. 基础架构服务

chrony rebase 到版本 4.5

chrony 套件已更新至版本 4.5。主要变更包括:

  • 添加了由 hostname 指定的网络时间协议(NTP)源的定期刷新。默认间隔为两周,可以通过向 chrony.conf 文件中添加 refresh 0 来禁用它。
  • 改进了自动替换无法访问的 NTP 源。
  • 改进了 chronyc 工具所做的重要更改的日志记录。
  • 改进了源选择失败和 falsetickers 的日志记录。
  • 添加了 hwtstimeout 指令,来为延迟硬件传输时间戳配置超时时间。
  • 添加了对 Precision Time Protocol (PTP)透明时钟提供的修正的实验性支持,以达到具有硬件时间戳的 PTP 的精度。
  • 修复了 interleaved 下的 presend 选项。
  • 修复了从 sourcedir 目录中重新载入由 IP 地址指定的修改源。

Jira:RHEL-21069

linuxptp rebase 到版本 4.2

linuxptp 协议已更新至版本 4.2。主要变更包括:

  • 添加了对 phc2sys 工具中多个域的支持。
  • 添加了对时钟更新以及 Precision Time Protocol (PTP)父数据集中通知的支持,如 clock 类。
  • 添加了对 PTP Power Profile 的支持,即 IEEE C37.238-2011 和 IEEE C37.238-2017。

Jira:RHEL-21326[1]

4.5. 网络

firewalld 现在避免不必要的防火墙规则刷新

如果以下两个条件都满足,firewalld 服务不会从 iptables 配置中删除所有现有的规则:

  • firewalld 使用 nftables 后端。
  • 没有使用 --direct 选项创建的防火墙规则。

这个变化旨在减少不必要的操作(防火墙规则刷新),并改进了与其他软件的集成。

Jira:RHEL-47595

ss 工具向 TCP 绑定的非活动套接字添加了可见性改进

iproute2 套件提供了控制 TCP/IP 网络流量的工具集。TCP 绑定的非活动套接字附加到 IP 地址和端口号,但不连接或侦听 TCP 端口。套接字服务(ss)工具添加了对内核的支持,以转储 TCP 绑定的非活动套接字。您可以使用以下命令选项查看这些套接字:

  • ss --all: 转储包括 TCP 绑定的非活动套接字的所有套接字
  • ss --bound-inactive: 只转储绑定的非活动套接字

Jira:RHEL-6113[1]

nispor rebase 到版本 1.2.10

nispor 软件包已升级到上游版本 1.2.10,它提供一些改进和程序错误修复:

  • 添加了对 NetStateFilter 的支持,以在网络路由和接口上使用内核过滤器。
  • 单根输入和输出虚拟化(SR-IOV)接口可以为每个(VF)查询 SR-IOV 虚拟功能(SR-IOV VF)信息。
  • 新支持的绑定选项:lacp_active,arp_missed_maxns_ip6_target.

Bugzilla:2153166

4.6. 内核

RHEL 8.10 中的内核版本

Red Hat Enterprise Linux 8.10 与内核版本 4.18.0-553 一起分发。

rtla rebase 到上游 内核 源代码的 6.6 版本

rtla 工具已升级到最新的上游版本,其提供多个 bug 修复和增强。主要变更包括:

  • 添加了 -C 选项,来为 rtla 线程指定要在其中运行的其他控制组,除了主 rtla 线程。
  • 添加了 --house-keeping 选项,来将 rtla 线程放在一个内务 CPU 上,并将测量线程放在不同的 CPU 上。
  • 添加了对 timerlat 追踪器的支持,以便您可以在用户空间中运行 timerlat histtimerlat top 线程。

Jira:RHEL-10081[1]

rteval 已升级至上游版本 3.7

使用此更新,rteval 工具已升级到上游版本 3.7。此更新中最重要的功能涉及 isolcpus 内核参数。这包括检测和在 rteval 中使用测量模块的 isolcpus 机制的能力。因此,isolcpus 用户很容易使用 rteval 获取准确的延迟数,并实现在实时内核上测量的最佳延迟结果。

Jira:RHEL-8967[1]

SGX 现在被完全支持

软件扩展(SGX)是一个 Intel® 技术,用于保护软件代码和数据不受公开和修改的影响。

RHEL 内核提供 SGX 版本 1 和 2 功能。版本 1 使用 Flexible Launch Control 机制启用平台,以使用 SGX 技术。版本 2 添加了 Enclave Dynamic Memory Management (EDMM)。主要特性包括:

  • 修改属于初始化 enclave 的常规 enclave 页的 EPCM 权限。
  • 动态将常规 enclave 页添加到初始化的 enclave。
  • 扩展初始化的 enclave ,以容纳更多线程。
  • 从初始化的 enclave 中删除常规的 enclave 页和 TCS 页。

在本发行版本中,SGX 从技术预览变为完全支持的功能。

Bugzilla:2041881[1]

现在完全支持 Intel 数据流加速器驱动程序

Intel 数据流加速器驱动程序(IDXD)是一个提供 Intel CPU 集成加速器的内核驱动程序。它包括一个带有进程地址空间 ID (pasid)提交和共享虚拟内存(SVM)的共享工作队列。

在本发行版本中,IDXD 从技术预览变为完全支持的功能。

Jira:RHEL-10097[1]

rteval 现在支持从默认测量 CPU 列表中添加和删除任意 CPU

使用 rteval 工具,您可以在使用 --measurement-cpulist 参数时将 CPU 添加(使用 + 符号)或减少(使用 - 符号)到默认测量 CPU 列表中,而不必指定整个新列表。另外,还引进了 --measurement-run-on-isolcpus,来将所有隔离的 CPU 集合添加到默认测量 CPU 列表中。这个选项涵盖运行在隔离 CPU 上的实时应用程序的最常见用例。其他用例需要更通用的功能。例如,一些实时应用程序使用一个隔离的 CPU 进行内务处理,需要将其从默认的测量 CPU 列表中排除。现在,您可以不仅能够添加,还可以以灵活的方式从默认测量 CPU 列表中删除任意 CPU。删除的优先级高于添加。此规则适用于使用 +/- 符号指定的 CPU 和通过 --measurement-run-on-isolcpus 定义的 CPU。

Jira:RHEL-21926[1]

4.7. 引导加载程序

在预引导阶段支持 DEP/NX

内存保护功能称为 Data Execution Prevention (DEP)、No Execute (NX)或 Execute Disable (XD),阻止标记为不可执行的代码的执行。DEP/NX 已在 RHEL 的操作系统级别中提供。

此发行版本在 GRUB 和 shim 引导装载程序中添加了 DEP/NX 支持。这可以防止预引导阶段中的某些漏洞,如恶意 EFI 驱动程序,它们可能在没有 DEP/NX 保护的情况下执行某些攻击。

Jira:RHEL-15856[1]

支持 GRUB 和 shim 中的 TD RTMR 测量

Intel® Trust Domain Extension (Intel® TDX)是一种机密的计算技术,它部署称为信任域(TDs)的硬件隔离的虚拟机(VM)。

TDX 使用 TD 虚拟机客户机扩展了虚拟机扩展(VMX)指令和多密钥总内存加密(MKTME)功能。在 TD 客户机虚拟机中,引导链中的所有组件(如 grub2shim )都必须将事件和测量哈希记录到运行时测量寄存器(RTMR)中。

RTMR 中的 TD 客户机运行时测量是证明应用程序的基础。TD 客户机上的应用程序依赖 TD 测量提供信任证据来获取机密信息,如通过证明服务从转发部分获取的密钥。

有了此版本,GRUB 和 shim 引导装载程序现在支持 TD 测量协议。

有关 Intel® TDX 的更多信息,请参阅 Intel® 信任域扩展的文档

Jira:RHEL-15583[1]

4.8. 文件系统和存储

Storage RHEL 系统角色现在支持共享的 LVM 设备管理

RHEL 系统角色现在支持创建和管理共享逻辑卷和卷组。

Jira:RHEL-14022

multipathd 现在支持检测 NVMe 设备的 FPIN-Li 事件

在以前的版本中,multipathd 命令只监控 SCSI 设备上的 Integrity Fabric Performance Impact Notification(PFIN-Li)事件。multipathd 可以侦听光纤通道光纤发送的 Link Integrity 事件,并使用它来将路径标记为 marginal。这个功能只支持 SCSI 设备上的多路径设备,multipathd 无法通过限制该功能的使用,来将 Non-volatile Memory Express (NVMe)设备路径标记为 marginal。

有了此更新,multipathd 支持检测 SCSI 和 NVMe 设备的 FPIN-Li 事件。因此,多路径在不使用没有良好光纤连接的路径,而其它路径可用。这有助于在这种情况下避免 IO 延迟。

Jira:RHEL-6677

4.9. 动态编程语言、网页和数据库服务器

RHEL 8 中提供的 Python 3.12

RHEL 8.10 引入了 Python 3.12,由新软件包 python3.12 提供,以及为其构建的软件包套件,以及 ubi8/python-312 容器镜像。

与之前发布的 Python 3.11 相比,显著改进包括:

  • Python 引入了一个用于通用类和函数的新 type 语句和新类型参数语法。
  • 格式化的字符串字面(f-string)已在语法中被正式化,现在被直接集成到解析器中。
  • Python 现在提供一个唯一的每解释器全局解释器锁(GIL)。
  • 现在,您可以使用 Python 代码中的缓冲协议。
  • 为提高安全性,SHA1、SHA3、SHA2-384、SHA2-512 和 MD5 加密算法的内置 hashlib 实现已被 HACL* 项目的正式验证代码替代。如果 OpenSSL 没有提供它们,则内置的实现仍可用。
  • CPython 中的字典、列标和理解现在是内联的。这显著提高了理解执行的速度。
  • CPython 现在支持 Linux perf 分析器。
  • CPython 现在对支持的平台提供堆栈溢出保护。

要从 python3.12 堆栈安装软件包,请使用,例如:

# yum install python3.12
# yum install python3.12-pip

要运行解释器,请使用,例如:

$ python3.12
$ python3.12 -m pip --help

如需更多信息,请参阅 安装和使用 Python

有关 Python 3.12 的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-14942

Python 中的一个控制电子邮件地址解析的新环境变量

为缓解 CVE-2023-27043,一个向后兼容的更改,以确保在 Python 3 中引入了更严格的电子邮件地址的解析。

此更新引入了一个新的 PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING 环境变量。当您将此变量设置为 true 时,以前的、不太严格的解析行为是整个系统的默认设置:

export PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING=true

但是,对受影响函数的单个调用可能仍然启用更严格的行为。

您可以通过使用以下内容创建 /etc/python/email.cfg 配置文件来取得相同的结果:

[email_addr_parsing]
PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSING = true

如需更多信息,请参阅知识库文章 缓解 Python 中引入更严格的电子邮件地址解析的 CVE-2023-27043

Jira:RHELDOCS-17369[1]

新模块流:ruby:3.3

RHEL 8.10 在新的 ruby:3.3 模块流中引入了 Ruby 3.3.0。与 RHEL 8.7 一起发布的 Ruby 3.1 相比,这个版本提供了几个性能改进、程序错误和安全修复以及新功能。

主要改进包括:

  • 您可以使用新的 Prism 解析器而不是 RipperPrism 是 Ruby 语言的一个可移植的、容错的和可维护的递归下降解析器。
  • YJIT,Ruby 即时(JIT)编译器实现,不再是实验性的,它提供了主要的性能改进。
  • 改进了 Regexp 匹配算法,以减少潜在的正则表达式拒绝服务(ReDoS)漏洞的影响。
  • 新的实验性 RJIT (一个纯 Ruby JIT)编译器取代了 MJIT。在生产环境中使用 YJIT。
  • 现在提供了一个新的 M:N 线程调度程序。

其他显著变化:

  • 现在,您必须使用 Lrama LALR 解析器生成器,而不是 Bison
  • 已删除了几个弃用的方法和常量。
  • Racc gem 已从默认 gem 提升到捆绑 gem。

要安装 ruby:3.3 模块流,请使用:

# yum module install ruby:3.3

如果要从以前的 ruby 模块流升级,请参阅 切换到后期的流

有关 Ruby 3.3 的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-17090[1]

新模块流:php:8.2

RHEL 8.10 添加了 PHP 8.2,它比版本 8.0 提供了几个程序错误修复和增强。

使用 PHP 8.2,您可以:

  • 使用枚举(Enums)功能,定义一个仅限于离散的可能值之一的自定义类型。
  • 使用 readonly 修饰符声明一个属性,以防止在初始化后修改属性。
  • 使用光纤、全栈和可中断功能。
  • 使用只读类。
  • 声明几个新的独立类型。
  • 使用一个新的 Random 扩展。
  • 在特征中定义约束。

要安装 php:8.2 模块流,请使用以下命令:

# yum module install php:8.2

如果要从以前的 php 流升级,请参阅 切换到后期的流

有关 RHEL 8 上 PHP 用法的详情,请参阅 使用 PHP 脚本语言

有关 php 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-14705[1]

perl-DateTime-TimeZone 模块的 name() 方法现在返回时区名称

perl-DateTime-TimeZone 模块已更新至版本 2.62,它将 name() 方法返回的值从时区别名改为主时区名称。

如需更多信息和示例,请参阅知识库文章 perl-DateTime-TimeZone API 中与时区名称和别名相关的更改

Jira:RHEL-35685

一个新模块流:nginx:1.24

nginx 1.24 web 和代理服务器现在作为 nginx:1.24 模块流提供。与之前发布的版本 1.22 相比,这个版本提供了几个程序错误修复、安全修复、新功能和增强。

与传输层安全(TLS)相关的新功能和更改:

  • 当在 ssl_session_cache 指令中使用共享内存时,加密密钥现在会自动为 TLS 会话票据进行轮转。
  • 内存使用率已在带有安全套接字层(SSL)代理的配置中进行了优化。
  • 现在,您可以使用 resolver 指令的 ipv4=off 参数在解析时禁用查找 IPv4 地址。
  • nginx 现在支持 $proxy_protocol_tlv_* 变量,其存储出现在 PROXY v2 TLV 协议中的 Type-Length-Value (TLV)字段的值。
  • ngx_http_gzip_static_module 模块现在支持字节范围。

其他更改:

  • 标头行现在在内部 API 中表示为链接列表。
  • nginx 现在在 ngx_http_perl_module$r->header_in() 方法中和查找 $http_..., $sent_http_..., $sent_trailer_..., $upstream_http_...$upstream_trailer_.. 变量的过程中连接传递给 FastCGI、SCGI 和 uwsgi 后端的相同名称的头字符串。
  • 如果重新定义侦听套接字的协议参数,nginx 现在会显示一个警告。
  • 如果管道被客户端使用了,则 nginx 现在关闭与 lingering 的连接。
  • 各种 SSL 错误的日志记录级别已降低,例如从 Critical 降到 Informational

要安装 nginx:1.24 流,请使用:

# yum module install nginx:1.24

要从以前的 nginx 流升级,请 切换到后期流

如需更多信息,请参阅设置和配置 NGINX

有关 nginx 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期 文章。

Jira:RHEL-14714[1]

一个新模块流:mariadb:10.11

MariaDB 10.11 现在作为新模块流 mariadb:10.11 提供。与之前可用的版本 10.5 相比,显著的改进包括:

  • 一个新的 sys_schema 功能。
  • 原子数据定义语言(DDL)语句。
  • 一个新的 GRANT ...TO PUBLIC 特权。
  • 单独的 SUPERREAD ONLY ADMIN 特权。
  • 一个新的 UUID 数据库数据类型。
  • 支持安全套接字层(SSL)协议版本 3;MariaDB 服务器现在需要正确配置的 SSL 才能启动。
  • 通过 natural_sort_key() 函数支持自然排序顺序。
  • 一个新的用于任意文本格式化的 SFORMAT 函数。
  • 对 UTF-8 字符集和 UCA-14 排序规则的更改。
  • systemd 套接字激活文件在 /usr/share/ 目录中提供。请注意,与上游相反,它们不是 RHEL 中默认配置的一部分。
  • 包含 MariaDB 字符串而不是 MySQL 的错误消息。
  • 中文语言中提供的错误消息。
  • 对默认 logrotate 文件的更改。
  • 对于 MariaDB 和 MySQL 客户端,命令行上指定的连接属性(如 --port=3306)现在强制客户端和服务器之间通信的协议类型,如 tcpsocket管道memory

有关 MariaDB 10.11 中更改的更多信息,请参阅 MariaDB 10.5 和 MariaDB 10.11 之间的显著区别

有关 MariaDB 的更多信息,请参阅 使用 MariaDB

要安装 mariadb:10.11 流,请使用:

# yum module install mariadb:10.11

如果要从 mariadb:10.5 模块流升级,请参阅 从 MariaDB 10.5 升级到 MariaDB 10.11

有关 mariadb 模块流的支持长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-3637

一个新模块流:postgresql:16

RHEL 8.10 引入了 PostgreSQL 16,它比版本 15 提供了几个新功能和增强。

主要改进包括:

  • 增强的批量加载提高了性能。
  • libpq 库现在支持连接级负载均衡。您可以使用新的 load_balance_hosts 选项来获得更有效的负载平衡。
  • 现在,您可以创建自定义配置文件,并将其包含在 pg_hba.confpg_ident.conf 文件中。
  • PostgreSQL 现在支持与 pg_hba.conf 文件中的数据库和角色条目匹配的正则表达式。

其他更改包括:

  • PostgreSQL 不再与 postmaster 二进制文件一起分发。使用提供的 systemd 单元文件(systemctl start postgres 命令)启动 postgresql 服务器的用户不受这个更改的影响。如果您之前通过 postmaster 二进制文件直接启动了 postgresql 服务器,则您现在必须使用 postgres 二进制文件。
  • PostgreSQL 不再在软件包中提供 PDF 格式的文档。改为使用 在线文档

另请参阅 使用 PostgreSQL

要安装 postgresql:16 流,请使用以下命令:

# yum module install postgresql:16

如果要从 RHEL 8 中早期的 postgresql 流升级,请按照 切换到后期流 中描述的流程操作,然后迁移 PostgreSQL 数据,如 迁移到 PostgreSQL 的 RHEL 8 版本 中所述。

有关支持的 postgresql 模块流长度的详情,请查看 Red Hat Enterprise Linux 应用程序流生命周期

Jira:RHEL-3636

Git rebase 到版本 2.43.0

Git 版本控制系统已更新至版本 2.43.0,与之前发布的版本 2.39 相比,它提供了 bug 修复、增强和性能改进。

主要改进包括:

  • 现在,您可以将新的 --source 选项与 git check-attr 命令一起使用,来从提供的 tree-ish 对象,而不是当前工作目录读取 .gitattributes 文件。
  • Git 现在可以将信息从 WWW-Authenticate response-type 标头的传递到凭证帮助程序。
  • 对于空提交,git format-patch 命令现在会写一个包含提交标头的输出文件,而不是创建一个空文件。
  • 现在,您可以使用 git blame --contents=<file> <revision> -- <path> 命令,来通过指向 <revision> 的历史记录查找在 <file> 内容开始的行的源。
  • git log --format 命令现在接受 %(decorate) 占位符来进一步自定义,以扩展 --decorate 选项提供的能力。

Jira:RHEL-17103[1]

Git LFS rebase 到版本 3.4.1

Git 大文件存储(LFS)扩展已更新至版本 3.4.1,与之前发布的版本 3.2.0 相比,它提供了 bug 修复、增强和性能改进。

主要变更包括:

  • git lfs push 命令现在从标准输入读取引用和对象 ID。
  • Git LFS 现在在不依赖 Git 来处理替代的 remote。
  • Git LFS 现在支持 WWW-Authenticate response-type 标头作为凭证帮助程序。

Jira:RHEL-17102[1]

提高了 Python 解释器的性能

RHEL 8 中所有支持的 Python 版本现在使用 -O3 优化标记编译,这是上游中的默认设置。因此,您可以观察到 Python 应用程序和解释器本身的性能的提高。

以下公告发行版本提供了这些更改:

Jira:RHEL-49614[1], Jira:RHEL-49636, Jira:RHEL-49644, Jira:RHEL-49638

4.10. 编译器和开发工具

新的 GCC 工具集 14

GCC Toolset 14 是一个编译器工具集,提供开发工具的最新版本。它以 AppStream 存储库中的 Software Collection 的形式作为 Application Stream 提供。

以下工具和版本由 GCC Toolset 14 提供,以及 RHEA-2024:8851 公告的发布:

  • GCC 14.2
  • GDB 14.2
  • binutils 2.41
  • annobin 12.70
  • dwz 0.14

要安装 GCC Toolset 14,以 root 用户身份运行以下命令:

# yum install gcc-toolset-14

要从 GCC Toolset 14 运行工具:

$ scl enable gcc-toolset-14 <tool>

要运行一个 shell 会话,其中 GCC Toolset 14 中的工具版本会覆盖这些工具的系统版本:

$ scl enable gcc-toolset-14 bash

GCC Toolset 14 组件也可以在 gcc-toolset-14-toolchain 容器镜像中找到。

如需更多信息,请参阅 GCC Toolset 14使用 GCC Toolset

Jira:RHEL-34596[1], Jira:RHEL-30411

GCC Toolset 14: GCC rebase 到版本 14.2

在 GCC Toolset 14 中,GNU Compiler Collection (GCC)已更新至版本 14.2,并发布 RHEA-2024:8864 公告。

主要变更包括:

  • 优化和诊断改进
  • 新的 强化型 umbrella 选项,该选项启用一组强化标记
  • new -fharden-control-flow-redundancy 选项,用于检测将控制传输到功能中间的攻击
  • 新的 strub type 属性来控制功能和变量的堆栈清理属性
  • 一个 new -finline-stringops 选项,用于强制扩展某些 mem* 功能
  • 支持新的 OpenMP 5.1、5.2 和 6.0 功能
  • 多个新的 C23 功能
  • 多个新的 C++23 和 C++26 功能
  • 几个已解决的 C++ 缺陷报告
  • 新的并改进了对 C++20、C++23 和 C++26 的实验性支持
  • 支持 64 位 ARM 架构中的新 CPU
  • 64 位 Intel 架构中的多个新指令集架构(ISA)扩展,例如:AVX10.1、AVX-VNNI-INT16、SHA512 和 SM4
  • GCC 的静态分析器中的新警告
  • 某些警告被更改为错误 ; 详情请参阅 移植到 GCC 14
  • 各种程序错误修复

有关 GCC 14 中更改的更多信息,请参阅上游 GCC 发行注记

Jira:RHEL-30412[1]

GCC Toolset 14: GDB rebase 到版本 14.2

在 GCC Toolset 14 中,GDB 已更新至版本 14.2,并发布 RHBA-2024:8862 公告。以下段落列出了 GDB 12.1 后的显著变化。

概述:

  • info breakpoints 命令现在将禁用的断点的启用的断点位置显示为 y- 状态。
  • 添加了对使用 ELF 的 Zstandard (ELFCOMPRESS_ZSTD)压缩的 debug 部分的支持。
  • 默认情况下,文本用户界面(TUI)不再为当前位置指示器突出显示的源代码和汇编代码设置样式。要重新启用样式,请使用新命令 set style tui-current-position
  • 新的 $_inferior_thread_count 方便变量包含当前 下级中活跃线程的数量。
  • 对于具有多个代码位置的断点,GDB 现在使用 <breakpoint_number>.<location_number> 语法打印代码位置。
  • 当命中断点时,GDB 现在将 $_hit_bpnum$_hit_locno 方便变量设置为命中断点数和代码位置号。现在,您可以使用 disable $_hit_bpnum 命令禁用最后命中的断点,或使用 disable $_hit_bpnum.$_hit_locno 命令禁用特定的断点代码位置。
  • 添加了对 NO_COLOR 环境变量的支持。
  • 添加了对大于 64 位的整数类型的支持。
  • 您可以使用多目标功能配置的新命令来配置远程目标功能集(请参阅命令中的 set remote <name>-packetshow remote <name>-packet)。
  • 添加了对 Debugger Adapter 协议的支持。
  • 现在,您可以使用新的 inferior 关键字使断点特定于下级(请参阅命令中的 breakwatch )。
  • 您现在可以使用新的 $_shell() 方便函数来在表达式评估过程中执行 shell 命令。

对现有命令的更改:

  • break,watch

    • 现在,在 breakwatch 命令中多次使用 threadtask 关键字会导致错误,而不是使用关键字的最后一个实例的线程或任务 ID。
    • 现在在同一 breakwatch 命令中使用多个 threadtaskinferior 关键字无效。
  • printf,dprintf

    • printfdprintf 命令现在接受 %V 输出格式,它与 print 命令格式化表达式的方式相同。您还可以通过在命令后使用方括号 […​] 中的附加打印选项来修改输出格式,例如:printf "%V[-array-indexes on]", <array>
  • list

    • 您现在可以使用 . 参数打印当前帧内执行点附近的位置,或者,如果 inferior 尚未启动,则打印 main() 函数开头附近的位置。
    • 尝试列出文件中比可用的更多的源行,现在会发出一个警告,让用户参考 . 参数。
  • 记录用户定义的

    • 现在,可以记录用户定义的别名。

新命令:

  • set print nibbles [on|off] (默认值: off), show print nibbles - 控制 print/t 命令是否以四位组(nibbles)的形式显示二进制值。
  • set debug infcall [on|off] (默认值: off),show debug infcall - 显示关于 inferior 功能调用的额外的调试信息。
  • set debug solib [on|off] (默认值: off), show debug solib - 打印有关共享的库处理的额外的调试信息。
  • set print characters <LIMIT> show print charactersprint -characters <LIMIT> - 控制可打印一个字符串的多少个字符。
  • set debug breakpoint [on|off] (默认值: off), show debug breakpoint - 打印有关断点插入和删除的额外的调试信息。
  • maintenance print record-instruction [ N - 打印给定指令的记录信息。
  • maintenance info frame-unwinders - 以优先级顺序(第一个最高)列出当前有效的帧 unwinders。
  • maintenance wait-for-index-cache - 等待所有等待对索引缓存的写完成。
  • info main - 打印有关主符号的信息,以识别程序的入口点。
  • set tui mouse-events [on|off](默认值:on ),show tui mouse-events - 控制鼠标点击事件是否被发送到 TUI 和 Python 扩展( 当为 on时)或终端(当为 off 时)。

机器接口(MI)更改:

  • MI 版本 1 已被删除。
  • MI 现在在反向执行历史记录耗尽时报告 no-history
  • -break-insert 命令的输出中,threadtask 断点字段不再被报告两次。
  • 不再对不存在的线程 ID 创建特定于线程的断点。
  • -stack-list-arguments-stack-list-locals-stack-list-variables-var-list-children 命令中的 --simple-values 参数现在将引用类型视为 simple(如果目标是 simple)。
  • -break-insert 命令现在接受一个新的 -g thread-group-id 选项,来创建特定于 inferior 的断点。
  • 断点创建的通知和 -break-insert 命令的输出现在可以包括一个可选的用于主断点和每个断点位置的 inferior 字段。
  • 说明 breakpoint-hit 停止原因的异步记录现在包含一个可选字段 locno,在多位置断点时提供代码位置号。

GDB Python API 中的更改:

  • 事件

    • 一个新的 gdb.ThreadExitedEvent 事件。
    • 一个新的 gdb.executable_changed 事件注册表,它发出具有 progspacereload 属性的 ExecutableChangedEvent 对象。
    • 新的 gdb.events.new_progspacegdb.events.free_progspace 事件注册表,它发出 NewProgpspaceEventFreeProgspaceEvent 事件类型。这两个事件类型都有一个属性 progspace,来指定添加到 GDB 中,或从 GDB 删除的 gdb.Progspace 程序空间。
  • gdb.unwinder.Unwinder

    • name 属性现在是只读的。
    • __init__ 函数的 name 参数必须是 str 类型,否则会引发一个 TypeError
    • enabled 属性现在只接受 bool 类型。
  • gdb.PendingFrame

    • 新方法:name,is_valid,pc,language,find_sal,blockfunction,它们镜像 gdb.Frame 类的类似方法。
    • create_unwind_info 函数的 frame-id 参数现在可以是一个整数,也可以是 pcspspecial 属性的 gdb.Value 对象。
  • 一个新的 gdb.unwinder.FrameId 类,它可以传递给 gdb.PendingFrame.create_unwind_info 函数。
  • gdb.disassembler.DisassemblerResult 类不能再细分。
  • gdb.disassembler 模块现在包含样式支持。
  • 一个新的 gdb.execute_mi (COMMAND, [ARG]…​) 函数,它调用 GDB/MI 命令,并将结果返回为一个 Python 字典。
  • 一个新的 gdb.block_signals() 函数,它返回一个阻止 GDB 需要处理的任何信号的上下文管理器。
  • threading.Thread 类的一个新 gdb.Thread 子类,它在 start 方法中调用 gdb.block_signals 函数。
  • gdb.parse_and_eval 函数有一个新的 global_context 参数,来限制对全局符号的解析。
  • gdb.Inferior

    • 一个新 arguments 属性,其保留 inferior 的命令行参数(如果已知)。
    • 一个新的 main_name 属性,它包含 inferior 的 main 函数的名称(如果已知)。
    • 新的 clear_envset_envunset_env 方法,它们可在启动前修改 inferior 的环境。
  • gdb.Value

    • 一个分配对象值的新的 assign 方法。
    • 一个将类数组值转换为数组的新的 to_array 方法。
  • gdb.Progspace

    • 一个新的 objfile_for_address 方法,它返回涵盖给定地址的 gdb.Objfile 对象(如果存在)。
    • 一个新的 symbol_file 属性,保存对应于 Progspace.filename 变量的 gdb.Objfile 对象(或 None ,如果文件名为 None)。
    • 一个新的 executable_filename 属性,其保存具有由 exec-filefile 命令设置的文件名的字符串,如果没有设置可执行文件,则为 None
  • gdb.Breakpoint

    • 一个新的 inferior 属性,其包含特定于 inferior 的断点的 inferior ID(一个整数),或 None,如果没有设置这样的断点 。
  • gdb.Type

    • 新的 is_array_likeis_string_like 方法,其反映一个类型可以是类似数组或类似字符串,无论类型的实际类型代码是什么。
  • 一个新的 gdb.ValuePrinter 类,可用作应用 pretty-printer 的结果的基类。
  • 一个新实现的 gdb.LazyString.__str__ 方法。
  • gdb.Frame

    • 一个新的 static_link 方法,它返回嵌套的函数帧的外部帧。
    • 一个新的 gdb.Frame.language 方法,它返回帧语言的名称。
  • gdb.Command

    • GDB 现在重新格式化 gdb.Command 类的 doc 字符串和 gdb.Parameter 子类,以便在使用字符串作为 help 输出前从每行中删除不必要的前导空格。
  • gdb.Objfile

    • 一个新的 is_file 属性。
  • 一个新的 gdb.format_address (ADDRESS, PROGSPACE, ARCHITECTURE) 函数,其使用与从反汇编器中打印地址、符号和偏移信息时相同的格式。
  • 一个新的 gdb.current_language 函数,它返回当前语言的名称。
  • 一个用于包装 GDB 的反汇编器的新 Python API,包括 gdb.disassembler.register_disassembler(DISASSEMBLER, ARCH), gdb.disassembler.Disassembler ,gdb.disassembler.DisassembleInfogdb.disassembler.builtin_disassemble(INFO, MEMORY_SOURCE)gdb.disassembler.DisassemblerResult
  • 一个新的 gdb.print_options 函数,它以 gdb.Value.format_string 函数接受的形式返回当前打印选项的字典。
  • gdb.Value.format_string 函数

    • 如果在 print 或其他类似的操作中被调用,GDB.Value.format_string 现在使用 print 命令提供的格式。
    • gdb.Value.format_string 现在接受 summary 关键字。
  • 一个新的 gdb.BreakpointLocation Python 类型。
  • gdb.register_window_type 方法现在限制一组可接受的窗口名称。

特定于架构的更改:

  • AMD 和 Intel 64 位构架

    • 添加了对使用 libopcodes 库的反汇编器样式的支持,该库现在被默认使用。您可以使用 set style disassembler * 命令修改反汇编器输出的样式。要使用 Python Pygments 样式,请使用新的 maintenance set libopcodes-styling 命令。
  • 64 位 ARM 架构

    • 添加了为内存标记(MTE)转储内存标签数据的支持。
    • 添加了对 Scalable Matrix Extension 1 和 2 (SME/SME2)的支持。有些功能仍被视为实验性的或 alpha,例如,ZA 状态的手动函数调用,或者根据 DWARF 跟踪 Scalable Vector Graphics(SVG)更改。
    • 添加了对线程本地存储(TLS)变量的支持。
    • 添加了对硬件观察点的支持。
  • 64 位 IBM Z 架构

    • 对 IBM Z 目标上新 arch14 指令的记录和重播的支持,但专用的函数辅助指令 NNPA 除外。
  • IBM Power Systems, Little Endian

    • 添加了对 POWER11 的基本启用支持。

Jira:RHELDOCS-18598[1], Jira:RHEL-36225, Jira:RHEL-36518

GCC Toolset 14: annobin rebase 到版本 12.70

在 GCC Toolset 14 中,annobin 已更新至版本 12.70,发布 RHBA-2024:8863 公告。测试二进制文件的 annobin 工具的更新集合提供了各种 bug 修复,引入了新测试,并更新了构建和使用 GCC 的较新版本、Clang、LLVM 和 Go 编译器的工具。通过增强的工具,您可以检测以非标准方式构建的程序中的新问题。

Jira:RHEL-30409[1]

GCC Toolset 13:GCC 支持 AMD Zen 5

随着 RHBA-2024:8829 公告的发布,GCC 的 GCC Toolset 13 版本增加了对 AMD Zen 5 处理器微架构的支持。要启用支持,请使用 -march=znver5 命令行选项。

Jira:RHEL-36524[1]

LLVM Toolset 更新至 18.1.8

LLVM 工具集已使用 RHBA-2024:8828 公告的发行版本 18.1.8 更新至版本 18.1.8。

重要的 LLVM 更新:

  • 以下指令的持续表达式变体已被删除: ,lshr,ashr,zext,sext,fptrunc,fpext,fptoui,fptosi,uitofp,sitofp.
  • 添加了 llvm.exp10 内部。
  • 添加了全局变量的 code_model 属性。
  • 改进了 AArch64, AMDGPU, PowerPC, RISC-V, SystemZ 和 x86 架构的后端。
  • LLVM 工具已被改进。

显著 Clang 的改进:

  • C++20 功能支持:

    • clang 不再执行一个定义规则(ODR)检查全局模块片段中的声明。要启用更严格的行为,请使用 the -Xclang -fno-skip-odr-check-in-gmf 选项。
  • C++23 功能支持:

    • 添加了一个新的诊断标记 -Wc++23-lambda-attributes,以警告使用 lambdas 的属性。
  • C++2c 功能支持:

    • clang 现在允许在同一范围内多次使用 _ 字符作为占位符变量名称。
    • 属性现在在属性参数中需要未评估的字符串,这些参数是字符串文字。
    • 弃用了 C++26 枚举的算术转换。
    • 改进了模板参数初始化的规格。
  • 有关更改的完整列表,请参阅 Clang 的上游发行注记

Clang 中的 ABI 更改:

  • 在 x86_64 的 SystemV ABI 之后,__int128 参数不会在注册和堆栈插槽之间分割。
  • 如需更多信息,请参阅 Clang 中的 ABI 更改列表

重要的后向不兼容的变化:

  • 模板运算符的反向参数顺序中的 bug 修复会破坏之前在 C++17 中接受的代码。
  • GCC_INSTALL_PREFIX CMake 变量(其设置 default -gcc-toolchain=)已被弃用,并将被删除。在配置文件中指定 --gcc-install-dir= or --gcc-triple= 选项。
  • 预编译标头(PCH)生成(-c -xc-header and -c -xc++-header)现在的默认扩展名称是 .pch 而不是 .gch
  • when -include a.h 探测 a.h.gch 文件,如果 include 不是 Clang PCH 文件或目录,则 include 现在会忽略 a.h.gch 文件或包含任何 Clang PCH 文件的目录。
  • 修复了导致 __has_cpp_attribute__has_c_attribute 返回错误值的错误。
  • 在添加反向 operator== 时查找匹配的 operator!= 的错误已被修复。
  • 功能模板的名称规定已更改为接受可以在其模板参数列表中超载函数或 requires-clauses。
  • 现在,在系统标头和宏上默认启用 -Wenum-constexpr-conversion 警告。在下一个 Clang 版本中,它将被转换为一个硬(非可升级)错误。
  • 名为 modules 的 C++20 导入模块的路径不再被硬编码。您必须从命令行指定所有依赖的模块。
  • 无法使用导入 <module> 来导入模块 ;Clang 使用显式构建的模块。
  • 如需了解更多详细信息,请参阅 可能破坏更改的列表

如需更多信息,请参阅 LLVM 发行注记Clang 发行注记

LVM Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-30907[1]

Rust Toolset rebase 到版本 1.79.0

Rust Toolset 已更新至版本 1.79.0,并发布 RHBA-2024:8827 公告。从以前可用的 1.75.0 版本开始,显著的改进包括:

  • 新的 offset_of!
  • 支持 C 字符串字面值
  • 支持内联 const 表达式
  • 支持相关类型位置中的绑定
  • 改进了自动临时生命周期扩展
  • 调试 unsafe 前提条件的断言

Rust Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-30073[1]

Go Toolset rebase 到版本 1.22

Go Toolset 已更新至 1.22 版本,并发布 RHSA-2024:8876 公告。

主要改进包括:

  • for 循环中的变量现在为每个迭代创建,防止意外共享错误。另外,对于循环,现在可以对整数进行范围。
  • 工作区中的命令现在可以使用工作区依赖项的 vendor 目录。
  • go get 命令不再支持旧的 GOPATH 模式。此更改不会影响 go buildgo test 命令。
  • vet 工具已更新,以匹配 for 循环的新行为。
  • 通过为每个堆对象保留基于类型的垃圾回收元数据,提高了 CPU 性能。
  • Go 现在提供改进的简化优化和更好的配置集指导优化支持,从而获得更高的性能。
  • 新的 math/rand/v2 软件包可用。
  • Go 现在提供增强的 HTTP 路由模式,支持方法和通配符。

如需更多信息,请参阅 Go 上游发行注记。

Go Toolset 是一个滚动应用程序流,只支持最新版本。如需更多信息,请参阅 Red Hat Enterprise Linux 应用程序流生命周期 文档。

Jira:RHEL-46972[1]

elfutils rebase 到版本 0.190

elfutils 软件包已更新至版本 0.190。主要改进包括:

  • libelf 库现在支持相对重定位(RELR)。
  • libdw 库现在识别 .debug_[ct]u_index 部分。
  • eu-readelf 工具现在支持一个新的 -Ds,--use-dynamic --symbol 选项,来通过动态片段,而不是使用 ELF 部分显示符号。
  • eu-readelf 工具现在可以显示 .gdb_index 版本 9。
  • 新的 eu-scrlines 工具编译与指定的 DWARF 或 ELF 文件关联的源文件的列表。
  • debuginfod 服务器模式已对文件名表示中的 60% 的压缩进行了更改(这需要重新索引)。

Jira:RHEL-15924

valgrind 更新至 3.22

valgrind 软件包已更新至版本 3.22。主要改进包括:

  • valgrind memcheck 现在检查提供给 C 函数 memalignposix_memalignaligned_alloc 的值,以及与 new 运算符对齐的 C++17 是否为有效的对齐值。
  • valgrind memcheck 现在支持对 C++14 大小的 和 C++17 对齐的 newdelete 运算符的不匹配检测。
  • 添加了对 DWARF 调试信息的延迟读取的支持,从而在安装了 debuginfo 软件包时加快启动速度。

Jira:RHEL-15926

移动了 Clang 资源目录

Clang 存储其内部标头和库的 Clang 资源目录,已从 /usr/lib64/clang/17 移到 /usr/lib/clang/17

Jira:RHEL-9299

新的 grafana-selinux 软件包

在以前的版本中,grafana-server 的默认安装作为 unconfined_service_t SELinux 类型运行。这个更新添加了新的 grafana-selinux 软件包,其包含 grafana-server 的 SELinux 策略,并且默认使用 grafana-server 安装了。因此,grafana-server 现在作为 grafana_t SELinux 类型运行。

Jira:RHEL-7503

更新了 GCC Toolset 13

GCC Toolset 13 是一个编译器工具集,其提供开发工具的最新版本。它以 AppStream 存储库中的 Software Collection 的形式作为 Application Stream 提供。

RHEL 8.10 中引入的显著变化包括:

  • GCC 编译器已更新至版本 13.2.1,它提供了上游 GCC 中可用的很多 bug 修复和增强。
  • binutils 现在通过 -march=znver5 编译器切换支持基于 znver5 核的 AMD CPU。
  • annobin 已更新至版本 12.32。
  • GCC 的 annobin 插件现在对存储在目标文件的注释默认使用更压缩的格式,使目标文件更小,链接时间更快,特别是在大型复杂的程序中。

GCC Toolset 13 提供了以下工具和版本:

工具版本

GCC

13.2.1

GDB

12.1

binutils

2.40

dwz

0.14

annobin

12.32

要安装 GCC Toolset 13,以 root 用户身份运行以下命令:

# yum install gcc-toolset-13

要运行 GCC Toolset 13 中的工具:

$ scl enable gcc-toolset-13 tool

要运行一个 shell 会话,其中 GCC Toolset 13 中的工具版本会覆盖这些工具的系统版本:

$ scl enable gcc-toolset-13 bash

如需更多信息,请参阅 GCC Toolset 13使用 GCC Toolset

Jira:RHEL-25405[1]

LLVM Toolset rebase 到版本 17.0.6

LLVM Toolset 已更新至版本 17.0.6。

主要改进包括:

  • 不透明指针迁移现已完成。
  • 在中端优化中删除了对传统通行管理器的支持。

Clang 更改:

  • C++20 协程不再被视为实验性的。
  • 改进了 std::move 函数的代码生成,以及未优化构建中类似的代码生成。

如需更多信息,请参阅 LLVMClang 上游发行注记。

Jira:RHEL-9028

Rust Toolset rebase 到版本 1.75.0

Rust Toolset 已更新至版本 1.75.0。

主要改进包括:

  • 恒定的评估时间现在是无限制的
  • 清理程序 panic 消息
  • 货物注册认证
  • async fn 和特征中的不透明返回类型

Jira:RHEL-12964

Go Toolset rebase 到版本 1.21.0

Go Toolset 已更新至版本 1.21.0。

主要改进包括:

  • 已添加了 minmaxclear 内置。
  • 已添加了对配置文件指导的优化的官方支持。
  • 现在,更精确地定义了软件包初始化顺序。
  • 改进了类型延迟。
  • 改进了向后兼容性支持。

如需更多信息,请参阅 Go 上游发行注记。

Jira:RHEL-11872[1]

papi 支持新的处理器微架构

有了此增强,您可以使用以下处理器微架构上存在的 papi 事件访问性能监控硬件:

  • AMD Zen 4
  • 第四代 Intel® Xeon® 可扩展处理器

Jira:RHEL-9336[1], Jira:RHEL-9320, Jira:RHEL-9337

ant rebase 到版本 1.10.9

ant:1.10 模块流已更新至版本 1.10.9。此版本使用提供方类和提供方参数提供对代码签名的支持。

注意

更新的 ant:1.10 模块流仅提供 antant-lib 软件包。与 Ant 相关的剩余软件包在不支持的 CodeReady Linux Builder (CRB)存储库中的 javapackages-tools 模块中分发,且没有被更新。

更新的 ant:1.10 模块流中的软件包无法与 javapackages-tools 模块中的软件包并行使用。如果要使用与 Ant 相关的软件包的完整集合,您必须卸载 ant:1.10 模块,并禁用它,启用 CRB 存储库,并安装 javapackages-tools 模块。

Jira:RHEL-5365

新软件包:maven-openjdk21

maven:3.8 模块流现在包含 maven-openjdk21 子软件包,它为 OpenJDK 21 提供了 Maven JDK 绑定,并配置了 Maven ,以使用系统 OpenJDK 21。

Jira:RHEL-17126[1]

cmake rebase 到版本 3.26

cmake 软件包已更新至版本 3.26。主要改进包括:

  • 添加了对 C17 和 C18 语言标准的支持。
  • cmake 现在可以查询操作系统识别信息的 /etc/os-release 文件。
  • 添加了对 CUDA 20 和 nvtx3 库的支持。
  • 添加了对 Python 稳定的应用程序二进制接口的支持。
  • 在 Simplified Wrapper 和 Interface Generator (SWIG)工具中添加了对 Perl 5 的支持。

Jira:RHEL-7396

4.11. 身份管理

身份管理用户现在可以使用外部身份提供方来验证到 IdM

有了此增强,您现在可以将身份管理(IdM)用户与支持 OAuth 2 设备授权流的外部身份提供方(IdP)关联。这些 IdP 的示例包括 Keycloak 的红帽构建、Microsoft Entra ID(以前的 Azure 活动目录)、GitHub 和 Google。

如果 IdM 中存在 IdP 引用和关联的 IdP 用户 ID,您可以使用它们,以使 IdM 用户可以在外部 IdP 进行身份验证。在外部 IdP 执行身份验证和授权后,IdM 用户会收到一个具有单点登录功能的 Kerberos 票据。用户必须使用 RHEL 8.7 或更高版本中提供的 SSSD 版本进行身份验证。

Jira:RHELPLAN-123140[1]

ipa rebase 到版本 4.9.13

ipa 软件包已从 4.9.12 版本更新至 4.9.13。主要变更包括:

  • 现在,IdM 副本的安装针对所选服务器进行,不仅用于 Kerberos 身份验证,也用于所有 IPA API 和 CA 请求。
  • 对于有大量证书的情况,cert-find 命令的性能已显著提高。
  • ansible-freeipa 软件包已从版本 1.11 rebase 到 1.12.1。

如需更多信息,请参阅 上游发行注记

Jira:RHEL-16936

删除过期的 KCM Kerberos 票据

在以前的版本中,如果您试图向 Kerberos 凭证管理器(KCM)添加新凭证,且您已达到存储空间限制,新凭证将被拒绝。用户存储空间受 max_uid_ccaches 配置选项的限制,该选项的默认值为 64。使用此更新,如果您已达到存储空间限制,您的最早过期的凭证被删除,新凭证被添加到 KCM 中。如果没有过期的凭证,操作失败并返回一个错误。要防止这个问题,您可以使用 kdestroy 命令删除凭证来释放一些空间。

Jira:SSSD-6216

支持本地用户的 bcrypt 密码哈希算法

使用此更新,您可以为本地用户启用 bcrypt 密码哈希算法。要切换到 bcrypt 哈希算法:

  1. 通过将 pam_unix.so sha512 设置更改为 pam_unix.so blowfish 来编辑 /etc/authselect/system-auth/etc/authselect/password-auth 文件。
  2. 应用更改:

    # authselect apply-changes
  3. 使用 passwd 命令更改用户的密码。
  4. /etc/shadow 文件中,验证哈希算法是否被设置为 $2b$,表示 bcrypt 密码哈希算法现在被使用。

Jira:SSSD-6790

idp Ansible 模块允许将 IdM 用户与外部 IdP 关联

有了此更新,您可以使用 idp ansible-freeipa 模块将身份管理(IdM)用户与支持 OAuth 2 设备授权流的外部身份提供方(IdP)关联。如果 IdM 中存在 IdP 引用和关联的 IdP 用户 ID,则您可以使用它们为 IdM 用户启用 IdP 身份验证。 

在外部 IdP 执行身份验证和授权后,IdM 用户会收到一个具有单点登录功能的 Kerberos 票据。用户必须使用 RHEL 8.7 或更高版本中提供的 SSSD 版本进行身份验证。

Jira:RHEL-16938

IdM 现在支持 idoverrideuseridoverridegroupidview Ansible 模块

有了此更新,ansible-freeipa 软件包包含以下模块:

idoverrideuser
允许您为存储在身份管理(IdM) LDAP 服务器中的用户覆盖用户属性,例如,用户登录名称、主目录、证书或 SSH 密钥。
idoverridegroup
允许您为存储在 IdM LDAP 服务器中的组覆盖属性,例如,组的名称、其 GID 或描述。
idview
允许您组织用户和组 ID 覆盖,并将其应用到特定的 IdM 主机。

未来,您将能够使用这些模块使 AD 用户能够使用智能卡登录到 IdM。

Jira:RHEL-16933

ansible-freeipa 中启用了 DNS 区域管理的委托

现在,您可以使用 dnszone ansible-freeipa 模块来委托 DNS 区域管理。使用 dnszone 模块的 permissionmanagedby 变量来设置每区域访问委托权限。

Jira:RHEL-19133

ansible-freeipa ipauseripagroup 模块现在支持一个新的 renamed 状态

有了此更新,您可以使用 ansible-freeipa ipauser 模块中的 renamed 状态来更改现有 IdM 用户的用户名。您还可以在 ansible-freeipa ipagroup 模块中使用此状态来更改现有 IdM 组的组名称。

Jira:RHEL-4963

runasuser_group 参数现在在 ansible-freeipa ipasudorule 中提供

有了此更新,您可以使用 ansible-freeipa ipasudorule 模块为 sudo 规则设置 RunAs Users 的组。选项已在身份管理(IdM)命令行界面和 IdM Web UI 中提供。

Jira:RHEL-19129

389-ds-base rebase 到版本 1.4.3.39

389-ds-base 软件包已更新至版本 1.4.3.39。

Jira:RHEL-19028

HAProxy 协议现在支持 389-ds-base 软件包

在以前的版本中,目录服务器不会区分代理和非代理客户端之间的进入连接。有了此更新,您可以使用新的 nsslapd-haproxy-trusted-ip 多值配置属性来配置信任的代理服务器的列表。当在 cn=config 条目下配置了 nsslapd-haproxy-trusted-ip 时,目录服务器通过额外的 TCP 标头,使用 HAProxy 协议接收客户端 IP 地址,以便可以正确地评估访问控制指令(ACI),并可以记录客户端流量。

如果一个不信任的代理服务器发起了一个绑定请求,目录服务器会拒绝请求,并将以下信息记录到错误日志文件中:

[time_stamp] conn=5 op=-1 fd=64 Disconnect - Protocol error - Unknown Proxy - P4

Jira:RHEL-19240

samba rebase 到版本 4.19.4

samba 软件包已升级到上游版本 4.19.4,与之前的版本相比,它提供了 bug 修复和增强。最显著的更改有:

  • smbget 工具中的命令行选项已被重命名并删除,以获得一致的用户体验。但是,这可能会破坏现有的脚本或使用该工具的作业。有关新选项的进一步详情,请查看 smbget --help 命令和 smbget (1) 手册页。
  • 如果启用了 winbind debug traceid 选项,则 winbind 服务现在额外记录以下字段:

    • traceid :跟踪属于同一请求的记录。
    • depth :跟踪请求嵌套级别。
  • Samba 不再使用自己的加密实现,现在完全使用 GnuTLS 库提供的加密功能。
  • directory name cache size 选项被删除。

请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1)协议已被弃用,并将在以后的发行版本中删除。

在启动 Samba 前备份数据库文件。当 smbdnmbdwinbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。

更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。

Jira:RHEL-16483[1]

4.12. Web 控制台

RHEL web 控制台现在可以生成 Ansible 和 shell 脚本

在 web 控制台中,您可以在 kdump 配置页面上轻松访问和复制自动化脚本。然后,您可以使用生成的脚本在多个系统上实现特定的 kdump 配置。

Jira:RHELDOCS-17060[1]

简化了在存储上管理存储和调整分区大小

Web 控制台的 Storage 部分现已重新设计。新的设计提高了所有视图的可见性。overview 页面现在在一个全面的表中显示所有存储对象,这使得更容易直接执行操作。您可以点击任何行来查看详细信息,以及任何补充的操作。另外,您现在可以从 Storage 部分调整分区大小。

Jira:RHELDOCS-17056[1]

4.13. Red Hat Enterprise Linux 系统角色

ad_integration RHEL 系统角色现在支持配置动态 DNS 更新选项

有了此更新,在与活动目录(AD)集成时,ad_integration RHEL 系统角色支持使用 SSSD 为动态 DNS 更新配置选项。默认情况下,SSSD 将尝试自动刷新 DNS 记录:

  • 当身份提供方上线时(总是)。
  • 在指定的间隔(可选配置);默认情况下,AD 提供方每 24 小时更新 DNS 记录。

您可以在 ad_integration 中使用新变量来更改这些设置和其他设置。例如,您可以将 ad_dyndns_refresh_interval 设置为 172800,将 DNS 记录刷新间隔更改为 48 小时。有关角色变量的详情,请查看 /usr/share/doc/rhel-system-roles/ad_integration/ 目录中的资源。

Jira:RHELDOCS-17372[1]

metrics RHEL 系统角色现在支持配置 PMIE Webhook

有了此更新,您可以使用 metrics RHEL 系统角色的 metrics_webhook_endpoint 变量自动配置 global webhook_endpoint PMIE 变量。这可让您为接收有关重要性能事件消息的环境提供一个自定义 URL,且通常与外部工具,如 Event-Driven Ansible 一起使用。

Jira:RHEL-18170

bootloader RHEL 系统角色

此更新引入了 bootloader RHEL 系统角色。您可以使用此功能在 RHEL 系统上稳定且一致的引导装载程序和内核配置。有关要求、角色变量和示例 playbook 的详情,请参阅 /usr/share/doc/rhel-system-roles/bootloader/ 目录中的 README 资源。

Jira:RHEL-3241

logging 角色支持输出模块中的常规队列和常规操作参数

在以前的版本中,无法使用 logging 角色配置常规队列参数和常规操作参数。有了此更新,logging RHEL 系统角色支持在输出模块中配置常规队列参数和常规操作参数。

Jira:RHEL-15440

支持新的 ha_cluster 系统角色功能

ha_cluster 系统角色现在支持以下功能:

  • 启用包含弹性存储软件包的存储库,如 dlmgfs2。访问存储库需要弹性存储订阅。
  • 配置隔离级别,允许集群使用多个设备来隔离节点。
  • 节点属性的配置。

有关配置实现这些功能的参数的详情,请参考 使用 ha_cluster RHEL 系统角色配置高可用性集群

Jira:RHEL-4624[1], Jira:RHEL-22108, Jira:RHEL-14090

配置 fapolicyd 的新的 RHEL 系统角色

使用新的 fapolicyd RHEL 系统角色,您可以使用 Ansible playbook 来管理和配置 fapolicyd 框架。fapolicyd 软件框架根据用户定义的策略来控制应用程序的执行。

Jira:RHEL-16542

network RHEL 系统角色现在支持新的路由类型

有了此增强,您现在可以使用 network RHEL 系统角色来使用以下路由类型:

  • blackhole
  • prohibit
  • unreachable

Jira:RHEL-21491[1]

rhc 角色中设置显示名称的新的 rhc_insights.display_name 选项

现在,您可以使用新的 rhc_insights.display_name 参数来配置或已更新注册到 Red Hat Insights 的系统的显示名称。参数允许您根据自己的偏好命名系统,以便在 Insights 清单中轻松地管理系统。如果您的系统已与 Red Hat Insights 连接,请使用参数来更新现有的显示名称。如果没有在注册时明确设置显示名称,则其被默认设置为主机名。无法自动将显示名称还原回主机名,但可以手动设置。

Jira:RHEL-16965

RHEL 系统角色现在支持 LVM 快照管理

有了这个增强,您可以使用新的 snapshot RHEL 系统角色创建、配置和管理 LVM 快照。

Jira:RHEL-16553

postgresql RHEL 系统角色现在支持 PostgreSQL 16

安装、配置、管理和启动 PostgreSQL 服务器的 postgresql RHEL 系统角色现在支持 PostgreSQL 16。

有关此系统角色的更多信息,请参阅 使用 postgresql RHEL 系统角色安装和配置 PostgreSQL

Jira:RHEL-18963

rhc 角色中设置 Ansible 主机名的新的 rhc_insights.ansible_host 选项

您现在可以使用新的 rhc_insights.ansible_host 参数为已注册到 Red Hat Insights 的系统配置或更新 Ansible 主机名。设置时,参数会将 /etc/insights-client/insights-client.conf 文件中的 ansible_host 配置改为您选择的 Ansible 主机名。如果您的系统已经与 Red Hat Insights 连接,则此参数将更新现有的 Ansible 主机名。

Jira:RHEL-16975

journald 系统角色现在支持 ForwardToSyslog 标志

journald RHEL 系统角色中,journald_forward_to_syslog 变量控制收到的消息是否应转发到传统的 syslog 守护进程。此变量的默认值为 false。有了此增强,您现在可以通过在清单中将 journald_forward_to_syslog 设置为 true 来配置 ForwardToSyslog 标志。因此,当使用远程日志记录系统时,如 Splunk ,日志位于 /var/log 文件中。

Jira:RHEL-21123

只有当在 logging 系统角色中设置了 ratelimit_interval 时才使用 ratelimit_burst 变量

在以前的版本中,在 logging RHEL 系统角色中,当没有设置 ratelimit_interval 变量时,角色将使用 ratelimit_burst 变量来设置 rsyslog ratelimit.burst 设置。但没有影响,因为还需要设置 ratelimit_interval

有了此增强,如果没 ratelimit_interval 有设置,则角色不会设置 ratelimit.burst。如果要设置 ratelimit.burst,您必须同时设置 ratelimit_intervalratelimit_burst 变量。

Jira:RHEL-19047

logging 系统角色中使用 logging_max_message_size 参数,而不是 rsyslog_max_message_size

在以前的版本中,即使 rsyslog_max_message_size 参数不被支持,logging RHEL 系统角色还是使用 rsyslog_max_message_size 而不是使用 logging_max_message_size 参数。此增强确保 logging_max_message_size 被使用,而不是使用 rsyslog_max_message_size 来为日志消息设置最大大小。

Jira:RHEL-15038

ad_integration RHEL 系统角色现在支持自定义 SSSD 设置

在以前的版本中,当使用 ad_integration RHEL 系统角色时,无法使用角色在 sssd.conf 文件的 [sssd] 部分中添加自定义设置。有了此增强,ad_integration 角色现在可以修改 sssd.conf 文件,因此您可以使用自定义 SSSD 设置。

Jira:RHEL-21134

ad_integration RHEL 系统角色现在支持自定义 SSSD 域配置设置

在以前的版本中,当使用 ad_integration RHEL 系统角色时,无法使用角色在 sssd.conf 文件的域配置部分中添加自定义设置。有了此增强,ad_integration 角色现在可以修改 sssd.conf 文件,因此您可以使用自定义 SSSD 设置。

Jira:RHEL-17667

logging RHEL 系统角色的新 logging_preserve_fqdn 变量

在以前的版本中,无法使用 logging 系统角色配置完全限定域名(FQDN)。此更新添加了可选的 logging_preserve_fqdn 变量,您可以使用它在 rsyslog 中设置 preserveFQDN 配置选项,来在 syslog 条目中使用完整的 FQDN 而不是短名称。

Jira:RHEL-15933

支持创建卷,而无需创建文件系统

有了此增强,您可以通过指定 fs_type=un format 选项来创建新卷,而无需创建文件系统。

同样,可以通过在确保禁用了安全模式的情况下,使用同样的方法删除现有文件系统。

Jira:RHEL-16213

rhc 系统角色现在支持 RHEL 7 系统

现在,您可以使用 rhc 系统角色管理 RHEL 7 系统。将 RHEL 7 系统注册到 Red Hat Subscription Management (RHSM)和 Insights,并开始使用 rhc 系统角色管理系统。

使用 rhc_insights.remediation 参数对 RHEL 7 系统没有影响,因为 Insights Remediation 功能目前在 RHEL 7 上不可用。

Jira:RHEL-16977

新的 mssql_ha_prep_for_pacemaker 变量

在以前的版本中,microsoft.sql.server RHEL 系统角色没有一个控制是否为 Pacemaker 配置 SQL Server 的变量。此更新添加了 mssql_ha_prep_for_pacemaker。如果您不想为 Pacemaker 配置您的系统,并希望使用另一个 HA 解决方案,请将变量设置为 false

Jira:RHEL-19204

sshd 角色现在配置基于证书的 SSH 身份验证

使用 sshd RHEL 系统角色,您现在可以配置和管理多个 SSH 服务器,以使用 SSH 证书进行身份验证。这使得 SSH 身份验证更安全,因为证书是由可信 CA 签名的,并提供精细的访问控制、到期日期和集中管理。

Jira:RHEL-5985

selinux 角色现在支持在 disabled 模式下配置 SELinux

有了这个更新,selinux RHEL 系统角色支持在 SELinux 设置为 disabled 的节点上配置 SELinux 端口、文件上下文和布尔值映射。在系统上将 SELinux 启用为 permissive 或 enforcing 模式之前,这对于配置场景很有用。

Jira:RHEL-15871

selinux 角色现在在指定不存在的模块时会打印一条消息

使用此版本,当您在 selinux_modules.path 变量中指定一个不存在的模块时,selinux RHEL 系统角色会打印一条错误消息。

Jira:RHEL-19044

4.14. 虚拟化

RHEL 现在支持虚拟机的多 FD 迁移

有了此更新,现在支持虚拟机的多个文件描述符(multi-FD)迁移。多 FD 迁移使用多个并行连接来迁移虚拟机,这可以通过利用所有可用的网络带宽来加快进程。

建议您在高速网络(20 Gbps 及更高)上使用此功能。

Jira:RHELDOCS-16970[1]

IBM Z 上的安全执行虚拟机现在支持加密协处理器

使用此更新,您现在可以将加密协处理器作为中介设备分配给 IBM Z 上带有 IBM 安全执行的虚拟机(VM)。

通过将加密协处理器作为中介设备分配给安全执行虚拟机,您现在可以使用硬件加密,而不损害虚拟机的安全性。

Jira:RHEL-11597[1]

您现在可以在 web 控制台中将 SPICE 替换为 VNC

有了此更新,您可以使用 web 控制台将现有虚拟机(VM)中的 VNC 协议替换 SPICE 远程显示协议。

因为对 SPICE 协议的支持在 RHEL 8 中已弃用,并将在 RHEL 9 中被删除,因此使用 SPICE 协议的虚拟机无法迁移到 RHEL 9。但是,RHEL 8 虚拟机默认使用 SPICE,因此您必须从 SPICE 切换到 VNC 才能成功迁移。

Jira:RHELDOCS-18289[1]

RHEL web 控制台中的新虚拟化功能

在这个版本中,RHEL web 控制台在 Virtual Machines 页面中包含新功能。您现在可以:

  • 在虚拟机(VM)创建过程中添加 SSH 公钥。此公钥将存储在新创建的虚拟机上指定的非 root 用户的 ~/.ssh/authorized_keys 文件中,它为您提供了对指定用户帐户的即时 SSH 访问。
  • 在创建新存储池时,选择 pre-formatted block device 类型。这是 physical disk device 类型的更强大的替代方案,因为它防止意外重新格式化原始磁盘设备。

此更新还在 Virtual Machines 页面中更改了一些默认行为:

  • Add disk 对话框中,Always attach 选项现在被默认设置。

Jira:RHELDOCS-18323[1]

4.15. 云环境中的 RHEL

删除生成的配置文件的新的 cloud-init clean 选项

已为 cloud-init 工具添加了 cloud-init clean --configs 选项。您可以使用此选项删除实例上 cloud-init 生成的不需要的配置文件。例如,要删除定义网络设置的 cloud-init 配置文件,请使用以下命令:

cloud-init clean --configs network

Jira:RHEL-7312[1]

EC2 上的 RHEL 实例现在支持 IPv6 IMDS 连接

有了此更新,Amazon Elastic Cloud Compute (EC2)上的 RHEL 8 和 9 实例可以使用 IPv6 协议连接到实例元数据服务(IMDS)。因此,您可以在具有双栈 IPv4 和 IPv6 连接的 EC2 上使用 cloud-init 配置 RHEL 实例。另外,您可以在仅 IPv6 子网中使用 cloud-init 启动 RHEL 的 EC2 实例。

Jira:RHEL-7278

4.16. 容器

Container Tools 软件包已更新

现在提供更新的 Container Tools 软件包,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。与之前版本相比,重要的程序错误修复和增强包括:

Podman v4.9 中的显著变化:

  • 现在,您可以使用 podman --module <your_module_name> 命令来按需加载模块,并覆盖系统和用户配置文件。
  • 添加了一个新的带有一组 create,set,removeupdate 子命令的 podman farm 命令。使用这些命令,您可以将构建分发到为不同架构运行 podman 的机器。
  • 添加了一个新的 podman-compose 命令,它使用外部 compose 提供方,如 Docker compose 来运行 Compose 工作负载。
  • podman build 命令现在支持 --layer-label--cw 选项。
  • podman generate systemd 命令已弃用。使用 Quadlet ,来在 systemd 下运行容器和 pod。
  • podman build 命令现在支持具有 HereDoc 语法的 Containerfiles
  • podman machine initpodman machine set 命令现在支持一个新的 --usb 选项。使用这个选项以允许 QEMU 提供方的 USB 透传。
  • podman kube play 命令现在支持一个新的 --publish-all 选项。使用此选项来公开主机上所有的 containerPorts。

有关显著变化的更多信息,请参阅 上游发行注记

Jira:RHELPLAN-167794[1]

Podman 现在支持 containers.conf 模块

您可以使用 Podman 模块来加载一组预先确定的配置。Podman 模块是 Tom 的 Obvious Minimal Language (TOML)格式的 containers.conf 文件。

这些模块位于以下目录或其子目录中:

  • 对于无根用户:$HOME/.config/containers/containers.conf.modules
  • 对于 root 用户:/etc/containers/containers.conf.modules,或 /usr/share/containers/containers.conf.modules

您可以使用 podman --module <your_module_name> 命令按需加载模块,以覆盖系统和用户配置文件。使用模块涉及以下事实:

  • 您可以使用 --module 选项多次指定模块。
  • 如果 <your_module_name> 是绝对路径,则配置文件将被直接加载。
  • 相对路径是相对于前面提到的三个模块目录而解析的。
  • $HOME 中的模块覆盖 /etc//usr/share/ 目录中的模块。

如需更多信息,请参阅 上游文档

Jira:RHELPLAN-167830[1]

Podman v4.9 RESTful API 现在显示进度数据

有了此增强,Podman v4.9 RESTful API 现在在拉取镜像或将镜像推送到注册中心时显示进度数据。

Jira:RHELPLAN-167822[1]

SQLite 现在作为 Podman 的默认数据库后端被完全支持

使用 Podman v4.9 ,以前作为技术预览提供的 Podman 的 SQLite 数据库后端现在被完全支持。在与容器元数据一起使用时,SQLite 数据库提供更好的稳定性、性能和一致性。SQLite 数据库后端是 RHEL 8.10 新安装的默认后端。如果您从以前的 RHEL 版本升级,则默认后端为 BoltDB。

如果您在 containers.conf 文件中使用 database_backend 选项显式配置了数据库后端,则 Podman 将继续使用指定的后端。

Jira:RHELPLAN-168179[1]

管理员可以使用 nftables 为防火墙规则设置隔离

您可以在没有安装 iptables 的系统上使用 Netavark (Podman 容器网络堆栈)。在以前的版本中,当使用容器网络接口(CNI)网络(Netavark 的前身)时,无法在没有安装 iptables 的系统上设置容器网络。有了此增强,Netavark 网络堆栈可在仅安装了 nftables 的系统上工作,并改进了自动生成的防火墙规则的隔离。

Jira:RHELDOCS-16955[1]

Containerfile 现在支持多行指令

您可以在 Containerfile 文件中使用多行 HereDoc 指令(Here 文档表示法)来简化此文件,并减少执行多个 RUN 指令导致的镜像层数。

例如,原始的 Containerfile 可以包含以下 RUN 指令:

RUN dnf update
RUN dnf -y install golang
RUN dnf -y install java

您可以使用 HereDoc 表示法,而不是多个 RUN 指令:

RUN <<EOF
dnf update
dnf -y install golang
dnf -y install java
EOF

Jira:RHELPLAN-168184[1]

Toolbx 现在可用

使用 Toolbx,您可以将开发和调试工具、编辑器和软件开发套件(SDK)安装到 Toolbx 完全可变的容器中,而不影响基本操作系统。Toolbx 容器基于 registry.access.redhat.com/ubi8.10/toolbox:latest 镜像。

Jira:RHELDOCS-16241[1]

第 5 章 可用的 BPF 功能

本章提供了此 Red Hat Enterprise Linux 8 次版本的内核中 Berkeley Packet Filter (BPF)功能的完整列表。表包括以下列表:

本章包含 bpftool feature 命令自动生成的输出。

表 5.1. 系统配置和其他选项
选项

unprivileged_bpf_disabled

1 (bpf()系统调用限制为特权用户,无需恢复。)

JIT 编译器

1(启用)

JIT 编译器强化

1(为非特权用户启用)

JIT 编译器 kallsyms 导出

1(为 root 用户启用)

非特权用户的 JIT 的内存限制

528482304

CONFIG_BPF

y

CONFIG_BPF_SYSCALL

y

CONFIG_HAVE_EBPF_JIT

y

CONFIG_BPF_JIT

y

CONFIG_BPF_JIT_ALWAYS_ON

y

CONFIG_DEBUG_INFO_BTF

y

CONFIG_DEBUG_INFO_BTF_MODULES

n

CONFIG_CGROUPS

y

CONFIG_CGROUP_BPF

y

CONFIG_CGROUP_NET_CLASSID

y

CONFIG_SOCK_CGROUP_DATA

y

CONFIG_BPF_EVENTS

y

CONFIG_KPROBE_EVENTS

y

CONFIG_UPROBE_EVENTS

y

CONFIG_TRACING

y

CONFIG_FTRACE_SYSCALLS

y

CONFIG_FUNCTION_ERROR_INJECTION

y

CONFIG_BPF_KPROBE_OVERRIDE

y

CONFIG_NET

y

CONFIG_XDP_SOCKETS

y

CONFIG_LWTUNNEL_BPF

y

CONFIG_NET_ACT_BPF

m

CONFIG_NET_CLS_BPF

m

CONFIG_NET_CLS_ACT

y

CONFIG_NET_SCH_INGRESS

m

CONFIG_XFRM

y

CONFIG_IP_ROUTE_CLASSID

y

CONFIG_IPV6_SEG6_BPF

n

CONFIG_BPF_LIRC_MODE2

n

CONFIG_BPF_STREAM_PARSER

y

CONFIG_NETFILTER_XT_MATCH_BPF

m

CONFIG_BPFILTER

n

CONFIG_BPFILTER_UMH

n

CONFIG_TEST_BPF

m

CONFIG_HZ

1000

bpf() syscall

可用

大型程序大小限制

可用

表 5.2. 可用的程序类型和支持的帮助程序
程序类型可用的帮助程序

socket_filter

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

kprobe

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_override_return, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_get_task_stack, bpf_snprintf_btf, bpf_per_cpu_cpu_tr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sched_cls

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_key, bpf_skb_key bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_forward_opt bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_sk_fullsk_fulls bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_ktime_get_coarse_ns, bpf_check_mt, bpf_for_each_map_elem, bpf_snprintf

sched_act

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_pop, bpf_skb_get_key, bpf_skb_key bpf_skb_set_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_forward_opt bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_skb_adjust_room, bpf_skb_get_xfrm_state, bpf_skb_load_bytes_relative, bpf_fib_lookup, bpf_skb_cgroup_id, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_sk_fullsk_fulls bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sk_get, bpf_sk_storage_delete, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_ktime_get_coarse_ns, bpf_check_mt, bpf_for_each_map_elem, bpf_snprintf

tracepoint

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

xdp

bpf_map_lookup_elem, bpf_map_update_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_redirect, bpf_perf_event_output, bpf_csum_diff, bpf_get_current_task, bpf_get_numa_node_id, bpf_xdp_adjust_head, bpf_redirect_map, bpf_xdp_adjust_meta, bpf_xdp_adjust_tail, bpf_fib_lookup, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_tcp_gen_syncookie, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf

perf_event

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_bt bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_skb

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_load_bytes_relative, bpf_skb_cgroup_id, bpf_get_local_storage, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_set_ce, bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_timewait_sock、 bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sock

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_id, bpf_get_socket_cookie, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sk_storage_get, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_in

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_skc_to_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_out

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_xmit

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_l3_csum_replace, bpf_l4_csum_replace, bpf_tail_call, bpf_clone_redirect, bpf_get_cgroup_classid, bpf_skb_get_tunnel_key, bpf_skb_tunnel_key, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_under_group, bpf_skb_undercgroup bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_lwt_push_encap, bpf_map_push_elem, bpf_map_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_csum_level、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_waits_ocks bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sock_ops

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_sock_map_update, bpf_getsockopt, bpf_s_ockops_ock_flags_set, bpf_sock_hash_update, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_load_hdr_opt, bpf_store_hdr_opt, bpf_reserve_hdr_opt, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sk_skb

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes, bpf_tail_call, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_current_task, bpf_skb_change_tail, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_skb_change_head, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_skb_adjust_room, bpf_sk_redirect_map, bpf_sk_redirect_hash, bpf_sk_lookup_tcp, bpf_sk_lookup_udp、bpf_sk_release、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、bpf_spin_unlock、bpf_skc_lookup_tcp bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_skc_to_tcp6_sock、bpf_skc_to_tcp_sock、bpf_skc_to_tcp_timewait_sock、 bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_device

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_ bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf, bpf_ringbuf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

sk_msg

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_msg_redirect_map, bpf_msg_apply_bytes、bpf_msg_cork_bytes、bpf_msg_pull_data, bpf_msg_redirect_hash, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_spin_lock, bpf_spin_unlock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

raw_tracepoint

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sock_addr

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_get_cgroup_classid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_id, bpf_get_socket_cookie, bpf_setsockopt, bpf_getsockopt, bpf_bind, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_skc_lookup_tcp, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_get_netns_cookie, bpf_get_get_current_tance_id_id bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_bt, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lwt_seg6local

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_cgroup_classid, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_csum_diff, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_skb_pull_data, bpf_get_numa_node_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

lirc_mode2

不支持

sk_reuseport

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes、bpf_get_current_task、bpf_get_numa_node_id、bpf_get_socket_cookie、bpf_skb_load_bytes_relative, bpf_sk_sk_reuseport, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_ bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf, bpf_ringbuf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

flow_dissector

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_skb_load_bytes、bpf_get_current_task、bpf_get_numa_node_id、bpf_map_push_elem、bpf_map_pop_elem、bpf_map_peek_elem、bpf_spin_lock、 bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_ocks, bpf_skc_waits_waits_ocks, bpf_ringbuf_ock bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sysctl

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_bt, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

raw_tracepoint_writable

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_pid_tgid, bpf_get_current_uid_gid, bpf_get_current_comm, bpf_perf_event_read, bpf_perf_event_output, bpf_get_stackid, bpf_get_current_current_task bpf_current_task_under_cgroup, bpf_get_numa_node_id, bpf_probe_read_str, bpf_perf_event_read_value, bpf_get_stack, bpf_get_current_cgroup_id, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_send_signal, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_send_signal_thread, bpf_jiffies64, bpf_get_ns_current_pid_tgid, bpf_get_current_ancestor_cgroup_id, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_serve bpf_ringbuf_submit、bpf_ringbuf_discard、bpf_ringbuf_query、bpf_get_task_stack、bpf_snprintf_btf、bpf_per_cpu_ptr、bpf_this_cpu_ptr, bpf_get_current_task_btf, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

cgroup_sockopt

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_get_current_uid_gid, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_tcp_sock, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_ktime_get_boot_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

tracing

不支持

struct_ops

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_probe_read, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_skb_store_bytes、bpf_l3_csum_replace、bpf_l4_csum_replace、bpf_tail_call、bpf_clone_redirect、bpf_get_current_pid_tgid、bpf_get_gid、bpf_uid_gid、bpf_get_current_m bpf_get_cgroup_classid, bpf_skb_vlan_push, bpf_skb_vlan_vlan_pop, bpf_skb_get_tunnel_key, bpf_skb_set_tunnel_key, bpf_perf_event_read, bpf_redirect, bpf_get_route_realm, bpf_perf_event_output, bpf_skb_load_bytes, bpf_get_stackid, bpf_csum_diff, bpf_skb_get_tunnel_opt, bpf_skb_set_tunnel_opt, bpf_skb_change_proto, bpf_skb_change_type, bpf_skb_under_cgroup, bpf_get_hash_recalc, bpf_get_current_task, bpf_current_task_under_cgroup, bpf_skb_change_tail bpf_skb_pull_data, bpf_csum_update, bpf_set_hash_invalid, bpf_get_numa_node_id, bpf_skb_change_head, bpf_xdp_adjust_head, bpf_probe_read_str, bpf_get_socket_cookie, bpf_get_socket_uid, bpf_set_hash, bpf_setsockopt, bpf_skb_adjust_room, bpf_redirect_map, bpf_sk_redirect_map, bpf_ocks_map, bpf_xdp_adjust_meta, bpf_perf_event_read_value, bpf_perf_prog_read_value, bpf_getsockopt, bpf_override_return, bpf_sock_ops_cb_flags_set, bpf_msg_redirect_map, bpf_msg_apply_bytes、bpf_msg_cork_bytes、bpf_msg_pull_data、bpf_bind、bpf_xdp_adjust_tail、bpf_skb_get_xfrm_state、bpf_get_stack、bpf_skb_load_bytes_reativel bpf_fib_lookup、bpf_sock_hash_update、bpf_msg_redirect_hash、bpf_sk_redirect_hash、bpf_lwt_push_encap、bpf_lwt_seg6_store_bytes、bpf_lwt_seg6_adjust_rhs bpf_lwt_seg6_action, bpf_rc_repeat, bpf_rc_keydown, bpf_skb_cgroup_id, bpf_get_current_cgroup_id, bpf_get_local_storage, bpf_sk_sk_reuseport, bpf_skb_ancestor_cgroup_id, bpf_sk_lookup_tcp, bpf_sk_lookup_udp, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_msg_push_data, bpf_msg_pop_data, bpf_rc_pointer_rel, bpf_spin_lock, bpf_spin_unlock, bpf_sk_fullsock, bpf_tcp_sock, bpf_skb_ecn_ce_ce bpf_get_listener_sock, bpf_skc_lookup_tcp, bpf_tcp_check_syncookie, bpf_sysctl_get_name, bpf_sysctl_get_current_value, bpf_sysctl_get_new_value, bpf_sysctl_set_new_value, bpf_strtol, bpf_strtoul, bpf_sk_storage_get, bpf_sk_storage_delete, bpf_send_signal, bpf_tcp_gen_syncookie, bpf_skb_output, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_tcp_send_ack, bpf_send_signal_thread, bpf_jiffies64, bpf_read_branch_records, bpf_get_ns_current_pid_tgid, bpf_xdp_output, bpf_get_netns_cookie, bpf_get_current_ancestor_cgroup_id, bpf_sk_assign, bpf_ktime_get_boot_ns, bpf_seq_printf, bpf_seq_write, bpf_sk_cgroup_id, bpf_sk_ancestor_cgroup_id, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringf_discard, bpf_ringbuf_query, bpf_csum_level, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock、bpf_get_task_stack、bpf_load_hdr_opt、bpf_store_hdr_opt、bpf_reserve_hdr_opt、bpf_inode_storage_get、bpf_inode_storage_delete、 bpf_d_path, bpf_copy_from_user, bpf_snprintf_btf, bpf_seq_printf_btf, bpf_skb_cgroup_classid, bpf_redirect_neigh, bpf_per_cpu_ptr, bpf_this_cpu_ptr, bpf_redirect_peer, bpf_task_storage_get, bpf_task_storage_delete, bpf_get_current_task_btf, bpf_bprm_opts_set, bpf_ktime_get_coarse_ns, bpf_ima_inode_hash, bpf_sock_from_file, bpf_check_mtu, bpf_for_each_map_elem, bpf_snprintf, bpf_sys_bpf, bpf_btf_find_by_name_kind, bpf_sys_close

ext

不支持

lsm

不支持

sk_lookup

bpf_map_lookup_elem, bpf_map_elem, bpf_map_delete_elem, bpf_ktime_get_ns, bpf_get_prandom_u32, bpf_get_smp_processor_id, bpf_tail_call, bpf_perf_event_output, bpf_get_current_task, bpf_get_numa_node_id, bpf_sk_release, bpf_map_push_elem, bpf_map_pop_elem, bpf_map_peek_elem, bpf_spin_lock, bpf_spin_unlock, bpf_probe_read_user, bpf_probe_read_kernel, bpf_probe_read_user_str, bpf_probe_read_kernel_str, bpf_jiffies64, bpf_sk_assign, bpf_ktime_get_ns, bpf_ringbuf_output, bpf_ringbuf_reserve, bpf_ringbuf_submit, bpf_ringbuf_discard, bpf_ringbuf_query, bpf_skc_to_tcp6_sock, bpf_skc_to_tcp_sock, bpf_skc_to_tcp_timewait_sock, bpf_skc_to_tcp_request_sock, bpf_skc_to_udp6_sock, bpf_snprintf_btf, bpf_per_cpu_ptr, bpf_skc_to_cpu_ptr, bpf_ktime_get_coarse_ns, bpf_for_each_map_elem, bpf_snprintf

表 5.3. 可用的映射类型
映射类型可用

hash

数组

prog_array

perf_event_array

percpu_hash

percpu_array

stack_trace

cgroup_array

lru_hash

lru_percpu_hash

lpm_trie

array_of_maps

hash_of_maps

devmap

sockmap

cpumap

xskmap

sockhash

cgroup_storage

reuseport_sockarray

percpu_cgroup_storage

queue

queue

sk_storage

devmap_hash

struct_ops

ringbuf

inode_storage

task_storage

第 6 章 程序错误修复

这部分描述了 Red Hat Enterprise Linux 8.10 中修复的对用户有严重影响的 bug。

6.1. 安装程序和镜像创建

安装程序现在在 Kickstart 文件中接受额外的时区定义

Anaconda 切换到不同的、更严格的验证时区选择的方法。这导致一些时区定义(如日本)不再有效,尽管在之前的版本中被接受。必须更新具有这些定义的传统的 Kickstart 文件。否则,它们将默认为 Americas/New_York 时区。

有效时区的列表以前从 pytz Python 库中的 pytz.common_timezones 获取。此更新更改了 timezone Kickstart 命令的使用 pytz.all_timezones 的验证设置,它是 common_timezones 列表的超集,并允许指定大量的时区。这个更改可确保为 Red Hat Enterprise Linux 6 创建的旧 Kickstart 文件仍然可以指定有效的时区。

注意:此更改仅适用于 timezone Kickstart 命令。图形和基于文本的交互界面中的时区选择保持不变。用于有有效时区选择的 Red Hat Enterprise Linux 8 的现有 Kickstart 文件不需要任何更新。

Jira:RHEL-13151[1]

6.2. 安全性

使用 ip vrf 管理虚拟路由的规则被添加到 SELinux 策略中

您可以使用 ip vrf 命令管理其他网络服务的虚拟路由。在以前的版本中,selinux-policy 不包含支持此用法的规则。有了此更新,SELinux 策略规则允许从 ip 域到 httpdsshdnamed 域的显式转换。当 ip 命令使用 setexeccon 库调用时,这些转换适用。

Jira:RHEL-9981[1]

SELinux 策略允许 staff_r 受限用户运行 sudo crontab

在以前的版本中,SELinux 策略不包含允许受限用户运行 sudo crontab 命令的规则。因此,staff_r 角色中的受限用户无法使用 sudo crontab 编辑其他用户的 crontab 计划。此更新向策略添加了一个规则,因此 staff_r 用户可以使用 sudo crontab 编辑其他用户的 crontab 计划。

Jira:RHEL-1388

SELinux 策略包含其他服务和应用程序的规则

这个 selinux-policy 软件包版本包含其它规则。最值得注意的是,sysadm_r 角色中的用户可以输入以下命令:

  • sudo traceroute
  • sudo tcpdump
  • sudo dnf

Jira:RHEL-15398, Jira:RHEL-1679, Jira:RHEL-9947

unconfined_login 设为 off 时,SELinux 策略拒绝非受限用户的 SSH 登录

在以前的版本中,当 unconfined_login 布尔值被设置为 off 时,SELinux 策略缺少一条拒绝非受限用户通过 SSH 登录的规则。因此,如果 unconfined_login 设为 off,用户仍然可以使用 SSHD 作为非受限域来登录。此更新向 SELinux 策略中添加了一条规则,因此,当 unconfined_loginoff 时,用户无法通过 sshd 作为受限来登录。

Jira:RHEL-1628

SELinux 策略允许 rsyslogd 输入受限命令

在以前的版本中,SELinux 策略缺少允许 rsyslogd 守护进程进入 SELinuxconfined 命令的规则,如 systemctl。因此,作为 omprog 指令的参数执行的命令失败。此更新向 SELinux 策略中添加规则,以便作为 omprog 的参数运行的 /usr/libexec/rsyslog 目录中的可执行文件位于 syslogd_unconfined_script_t 非受限域中。因此,作为 omprog 的参数执行的命令成功完成。

Jira:RHEL-10087

大型 SSHD 配置文件不再阻止登录

在以前的版本中,当 SSHD 配置文件大于 256 KB 时,在登录到系统时会出现一个错误。因此,远程系统无法访问。此更新删除了文件大小限制,因此在 SSHD 配置文件大于 256 KB 时,用户可以登录到系统。

Jira:RHEL-5279

6.3. 软件管理

yum needs-restarting --reboothint 命令现在建议重启来更新 CPU 微码

要完全更新 CPU 微码,您必须重启系统。在以前的版本中,当安装了包含更新的 CPU 微码的 microcode_ctl 软件包时,yum needs-restarting --reboothint 命令不建议重启。有了此更新,这个问题已被解决,yum needs-restarting --reboothint 现在建议重启来更新 CPU 微码。

Jira:RHEL-17356

systemd 现在可以正确管理 librepo 创建的 /run/user/0 目录

在以前的版本中,如果以 root 用户身份登录前,从 Insights 客户端调用 librepo 函数,则可能使用错误的 SELinux 上下文类型创建 /run/user/0 目录。这防止 systemd 在您从 root 注销后清理目录。

有了此更新,librepo 软件包现在根据 SELinux 策略中定义的默认文件系统标记规则来设置一个默认创建类型。因此,systemd 现在可以正确管理由 librepo 创建的 /run/user/0 目录。

Jira:RHEL-10720

systemd 现在可以正确管理 libdnf创建的 /run/user/0 目录

在以前的版本中,如果在以 root 用户身份登录前,从 Insights 客户端调用 libdnf 函数,可能会使用错误的 SELinux 上下文类型创建 /run/user/0 目录。这防止 systemd 在您从 root 注销后清理目录。

有了此更新,libdnf 软件包现在根据 SELinux 策略中定义的默认文件系统标记规则来设置一个默认创建类型。因此,systemd 现在可以正确管理 libdnf 创建的 /run/user/0 目录。

Jira:RHEL-6421

6.4. Shell 和命令行工具

ReaR 现在决定在安装 BIOS 和 UEFI 引导装载程序时存在 BIOS 引导装载程序

在以前的版本中,在混合引导装载程序设置(UEFI 和 BIOS)中,当使用 UEFI 和 BIOS 引导时,Relax-and-Recover (ReaR)只恢复 UEFI 引导装载程序,而不是 BIOS 引导装载程序。这会导致系统具有 GUID 分区表 (GPT)、BIOS 引导分区,而不是 BIOS 引导装载程序。在这种情况下,ReaR 无法创建救援镜像,尝试使用 rear mkbackuprear mkrescue 命令生成一个备份或救援镜像会失败,并显示以下错误消息:

ERROR: Cannot autodetect what is used as boot loader, see default.conf about 'BOOTLOADER'.

有了这个更新,ReaR 决定 UEFI 和 BIOS 引导装载程序的存在,恢复它们,并在 GPT 中使用 BIOS 引导分区的系统上没有遇到 BIOS 引导装载程序时不会失败。因此,带有混合 UEFI 和 BIOS 引导装载程序设置的系统可以多次备份和恢复。

Jira:RHEL-24729[1]

ReaR 在恢复过程中不再使用 logbsize,sunitswidth 挂载选项

在以前的版本中,当使用与 MKFS_XFS_OPTIONS 配置设置的原始参数不同的参数恢复 XFS 文件系统时,Relax-and-Recover (ReaR)使用适用于原始文件系统的挂载选项挂载这个文件系统,但不适用于恢复的文件系统。因此,当 ReaR 运行 mount 命令时,磁盘布局重新创建会失败,并显示以下错误消息:

wrong fs type, bad option, bad superblock on and missing codepage or helper program, or other error.

内核日志显示以下消息之一:

 logbuf size must be greater than or equal to log stripe size
alignment check failed: sunit/swidth vs. agsize

有了这个更新,ReaR 避免在挂载重新创建的 XFS 文件系统时使用 logbsizesunitswidth 挂载选项。因此,当使用 MKFS_XFS_OPTIONS 配置设置时,磁盘布局重新创建成功。

Jira:RHEL-17354[1]

在具有小的精简池元数据大小的系统上,ReaR 恢复不再失败

在以前的版本中,当保存带有精简池的 LVM 卷组的布局时,ReaR 不保存池元数据卷的大小。在恢复过程中,ReaR 会重新创建具有默认大小的池,即使系统使用了非默认池元数据大小。

因此,当原始池元数据大小小于默认大小,且卷组中没有可用空间时,系统恢复过程中的布局重新创建会失败,并在日志中显示类似这些示例的消息:

Insufficient free space: 230210 extents needed, but only 230026 available

或者

Volume group "vg" has insufficient free space (16219 extents): 16226 required.

有了此更新,恢复的系统拥有一个与原始系统同样大小的元数据卷。因此,恢复具有小的精简池元数据大小的系统,且卷组中没有额外的可用空间成功完成。

Jira:RHEL-17353[1]

当对 logind-session-monitor 事件调用 polkit 时,pkla-compact 二进制文件被执行

在以前的版本中,对 polkit 操作的授权的重新验证由所有用户的任何一个 logind-session-monitor 事件触发。每个 CheckAuthorization 请求执行 polkit-pkla-compat 二进制文件来检查旧的 .pkla 配置文件,即使系统上没有此类文件,这导致 polkit 守护进程增加了 CPU 使用率。

目前,只观察到与 polkit 操作相关的 logind-session 更改。如果会话的状态发生了变化,则与会话关联的 polkit 对象会触发重新验证(CheckAuthorization)。您必须重新启动(在登录屏幕注销,然后重新登录重启)gnome-shell,以便成功更新。

polkit-pkla-compat 二进制文件现在是一个软依赖项。因此,只有在 /etc/polkit-1/localauthority、/etc/ polkit- 1/localauthority、/etc/polkit-1/localauthority、 /etc/polkit-1/localauthority.conf.d/var/lib/polkit-1/localauthority 及其独立子目录中没有 .pkla 文件时,才能减少 CPU。

Jira:RHEL-34022[1]

6.5. 内核

crash rebase 到版本 8.0.4

crash 工具已升级至版本 8.0.4 ,其提供多个 bug 修复。主要修复包括:

  • 修复了在内核 panic 过程中非 panic CPU 无法停止的一个分段错误。
  • 修复了一个关键错误,即当禁用了 panic_on_oops 内核参数时,错误地阻止内核 panic 。
  • 修复了 crash 工具为使用 CONFIG_SLAB_FREELIST_HARDENED=y 配置选项编译的内核解析哈希 freelist 指针的问题。
  • 在内核模块内存布局术语中的一个更改,将 module_layout 替换为 module_memory,以更好地指示 crash 工具与内存相关的方面。在此更改前,crash 工具无法启动会话并返回错误消息,例如:

     crash: invalid structure member offset: module_core_size
                 FILE: kernel.c LINE: 3787 FUNCTION: module_init()

Jira:RHEL-9010

tuna 根据需要启动 GUI

在以前的版本中,如果您运行没有任何子命令的 tuna 工具,它将启动 GUI。如果您有显示器,则此行为是需要的。相反的情况,在没有显示器的机器上的 tuna 不能正常退出。有了此更新,tuna 会检测您是否有显示器,并相应地启动或不启动 GUI 。

Jira:RHEL-19179[1]

6.6. 文件系统和存储

multipathd 现在检查设备是否错误地排队 I/O

在以前的版本中,多路径设备会在以下条件下重启排队 I/O,即使它被配置为失败:

  • 多路径设备配置了 queue_if_no_paths 参数设置为几个重试。
  • 路径设备已从没有工作路径的多路径设备中删除,且不再排队 I/O。

有了此更新,这个问题已被解决。因此,如果排队被禁用了,且路径在没有可用路径时被删除了,则多路径设备不再重启排队 I/O。

Jira:RHEL-16563[1]

dm-cryptdm-verity 设备的 no_read_workqueueno_write_workqueuetry_verify_in_taskle 选项被临时禁用了

在以前的版本中,使用 no_read_workqueueno_write_workqueue 选项创建的 dm-crypt 设备和使用 try_verify_in_tasklet 选项创建的 dm-verity 设备导致内存崩溃。因此,随机内核内存被破坏,这导致各种系统问题。有了此更新,这些选项被临时禁用了。请注意,这个修复可能导致 dm-veritydm-crypt 在对某些工作负载执行缓慢。

Jira:RHEL-22232[1]

6.7. 高可用性和集群

现在修正了移动和禁止克隆和包资源的问题

此 bug 修复解决了移动打包和克隆的资源的两个限制:

  • 当用户试图将打包的资源移出包或禁止其在包中运行时,pcs 创建了一个约束,但约束没有影响。这导致移动失败,并显示错误消息。有了此修复,pcs 不允许从包中移动和禁止打包的资源,并打印一条错误消息,表示打包的资源不能从包中移出。
  • 当用户尝试移动包或克隆资源时,pcs 退出,并显示一条错误消息,提示包或克隆资源不能移动。此修复放松了 move 命令的验证。现在,可以移动克隆和包资源。在移动克隆资源时,如果多个克隆实例正在运行,您必须指定一个目标节点。只能移动一个副本包。

Jira:RHEL-7584

pcs status 命令的输出不再显示过期约束的警告

在以前的版本中,当移动集群资源创建了一个临时位置约束时,pcs status 命令即使在约束过期后也会显示一条警告。有了此修复,pcs status 命令会过滤掉过期的约束,它们不再在命令输出中生成一条警告消息。

Jira:RHEL-7668

当 SBD 隔离需要它时,不再允许禁用 auto_tie_breaker 仲裁选项

在以前的版本中,pcs 允许用户禁用 auto_tie_breaker 仲裁选项,即使集群配置需要这个选项,以使 SBD 隔离正常工作。有了此修复,当用户试图在 SBD 隔离需要 auto_tie_breaker 启用的系统上禁用 auto_tie_breaker 时,pcs 会产生一条错误消息。

Jira:RHEL-7731

配置 tlskeep_active_partition_tie_breaker 仲裁设备选项,而不指定 --force

在以前的版本中,当配置仲裁设备时,用户无法在不指定 --force 选项的情况下,为仲裁设备型号 net 配置 tlskeep_active_partition_tie_breaker 选项。有了此更新,配置这些选项不再需要指定 --force

Jira:RHEL-7745

6.8. 编译器和开发工具

系统升级中断后,ldconfig 不再崩溃

在以前的版本中,当处理中断的系统升级后,当处理不完整的共享对象时,ldconfig 工具会在 /usr/lib64 目录中意外停止分段错误。有了此更新,ldconfig 会忽略在系统升级过程中写入的临时文件。因此,在系统升级中断后,ldconfig 不再崩溃。

Jira:RHEL-13720

改进了 glibc 与对依赖项周期中涉及的共享对象使用dlclose 的应用程序的兼容性

在以前的版本中,当使用 glibc 中的 dlclose 函数在依赖项周期中卸载共享对象时,在所有其他对象被卸载前,对象的 ELF 析构函数可能还没有被调用。由于此 ELF 析构函数执行较晚,因此应用程序由于初始共享对象的依赖项已被取消初始化而经历了崩溃和其他错误。

在这个版本中,glibc 已被修复,在启动任何其他 ELF destructors 前首先调用被卸载的直接对象的 ELF destructor。因此,改进了与对依赖项周期中涉及的共享对象使用 dlclose 的应用程序的兼容性,且崩溃不再发生。

Jira:RHEL-10481[1]

改进了 glibc 宽字符写性能

在以前的版本中,glibc 中的宽 stdio 流实现不会将默认缓冲区大小视为足够大,以进行宽字符写操作,而是使用 16 字节回退缓冲区,对性能造成了负面影响。有了此更新,缓冲区管理已被修复,且使用整个写缓冲区。因此,glibc 宽字符写性能提高了。

Jira:RHEL-19824[1]

glibc 动态链接器可防止应用程序使用来自自定义 malloc 实现的 TLS 访问的 reentrant malloc 调用

有些应用程序提供了一个自定义的 malloc 动态内存分配实现,它使用全局动态线程-local 存储(TLS)而不是 initial-exec TLS。在以前的版本中,带有使用全局动态 TLS 的捆绑 malloc 调用的应用程序可能会遇到对应用程序的 malloc 子系统重新发送调用的情况。因此,应用程序 malloc 调用会因为堆栈耗尽或内部数据结构的意外状态而崩溃。

随着 RHBA-2024:5834 公告的发布,glibc 动态链接程序会从自定义 malloc 实现中检测 TLS 访问。如果在 malloc 调用期间检测到 TLS 访问,则会跳过 TLS 处理期间进一步的调用,并会阻止重新分配(reentrant malloc 调用)。

Jira:RHEL-39994

6.9. 身份管理

Certmonger 现在可以正确地更新隐藏的副本中的 KDC 证书

在以前的版本中,当证书即将过期时,certmonger 无法在隐藏的副本中更新 KDC 证书。这是因为续订过程仅将非隐藏的副本视为活动的 KDC。在这个版本中,隐藏的副本被视为活跃的 KDC,certmonger 会在这些服务器上成功更新 KDC 证书。

Jira:RHEL-45908

默认情况下,自动成员插件不再清理组

在以前的版本中,自动重建任务首先删除了所有成员资格值,然后从头开始重新构建成员资格。因此,重建任务的成本很高,特别是如果启用了其他 be_txn 插件。

有了此更新,自动成员插件有了以下改进:

  • 一次只允许一个重建任务。
  • 自动成员插件不再默认清理以前的成员。使用新的 --cleanup CLI 选项,在从头开始重新构建前有意清理成员资格:

    # dsconf slapd-instance_name plugins automember fixup -f objectclass=posixaccount -s sub --cleanup "ou=people,dc=example,dc=com"
  • 改进了日志记录以显示修复进度。

Jira:RHEL-5390[1]

当一个操作完成时,分配的内存现在被释放

在以前的版本中,KCM 为每个操作分配的内存在连接关闭之前不会被释放。因此,对于打开连接并在同一个连接上运行许多操作的客户端应用程序,这导致内存显著增加,因为分配的内存没有在连接关闭之前被释放。有了此更新,只要操作完成了,为操作分配的内存就会马上释放。

JIRA:SSSD-7015

当可信 AD 用户的名称包含混合问题单字符时,IdM 客户端可以正确地检索它们的信息

在以前的版本中,如果您尝试用户查找或用户的身份验证,并且可信活动目录(AD)用户在其名称中包含混合大小写字符,且在 IdM 中使用覆盖进行了配置,则会返回一个错误,阻止用户访问 IdM 资源。

有了此更新,区分大小写的比较被忽略大小写字符的不区分大小写的比较所替代。因此,IdM 客户端现在可以查找 AD 可信域的用户,即使其用户名包含混合大小写字符,且它们在 IdM 中使用覆盖进行了配置。

JIRA:SSSD-6096

如果在更改密码期间没有保留宽限登录,SSSD 将正确返回一个错误

在以前的版本中,如果用户的 LDAP 密码已过期,SSSD 会在用户的初始绑定失败后尝试更改密码,因为没有剩下更多的宽限登录。但是,返回给用户的错误没有指示失败的原因。在这个版本中,如果绑定失败,则更改密码的请求会被取消,SSSD 会返回一条错误消息,表示没有更多宽限期,并且必须以其他方式更改密码。

Jira:SSSD-6184

使用 realm leave 命令从域中删除系统

在以前的版本中,如果在 sssd.conf 文件中为 ad_server 选项设置了多个名称,则运行 realm leave 命令会导致解析错误,且系统也不会从域中删除。有了此更新, ad_server 选项被正确评估,正确的域控制器名称被使用,且系统被正确从域中删除。

Jira:SSSD-6081

KCM 记录到正确的 sssd.kcm.log 文件中

在以前的版本中,logrotate 可以正确地轮转 Kerberos 凭据管理器(KCM)日志文件,但 KCM 会错误地将日志写入旧日志文件 sssd_kcm.log.1 中。如果 KCM 重启了,它会使用正确的日志文件。有了此更新,在 logrotate 被调用后,日志文件会轮转,KCM 可以正确地记录到 sssd_kcm.log 文件中。

Jira:SSSD-6652

realm leave --remove 命令不再要求凭证

在以前的版本中,在运行 realm leave 操作时,realm 工具不会正确检查是否有一个有效的 Kerberos 票据。因此,即使有一个有效的 Kerberos 票据,用户也被要求输入密码。有了此更新,realm 现在可以正确验证是否有一个有效的 Kerberos 票据,在运行 realm leave --remove 命令时,不再要求用户输入密码。

Jira:SSSD-6425

IdM Vault 加密和解密不再在 FIPS 模式下失败

在以前的版本中,IdM Vault 使用 OpenSSL RSA-PKCS1v15 作为默认的填充包装算法。但是,RHEL 中没有一个 FIPS 认证的算法支持 PKCS#1 v1.5 作为 FIPS 批准的模块,导致 IdM Vault 在 FIPS 模式下失败。有了此更新,IdM Vault 支持 RSA-OAEP 填充包装算法作为回退。因此,IdM Vault 加密和解密现在可以在 FIPS 模式下正常工作。

Jira:RHEL-12153[1]

配置了服务器关联性的 CA IdM 副本安装不再失败

在某些情况下,安装没有证书颁发机构(CA)的 IdM 副本会失败,并显示 CA_REJECTED 错误。失败由于 certmonger 服务试图检索证书而发生,并在向复杂拓扑添加新副本时导致不完整的复制详情。

有了此更新,IdM 副本安装过程针对特定的 IdM 服务器而发生,后者提供了必要的服务,如 Kerberos 身份验证、IdM API 和 CA 请求。这在添加新副本时确保完整的复制详情。

Jira:RHEL-4964

Kerberos 密钥分发中心版本 1.20 及更新版本现在处理运行 1.18.2 及更早版本的 KDC 中生成的票据

在以前的版本中,兼容性问题在运行 Kerberos 版本 1.20 或更高版本的密钥分发中心(KDC)和运行 1.18.2 或更早版本的 KDC 之间发生。因此,当运行 Kerberos 1.20 或更高版本的 KDC 签发的证据票据被发送到运行 Kerberos 1.18.2 或更早版本的 KDC 时,旧的 KDC 会拒绝票据授予服务请求,因为它缺少对 AD-SIGNTICKET 属性的支持。

有了这个更新,KDC 的早期版本现在接受运行 Kerberos 1.20 及更新版本的 KDC 生成的证据票据,因为它们在特权属性证书(PAC)存在时,不再需要 AD-SIGNTICKET

Jira:RHEL-10495

dirsrv 文件的 SELinux 标签被移到 DEBUG 日志级别

在以前的版本中,dirsrv 文件的 SELinux 标签具有 INFO 日志级别。有了此更新,用于 dirsrv 文件的 DEBUG 日志级别与用于之前版本中的一样。

Jira:RHEL-5143

当后端被配置为没有相关的后缀时,目录服务器不再导致分段错误

在以前的版本中,如果后端被配置为没有相关的后缀,则目录服务器在启动过程中会有一个分段错误。有了此更新,目录服务器会在尝试访问后缀前检查后缀是否与后端关联。因此,不再发生分段错误。

Jira:RHEL-5107

在放弃分页结果搜索后,目录服务器不再失败

在以前的版本中,在放弃分页结果搜索过程中,竞争条件是堆崩溃和目录服务器失败的原因。有了此更新,竞争条件被修复,目录服务器失败不再发生。

Jira:RHEL-16338

如果您为连接表大小配置了一个自定义值,则目录服务器现在可在升级后正确启动

在以前的版本中,如果您为连接表大小设置了一个自定义值,且 dse.ldif 文件中存在 nsslapd-conntablesize 属性,则目录服务器不会在升级后启动。有了此版本,目录服务器可以在使用 dse.ldif 文件中存在的 nsslapd-conntablesize 升级后正确启动。

Jira:RHEL-14025

当内容同步插件被动态启用时,目录服务器不再失败

在以前的版本中,如果内容同步插件被动态启用,则后操作插件回调导致一个分段错误,因为预操作回调没有注册。有了此更新,后操作插件回调验证内存是否被初始化了,目录服务器不再失败。

Jira:RHEL-5135

6.10. Red Hat Enterprise Linux 系统角色

当 SBD delay-start 值很高时,集群启动不再超时

在以前的版本中,当用户使用 ha_cluster 系统角色在集群中配置 SBD 隔离,并将 delay-start 选项设置为接近或大于 90 秒的值时,集群开始超时。这是因为默认的 systemd 启动超时为 90 秒,系统在 SBD 启动延迟值前达到该值。有了此修复,ha_cluster 系统角色覆盖 systemd 中的 sbd.service 启动超时,因此其高于 delay-start 的值。这允许系统在使用 delay-start 选项的高值也能成功启动。

Jira:RHEL-4684[1]

network 角色验证具有 0.0.0.0/0::/0 的路由规则

在以前的版本中,当路由规则中的 from:to: 设置被设置为 0.0.0.0/0::/0 地址时,network RHEL 系统角色无法配置路由规则,并将设置作为无效拒绝。有了此更新,network 角色允许在路由规则验证中将 0.0.0.0/0::/0 用于 from:to:。因此,角色可以成功地配置路由规则,而没有引发验证错误。

Jira:RHEL-16501

ha_cluster 系统角色现在可以在 qnetd 主机上正确配置防火墙

在以前的版本中,当用户配置了 qnetd 主机,并使用 ha_cluster 系统角色将 ha_cluster_manage_firewall 变量设置为 true 时,角色不会在防火墙中启用高可用性服务。有了此修复,ha_cluster 系统角色现在可在 qnetd 主机上正确配置防火墙。

Jira:RHEL-17874

keylime_server 角色可以正确地报告 registrar 服务状态

在以前的版本中,当 keylime_server 角色 playbook 提供了不正确的信息时,角色会将启动错误地报告为成功。有了此更新,当提供了不正确的信息时,角色可以正确地报告失败,等待打开的端口的超时时间已从大约 300 秒减少到大约 30 秒。

Jira:RHEL-21946

postgresql RHEL 系统角色现在安装正确版本的 PostgreSQL

在以前的版本中,如果您尝试使用 RHEL 管理节点上定义的 postgresql_version: "15" 变量运行 postgresql RHEL 系统角色,则会安装 PostgreSQL 版本 13,而不是版本 15。这个 bug 已被修复,postgresql 角色会安装变量中设置的版本。

Jira:RHEL-21400

podman RHEL 系统角色现在为无根容器正确设置和取消 linger

在以前的版本中,podman RHEL 系统角色没有为无根容器正确设置和取消 linger。因此,为无根用户部署 secret 或容器在某些情况下会产生错误,当在某些情况下删除资源时,无法取消 linger 。有了此更新,podman RHEL 系统角色确保在进行任何 secret 或容器资源管理之前,为无根用户启用 linger,并在没有更多 secret 或容器资源需要管理时,对无根用户取消 linger。因此,角色可以正确地为无根用户管理 linger。

Jira:RHEL-22228

podman RHEL 系统角色现在为无根容器正确设置和取消 linger

在以前的版本中,podman RHEL 系统角色没有为无根容器正确设置和取消 linger。因此,为无根用户部署 secret 或容器在某些情况下会产生错误,当在某些情况下删除资源时,无法取消 linger 。有了此更新,podman RHEL 系统角色确保在进行任何 secret 或容器资源管理之前,为无根用户启用 linger,并在没有更多 secret 或容器资源需要管理时,对无根用户取消 linger。因此,角色可以正确地为无根用户管理 linger。

Jira:RHEL-22229

运行 read-scale 集群并安装 mssql-server-ha 不再需要某些变量

在以前的版本中,如果您使用 mssql RHEL 系统角色配置一个没有某些变量的读规模的集群(mssql_ha_virtual_ip,mssql_ha_login,mssql_ha_login_passwordmssql_ha_cluster_run_role),则角色会失败,并显示错误消息 Variable not defined。但是,运行 read-scale 集群不需要这些变量。角色还尝试安装 mssql-server-ha,而这不是 read-scale 集群所需要的。有了此修复,对这些变量的要求已删除。因此,运行 read-scale 集群可以成功进行,而没有错误消息。

Jira:RHEL-19202

当 kexec_crash_size 文件忙时,Kdump 系统角色可以正常工作

/sys/kernel/kexec_crash_size 文件提供为崩溃内核内存分配的内存区域的大小。

在以前的版本中,当 /sys/kernel/kexec_crash_size 文件忙时,Kdump 系统角色失败。有了此更新,系统角色在文件可用时重试读取它。因此,当文件忙时,系统角色不再失败。

Jira:RHEL-3354

SELinux 角色不再使用 item 循环变量

在以前的版本中,selinux RHEL 系统角色使用 item 循环变量。当您从另一个角色调用 selinux 角色时,这可能会导致以下警告消息:

[WARNING]: TASK: fedora.linux_system_roles.selinux : Restore SELinux labels on filesystem tree: The loop variable 'item' is already in use.
You should set the `loop_var` value in the `loop_control` option for the task to something else to avoid variable collisions and unexpected behavior.

有了此版本,selinux 角色使用 __selinux_item 作为循环变量。因此,item 变量已在使用的警告不再显示,即使您从另一个角色调用 selinux 角色。

Jira:RHEL-19042

不再详细记录 secret 数据

在以前的版本中,一些处理 secret 数据的任务会记录内容。因此,如果使用了详细日志记录,日志会显示 secret 数据。此更新将 no_log: true 指令添加到可以记录 secret 数据的任务中。因此,secret 数据不会被详细记录。

Jira:RHEL-19242

卷 quadlet 服务名称不再失败

在以前的版本中,启动卷服务名称会产生一条类似如下的错误:

Could not find the requested service NAME.volume: host

使用此更新,卷 quadlet 服务名称被改为 basename-volume.service。因此,卷服务启动了且无错误。

如需更多信息,请参阅 卷单元 手册页。

Jira:RHEL-21402

nbde_server 角色现在可以使用套接字覆盖

在以前的版本中,nbde_server RHEL 系统角色假定只有 tangd 套接字覆盖目录中的文件是自定义端口的 override.conf 文件。因此,如果没有端口自定义,角色会删除目录,而不检查其他文件,并且系统在后续运行时会重新创建目录。

有了此版本,角色已被修复,以防止更改端口覆盖文件的属性和在还有其他文件时删除目录。因此,如果 tangd 套接字覆盖文件在角色外管理,角色也可以正常工作。

Jira:RHEL-25509

6.11. 虚拟化

转储失败不再阻止带有安全执行的 IBM Z 虚拟机运行

在以前的版本中,当带有安全执行执行的 IBM Z 虚拟机的转储失败时,虚拟机保持在暂停状态,并被阻止运行。例如,如果磁盘上没有足够的空间,则使用 virsh dump 命令转储虚拟机会失败。

底层代码已被修复,安全执行虚拟机在转储失败后可以成功恢复操作。

Jira:RHEL-16696[1]

第 7 章 技术预览

这部分提供了 Red Hat Enterprise Linux 8.10 中提供的所有技术预览。

如需有关红帽对技术预览功能支持范围的信息,请参阅 技术预览功能支持范围

7.1. 基础架构服务

TuneD 的套接字 API 作为技术预览提供

通过 UNIX 域套接字控制 TuneD 的套接字 API 现在作为技术预览提供。套接字 API 将一对一与 D-Bus API 映射,并为 D-Bus 不可用的情况提供替代通信方法。通过使用套接字 API,您可以控制 TuneD 守护进程来优化性能,并更改各种调优参数的值。套接字 API 默认被禁用,您可以在 tuned-main.conf 文件中启用它。

Bugzilla:2113900

7.2. 网络

AF_XDP 作为技术预览

Address Family eXpress Data Path (AF_XDP) 是设计用于处理高性能数据包。它包含 XDP,并允许通过编程方式将选定的数据包高效地重定向到用户空间应用,以便进一步处理。

Bugzilla:1633143[1]

可作为技术预览的 XDP 功能

红帽提供了以下 eXpress Data Path(XDP)功能作为不受支持的技术预览:

  • 在 AMD 和 Intel 64 位以外的构架中载入 XDP 程序。请注意,libxdp 库不适用于 AMD 和 Intel 64 位的构架。
  • XDP 硬件卸载。

Bugzilla:1889737

TC 的多协议标签交换,作为技术预览提供

Multi-protocol Label Switching(MPLS)是一个内核内数据转发机制,用于跨企业网络路由流量。在 MPLS 网络中,接收数据包的路由器根据附加到数据包的标签决定数据包的其他路由。使用标签时,MPLS 网络可以处理带有特定特征的数据包。例如,您可以添加 tc 过滤器,以一致的方式管理从特定端口接收的数据包或执行特定类型的流量。

数据包进入企业网络后,MPLS 路由器对数据包执行多个操作,如 push 来添加标签、swap 来更新标签,以及 pop 来删除标签。MPLS 允许基于 RHEL 中的一个或多个标签在本地定义操作。您可以配置路由器并设置流量控制(tc)过滤器,根据 MPLS 标签堆栈条目(lse)元素来对数据包执行相应的操作,如 labeltraffic classbottom of stack 以及 time to live

例如,以下命令在 enp0s1 网络接口中添加过滤器以匹配传入的数据包,第一个标签为 12323,第二个标签为 45832。在匹配的数据包中,会执行以下操作:

  • 第一个 MPLS TTL 被缩减(如果 TTL 到达 0,则会丢弃数据包)
  • 第一个 MPLS 标签被改为 549386
  • 生成的数据包通过 enp0s2 传输,目标 MAC 地址为 00:00:5E:00:53:01,源 MAC 地址为 00:00:5E:00:53:02

    # tc filter add dev enp0s1 ingress protocol mpls_uc flower mpls lse depth 1 label 12323 lse depth 2 label 45832 \
    action mpls dec_ttl pipe \
    action mpls modify label 549386 pipe \
    action pedit ex munge eth dst set 00:00:5E:00:53:01 pipe \
    action pedit ex munge eth src set 00:00:5E:00:53:02 pipe \
    action mirred egress redirect dev enp0s2

Bugzilla:1814836[1], Bugzilla:1856415

act_mpls 模块作为技术预览提供

act_mpls 模块现在作为技术预览在 kernel-modules-extra rpm 中找到。该模块允许使用流量控制(TC)过滤器进行多协议标签交换(MPLS)操作,例如:通过 TC 过滤器推送和弹出 MPLS 标签堆栈条目。模块还允许独立设置 Label、Traffic Class、Stack 的 Bottom 和 Time to Live 字段。

Bugzilla:1839311[1]

systemd-resolved 服务现在作为技术预览提供

systemd-resolved 服务为本地应用提供名称解析。该服务实现了缓存和验证 DNS 存根解析器、链接本地多播名称解析(LLMNR)和多播 DNS 解析器和响应器。

请注意,即使 systemd 软件包提供了 systemd -resolved,这个服务仍是一个不受支持的技术预览。

Bugzilla:1906489

7.3. 内核

soft-RoCE 作为技术预览提供

通过融合以太网的远程直接内存访问(RDMA)是一个通过以太网实现 RDMA 的网络协议。Soft-RoCE 是 RoCE 的软件实现,它维护两个协议版本:RoCE v1 和 RoCE v2。在 RHEL 8 中,Soft-RoCE 驱动程序 rdma_rxe 作为不受支持的技术预览提供。

Bugzilla:1605216[1]

eBPF 作为技术预览

Extended Berkeley Packet Filter(eBPF) 是一个内核中的虚拟机,允许在可访问有限功能的受限沙箱环境中在内核空间中执行代码。

虚拟机包含一个新的系统调用 bpf(),它允许创建各种类型的映射,还允许在特殊的装配式代码中加载程序。然后,代码被加载到内核,并使用即时编译方式转换为原生机器代码。请注意,只有具有 CAP_SYS_ADMIN 能力的用户(如 root 用户)才可以成功使用 bpf() syscall。如需更多信息,请参阅 bpf(2) 手册页。

载入的程序可附加到不同的点(套接字、追踪点、数据包)来接收和处理数据。

红帽提供的很多组件都使用 eBPF 虚拟机。每个组件都处于不同的开发阶段。所有组件都作为技术预览提供,除非有特定组件被显示为受支持。

以下显著的 eBPF 组件当前还作为技术预览提供:

  • AF_XDP,是一个套接字,用于将eXpress Data Path (XDP)路径连接到优先考虑数据包处理性能的应用程序的用户空间。

Bugzilla:1559616[1]

kexec 快速重启功能作为一种技术预览提供

kexec 快速重启功能作为一种技术预览继续提供。kexec 快速重启可显著加快引导过程,因为您可以直接引导到第二个内核,而无需首先通过基本输入/输出系统(BIOS)或固件。要使用这个功能:

  1. 手动加载 kexec 内核。
  2. 重启以使更改生效。

请注意,kexec 快速重启功能在 RHEL 9 及更新的版本中提供有限的支持范围。

Bugzilla:1769727

accel-config 软件包作为技术预览提供

accel-config 软件包现在作为技术预览在 Intel EM64TAMD64 构架上提供。这个软件包有助于控制并配置 Linux 内核中的数据流化器(DSA)子系统。另外,它还通过 sysfs (pseudo-文件系统)配置设备,以 json 格式保存并载入配置。

Bugzilla:1843266[1]

7.4. 文件系统和存储

现在 ext4 和 XFS 作为技术预览提供文件系统 DAX

在 Red Hat Enterprise Linux 8 中,文件系统 DAX 作为技术预览提供。DAX 提供了将持久内存直接映射到其地址空间的方法。要使用 DAX,系统必须有某种形式的持久性内存可用,通常是以一个或多个非易失性双内联内存模块(NVDIMM)的形式,并且提供 DAX 能力的文件系统必须在 NVDIMM 上创建。另外,该文件系统必须使用 dax 挂载选项挂载。然后,挂载了 dax 的文件系统上的文件的 mmap 会导致存储直接映射到应用程序的地址空间。

Bugzilla:1627455[1]

OverlayFS

OverlayFS 是一种联合文件系统。它允许您在另一个文件系统上覆盖一个文件系统。更改记录在上面的文件系统中,而较小的文件系统则未修改。这允许多个用户共享文件系统镜像,如容器或 DVD-ROM,基础镜像使用只读介质。

在大多数情况下,OverlayFS 仍是一个技术预览。因此,当这个技术被激活时,内核会记录警告信息。

与支持的容器引擎(podmancri-obuildah)一同使用时,对 OverlayFS 提供的全面支持包括以下限制:

  • OverlayFS 仅支持作为容器引擎图形驱动程序或其他专用用例使用,如 squashed kdump initramfs。它主要用来支持容器 COW 内容,而不是持久性存储。您必须将任何持久性存储放在非OverlayFS 卷中。您只能使用默认容器引擎配置:一个级别的覆盖、一个较低 dir 以及较低级别和上一级都位于同一个文件系统中。
  • 目前只支持 XFS 作为较低层文件系统使用。

另外,以下规则和限制适用于使用 OverlayFS:

  • OverlayFS 内核 ABI 和用户空间的行为被视为不稳定,将来的更新可能会改变。
  • OverlayFS 提供一组受限的 POSIX 标准。在使用 OverlayFS 部署前,先测试您的应用程序。以下情况与 POSIX 不兼容:

    • O_RDONLY 打开的较低文件在读取文件时不会接收 st_atime 更新。
    • 使用 O_RDONLY 打开的较低文件,然后与 MAP_SHARED 映射与后续修改不一致。
    • RHEL 8 中不默认启用完全兼容 st_inod_ino 值,但您可以使用模块选项或挂载选项为它们启用完整的 POSIX 合规性。

      要获得一致的内节点编号,请使用 xino=on 挂载选项。

      您还可以使用 redirect_dir=onindex=on 选项提高 POSIX 合规性。这两个选项使上层的格式与没有这些选项的 overlay 不兼容。也就是说,如果您使用 redirect_dir=onindex=on 创建一个覆盖,卸载覆盖,然后在没有这些选项的情况下挂载覆盖,则可能会出现意外的结果或错误。

  • 要确定现有 XFS 文件系统是否有资格用作 overlay,请使用以下命令查看是否启用了 ftype=1 选项:

    # xfs_info /mount-point | grep ftype
  • 使用 OverlayFS 在所有支持的容器引擎中默认启用 SELinux 安全标签。
  • 本发行版本中与 OverlayFS 相关的几个已知问题。详情请查看 Linux 内核文档 中的 非标准行为

有关 OverlayFS 的更多信息,请参阅 Linux 内核文档

Bugzilla:1690207[1]

Stratis 现在作为技术预览提供

Stratis 是一个新的本地存储管理器,它使用额外的功能在存储池之上提供受管的文件系统。它作为技术预览提供。

使用 Stratis,您可以执行以下存储任务:

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

要管理 Stratis 存储,使用 stratis 工具来与 stratisd 后台服务进行通信。如需更多信息,请参阅 设置 Stratis 文件系统 文档。

RHEL 8.5 将 Stratis 更新至版本 2.4.2。如需更多信息,请参阅 Stratis 2.4.2 发行注记

Jira:RHELPLAN-1212[1]

NVMe/TCP 主机作为技术预览提供

访问和共享通过 TCP/IP 网络(NVMe/TCP)的 Nonvolatile Memory Express(NVMe/TCP)存储及其相应的 nvme_tcp.ko 内核模块已被添加为技术预览。使用 nvme-cli 软件包提供的工具可以将 NVMe/TCP 作为主机管理。NVMe/TCP 主机技术预览仅用于测试目的,目前没有计划提供全面支持。

Bugzilla:1696451[1]

在 IdM 域成员中设置 Samba 服务器作为技术预览提供

在这个版本中,您可以在 Identity Management(IdM)域成员中设置 Samba 服务器。由同名软件包提供的新 ipa-client-samba 程序为 IdM 添加了特定于 Samba 的 Kerberos 服务主体并准备 IdM 客户端。例如,实用程序使用 sss ID 映射后端的 ID 映射配置创建 /etc/samba/smb.conf。现在,管理员可以在 IdM 域成员中设置 Samba。

由于 IdM Trust Controller 不支持全局目录服务,AD-enrolled Windows 主机无法在 Windows 中找到 IdM 用户和组。另外,IdM Trust Controller 不支持使用分布式计算环境/远程过程调用(DCE/RPC)协议解析 IdM 组。因此,AD 用户只能访问 IdM 客户端的 Samba 共享和打印机。

详情请查看在 IdM 域成员中设置 Samba

Jira:RHELPLAN-13195[1]

7.5. 高可用性和集群

pacemaker podman bundles 作为技术预览

pacemaker 容器捆绑包现在在 Podman 上运行,容器捆绑包功能作为技术预览提供。此功能的一个例外是技术预览:红帽完全支持将 Pacemaker 捆绑包用于 Red Hat OpenStack。

Bugzilla:1619620[1]

作为技术预览的 corosync-qdevice 中的 Heuristics

Heuristics是一组在启动、集群成员资格更改、成功连接到 corosync-qnetd 时本地执行的命令,以及可选的定期执行的命令。当所有命令及时成功完成(返回的错误代码为零),代表 heuristics 通过,否则代表失败。Heuristics 结果发送到 corosync-qnetd,在计算中用来决定哪个分区应该是 quorate。

Bugzilla:1784200

新的 fence-agents-heuristics-ping 保护代理

作为技术预览,Pacemaker 现在提供 fence_heuristics_ping 代理。这个代理旨在打开一组实验性保护代理,它们本身没有实际隔离,而是以新的方式利用隔离级别。

如果 heuristics 代理的配置与用于实现实际隔离代理有相同的隔离级别,但在代理之前配置,隔离会在试图进行隔离前,在 heuristics 代理上发出一个 off 操作。如果 heuristics 代理给出了 off 操作的一个负结果,则代表隔离不成功,从而导致 Pacemaker 隔离跳过对实现隔离的代理发出 off 动作的步骤。heuristics 代理可以利用这个行为来防止实际上进行隔离的代理在特定情况下隔离节点。

用户可能希望使用这个代理,特别是在双节点集群中,如果节点可以预先知道无法正确接管该服务,则节点可以隔离这个代理。例如,如果节点在网络连接链接出现问题,使服务无法访问客户端,则节点接管服务可能不真实。在这种情况下,向路由器的 ping 可能会探测到这个情况。

Bugzilla:1775847[1]

7.6. 身份管理

身份管理 JSON-RPC API 作为技术预览

一个 API 可用于 Identity Management(IdM)。要查看 API,IdM 还提供了一个 API 浏览器作为技术预览。

在以前的版本中,IdM API 被改进来启用多个 API 命令版本。这些增强可能会以不兼容的方式改变命令的行为。用户现在可以继续使用已有的工具和脚本,即使 IdM API 发生了变化。这可启用:

  • 管理员要在服务器中使用之前或更高版本的 IdM,而不是在管理客户端中使用。
  • 开发人员可以使用 IdM 调用的特定版本,即使 IdM 版本在服务器上发生了变化。

在所有情况下,与服务器进行通信是可能的,无论是否一方使用,例如,一个新的版本会为这个功能引进新的选项。

有关使用 API 的详细信息,请参阅使用身份管理 API 与 IdM 服务器通信(TECHNOLOGY PREVIEW)

Bugzilla:1664719

DNSSEC 在 IdM 中作为技术预览提供

带有集成 DNS 的身份管理(IdM)服务器现在实现了 DNS 安全扩展(DNSSEC),这是一组增强 DNS 协议安全的 DNS 扩展。托管在 IdM 服务器上的 DNS 区可以使用 DNSSEC 自动签名。加密密钥是自动生成和轮转的。

建议那些决定使用 DNSSEC 保护 DNS 区的用户读取并遵循这些文档:

请注意,集成了 DNSSEC 的 IdM 服务器验证从其他 DNS 服务器获取的 DNS 答案。这可能会影响未按照推荐的命名方法配置的 DNS 区域可用性。

Bugzilla:1664718

ACME 作为技术预览提供

自动证书管理环境(ACME)服务现在作为技术预览在 Identity Management(IdM)中提供。ACME 是一个用于自动标识符验证和证书颁发的协议。它的目标是通过缩短证书生命周期并避免证书生命周期管理中的手动过程来提高安全性。

在 RHEL 中,ACME 服务使用红帽认证系统(RHCS)PKI ACME 响应程序。RHCS ACME 子系统自动部署到 IdM 部署中的每个证书颁发机构(CA)服务器上,但只有管理员启用它之后,它才会为请求提供服务。RHCS 在发布 ACME 证书时使用 acmeIPAServerCert 配置文件。签发的证书的有效期为 90 天。启用或禁用 ACME 服务会影响整个 IdM 部署。

重要

建议仅在所有服务器都运行 RHEL 8.4 或以上版本的 IdM 部署中启用 ACME。早期的 RHEL 版本不包括 ACME 服务,这可能会在混合版本部署中引起问题。例如,没有 ACME 的 CA 服务器可能会导致客户端连接失败,因为它使用不同的 DNS Subject Alternative Name(SAN)。

警告

目前,RHCS 不会删除过期的证书。由于 ACME 证书在 90 天后过期,因此过期的证书可能会累积,这会影响性能。

  • 要在整个 IdM 部署中启用 ACME,请使用 ipa-acme-manage enable 命令:

    # ipa-acme-manage enable
    The ipa-acme-manage command was successful
  • 要在整个 IdM 部署中禁用 ACME,请使用 ipa-acme-manage disable 命令:

    # ipa-acme-manage disable
    The ipa-acme-manage command was successful
  • 要检查是否安装了 ACME 服务,以及它是否启用或禁用了,请使用 ipa-acme-manage status 命令:

    # ipa-acme-manage status
    ACME is enabled
    The ipa-acme-manage command was successful

Bugzilla:1628987[1]

sssd-idp 子软件包作为技术预览提供

SSSD 的 sssd-idp 子软件包包含 oidc_child 和 krb5 idp 插件,它们是对身份管理(IdM)服务器执行 OAuth2 身份验证的客户端组件。此功能仅适用于 RHEL 8.7 及更高版本上的 IdM 服务器。

Bugzilla:2065692

SSSD 内部 krb5 idp 插件作为技术预览提供

SSSD krb5 idp 插件允许您使用 OAuth2 协议对外部身份提供者(IdP)进行身份验证。此功能仅适用于 RHEL 8.7 及更高版本上的 IdM 服务器。

Bugzilla:2056483

7.7. 桌面

GNOME 用于 64 位 ARM 架构,作为一个技术预览

GNOME 桌面环境可用于 64 位 ARM 架构,作为技术预览。

现在,您可以使用 VNC 连接到 64 位 ARM 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

64 位 ARM 提供了有限的图形应用程序集合。例如:

  • Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Firefox,您可以连接到服务器上的 Cockpit 服务。

某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。

JIRA:RHELPLAN-27394[1], Bugzilla:1667516, Bugzilla:1724302, Bugzilla:1667225

用于 IBM Z 架构的 GNOME 作为技术预览提供

对于 IBM Z 架构,GNOME 桌面环境作为技术预览。

现在,您可以使用 VNC 连接到 IBM Z 服务器上的桌面会话。因此,您可以使用图形应用程序管理服务器。

IBM Z 上提供了一组有限的图形应用程序。例如:

  • Firefox Web 浏览器
  • Red Hat 订阅管理器 (subscription-manager-cockpit)
  • 防火墙配置(firewall-config)
  • 磁盘用量分析器(baobab)

使用 Firefox,您可以连接到服务器上的 Cockpit 服务。

某些应用程序,如 LibreOffice ,只提供命令行界面,其图形界面被禁用。

Jira:RHELPLAN-27737[1]

7.8. 图形基础结构

VNC 远程控制台作为 64 位 ARM 架构的一个技术预览提供

在 64 位 ARM 架构中,虚拟网络计算(VNC)远程控制台可作为技术预览使用。请注意,在 64 位 ARM 架构中,目前图形堆栈的其它部分没有被验证。

Bugzilla:1698565[1]

7.9. 虚拟化

KVM 虚拟化可用于 RHEL 8 Hyper-V 虚拟机

作为技术预览,现在可将嵌套的 KVM 虚拟化用于 Microsoft Hyper-V hypervisor。因此,您可以在运行在 Hyper-V 主机的 RHEL 8 虚拟机中创建虚拟机。

请注意,目前这个功能仅适用于 Intel 和 AMD 系统。另外,在一些情况下,Hyper-V 中不默认启用嵌套虚拟化。要启用它,请参阅以下文档:

https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

Bugzilla:1519039[1]

用于 KVM 虚拟机的 AMD SEV 和 SEV-ES

作为技术预览,RHEL 8 为使用 KVM 虚拟机的 AMD EPYC 主机提供安全加密虚拟化(SEV)功能。如果在虚拟机(VM)上启用,SEV 会加密虚拟机的内存来保护虚拟机被主机访问。这提高了虚拟机的安全性。

另外,增强的 Encrypted State 版本 SEV-ES)也作为技术预览提供。SEV-ES 在虚拟机停止运行时加密所有 CPU 注册内容。这可防止主机修改虚拟机的 CPU 注册或读取它们中的任何信息。

请注意,SEV 和 SEV-ES 仅适用于第 2 代 AMD EPYC CPU(代号 Rome)或更新版本。另请注意,RHEL 8 包括 SEV 和 SEV-ES 加密,但不包括 SEV 和 SEV-ES 安全认证。

Bugzilla:1501618[1], Bugzilla:1501607, JIRA:RHELPLAN-7677

Intel vGPU 作为技术预览提供

作为技术预览,可以将物理 Intel GPU 设备分为多个虚拟设备,称为 介质设备。然后可将这些介质设备分配给多个虚拟机(VM)作为虚拟 GPU。因此,这些虚拟机共享单个物理 Intel GPU 的性能。

请注意,只有所选 Intel GPU 与 vGPU 功能兼容。

另外,也可以启用由 Intel vGPU 操作的 VNC 控制台。通过启用它,用户可以连接到虚拟机的 VNC 控制台,并查看由 Intel vGPU 托管的虚拟机桌面。但是,目前这仅适用于 RHEL 客户机操作系统。

请注意,这个功能已弃用,并将在以后的 RHEL 主发行版本中完全删除。

Bugzilla:1528684[1]

创建嵌套虚拟机

对于装有 RHEL 8 的 Intel、AMD64、IBM POWER 以及 IBM Z 系统主机上运行的 KVM 虚拟机,嵌套的 KVM 虚拟化作为技术预览提供。使用此功能,在物理 RHEL 8 主机上运行的 RHEL 7 或 RHEL 8 虚拟机可作为虚拟机监控程序,并托管自己的虚拟机。

Jira:RHELPLAN-14047[1], Jira:RHELPLAN-24437

技术预览:选择 Intel 网络适配器现在在 Hyper-V 上的 RHEL 客户端中提供 SR-IOV

作为技术预览,运行在 Hyper-V hypervisor 上的 Red Hat Enterprise Linux 客户机操作系统现在可以对 ixgbevfiavf 驱动程序支持的 Intel 网络适配器使用单根 I/O 虚拟化(SR-IOV)功能。此功能在满足以下条件时启用:

  • 对网络接口控制器(NIC)启用了 SR-IOV 支持
  • 对虚拟 NIC 启用了 SR-IOV 支持
  • 对虚拟交换机启用 SR-IOV 支持
  • NIC 中的虚拟功能(VF)附加到虚拟机

该功能目前随 Microsoft Windows Server 2016 及更高版本一起提供。

Bugzilla:1348508[1]

RHEL 客户机中的 Intel TDX

作为技术预览,Intel Trust Domain Extension (TDX)功能现在可在 RHEL 8.8 及之后的版本中使用。如果主机系统支持 TDX,您可以部署硬件隔离的 RHEL 9 虚拟机(VM),称为信任域(TD)。但请注意,TDX 目前无法与 kdump 一起工作,启用 TDX 会导致 kdump 在虚拟机上失败。

Bugzilla:1836977[1]

使用 virtiofs 在主机和虚拟机之间共享文件

作为技术预览,RHEL 8 现在提供 virtio 文件系统(virtiofs)。使用 virtiofs,您可以在主机系统及其虚拟机(VM)之间高效地共享文件。

Bugzilla:1741615[1]

7.10. 云环境中的 RHEL

RHEL 机密虚拟机现在在 Azure 上作为技术预览提供

有了更新的 RHEL 内核,现在您可以在 Microsoft Azure 上创建并运行机密虚拟机(VM)作为技术预览。但是,在 Azure 上引导时无法加密 RHEL 机密虚拟机镜像。

Jira:RHELPLAN-122316[1]

7.11. 容器

podman-machine 命令不被支持

用于管理虚拟机的 podman-machine 命令仅作为技术预览提供。相反,请直接从命令行运行 Podman。

Jira:RHELDOCS-16861[1]

构建多架构镜像作为技术预览提供

您可用来创建多架构容器镜像的 podman farm build 命令作为技术预览提供。

场场是在其中运行 UNIX podman 套接字的一组计算机。场中的节点可以是不同的架构的机器。podman farm build 命令比 podman build --arch --platform 命令快。

您可以使用 podman farm build 来执行以下操作:

  • 在场中的所有节点上构建镜像。
  • 将节点捆绑到清单列表中。
  • 在所有场节点上执行 podman build 命令。
  • 使用 --tag 选项将镜像推送到指定的注册中心。
  • 本地创建一个清单列表。
  • 将清单列表推送到注册中心。

    清单列表包含农场中存在的每个原生架构类型的一个镜像。

Jira:RHELPLAN-154435[1]

第 8 章 过时的功能

这部分提供在 Red Hat Enterprise Linux 8 中弃用 的功能概述。

弃用的设备被完全支持,这意味着它们会被测试和维护,且其支持状态在 Red Hat Enterprise Linux 8 中保持不变。但是,这些设备可能在以后的主版本中不被支持,且不建议对当前或将来的 RHEL 主发行版本进行新部署。

有关特定主发行版本中已弃用功能的最新列表,请查看最新发行版本的文档。有关支持长度的详情,请查看 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

一个软件包可以被弃用,我们不推荐在以后使用。在某些情况下,可以从产品中删除软件包。然后,产品文档可识别提供类似、完全相同或者更高级功能的最新软件包,并提供进一步建议。

有关 RHEL 7 中存在但已在 RHEL 8 中删除 的功能的详情,请参考 采用 RHEL 8 的注意事项

有关 RHEL 8 中存在但已在 RHEL 9 中删除的功能的信息,请参阅使用 RHEL 9 的注意事项

8.1. 安装程序和镜像创建

弃用了一些 Kickstart 命令和选项

在 RHEL 8 Kickstart 文件中使用以下命令和选项将会在日志中打印警告信息:

  • authauthconfig
  • device
  • deviceprobe
  • dmraid
  • install
  • lilo
  • lilocheck
  • mouse
  • multipath
  • bootloader --upgrade
  • ignoredisk --interactive
  • partition --active
  • reboot --kexec

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

有关 Kickstart 中的详情和相关更改,请参阅使用 RHEL 8 的参考事项文档中的 Kickstart 更改部分。

Bugzilla:1642765[1]

ignoredisk Kickstart 命令的 --interactive 选项已被弃用

在以后的 Red Hat Enterprise Linux 版本中使用 --interactive 选项会导致严重安装错误。建议您修改 Kickstart 文件删除该选项。

Bugzilla:1637872[1]

Kickstart autostep 命令已弃用

autostep 命令已弃用。有关这个命令的相关部分已从 RHEL 8 文档中删除。

Bugzilla:1904251[1]

8.2. 安全性

NSS SEED 密码已弃用

Mozilla Network Security Services (NSS) 库将不支持在以后的版本中使用 SEED 密码的 TLS 密码组合。为确保在 NSS 取消支持时依赖 SEED 密码的部署平稳过渡,红帽推荐对其它密码套件的支持。

请注意,在 RHEL 中,SEED 密码已经被默认禁用。

Bugzilla:1817533

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)手册页。

Bugzilla:1660839

在 RHEL 8 中弃用 DSA

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

Bugzilla:1646541[1]

fapolicyd.rules 已被弃用

包含允许和拒绝执行规则的文件的 /etc/fapolicyd/rules.d/ 目录替代了 /etc/fapolicyd/fapolicyd.rules 文件。fagenrules 脚本现在将此目录中的所有组件规则文件合并到 /etc/fapolicyd/compiled.rules 文件。/etc/fapolicyd/fapolicyd 中的规则仍由 fapolicyd 框架处理,但只是为了保证向后兼容。

Bugzilla:2054741

NSS中弃用了SSL2 Client Hello

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

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

Bugzilla:1645153[1]

使用 /etc/selinux/config 运行时禁用 SELinux 现已弃用

使用 /etc/selinux/config 文件中的 SELINUX=disabled 选项禁用 SELinux 已被弃用。在 RHEL 9 中,当您只通过 /etc/selinux/config 禁用 SELinux 时,系统启动时会启用SELinux ,但没有载入任何策略。

如果您的情况确实需要完全禁用 SELinux,红帽建议通过在内核命令行中添加 selinux=0 参数来禁用 SELinux,如在标题为使用SELinux在引导时更改 SELinux模式部分中所述。

Bugzilla:1932222

ipa SELinux 模块从 selinux-policy中删除了

ipa SELinux 模块已从 selinux-policy 软件包中删除,因为不再维护它了。这个功能现在包括在 ipa-selinux 子软件包中。

如果您的场景需要在本地 SELinux 策略中使用 ipa 模块的类型或接口,请安装 ipa-selinux 软件包。

Bugzilla:1461914[1]

TPM 1.2 已被弃用

可信平台模块(TPM)安全加密处理器标准将在 2016 年更新至版本 2.0。TPM 2.0 比 TPM 1.2 提供了很多改进,它和之前的版本不向后兼容。在 RHEL 8 中弃用了 TPM 1.2,它可能会在下一个主发行版本中删除。

Bugzilla:1657927[1]

crypto-policies 派生的属性现已被弃用

随着自定义策略中 crypto-policies 指令作用域的引入,以下派生属性已被弃用: tls_cipherssh_cipherssh_groupike_protocolsha1_in_dnssec。另外,使用 protocol 属性而不指定范围现也已被弃用。有关推荐的替代品,请参阅 crypto-policies(7) 手册页。

Bugzilla:2011208

RHEL 8 和 9 OpenSSL 证书和密钥容器现已弃用

红帽生态系统目录中的 ubi8/opensslubi9/openssl 存储库中提供的 OpenSSL 可移植证书和签名容器现已弃用。

Jira:RHELDOCS-17974[1]

8.3. 订阅管理

弃用的 subscription-manager register--token 选项将在 2024 年 11 月底停止工作

弃用的 subscription-manager register 命令的 --token=<TOKEN> 选项从 2024 年 11 月底起,将不再是一个支持的身份验证方法。默认的授权服务器 subscription.rhsm.redhat.com 不再允许基于令牌的身份验证。因此,如果您使用 subscription-manager register --token=<TOKEN>,则注册将失败,并显示以下错误消息:

Token authentication not supported by the entitlement server

要注册您的系统,请使用其他支持的授权方法,如包括 subscription-manager register 命令的成对选项 --username / --password--org / --activationkey

Bugzilla:2170082

8.4. 软件管理

rpmbuild --sign 已弃用

从 RHEL 8.1 开始,rpmbuild --sign 命令被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。建议您使用 rpmsign 命令替代。

Bugzilla:1688849

8.5. Shell 和命令行工具

在 ReaR 配置文件中设置 TMPDIR 变量已弃用

通过使用语句,如 export TMPDIR=…​/etc/rear/local.conf/etc/rear/site.conf ReaR 配置文件中设置 TMPDIR 环境变量已被弃用。

要为 ReaR 临时文件指定一个自定义目录,请在执行 ReaR 前在 shell 环境中导出变量。例如,输入 export TMPDIR=…​ 语句,然后在相同的 shell 会话或脚本中输入 rear 命令。

Jira:RHELDOCS-18049[1]

OpenEXR 组件已弃用

OpenEXR 组件已弃用。因此,对 EXR 镜像格式的支持已从 imagecodecs 模块中去掉了。

Bugzilla:1886310

dump 软件包中的 dump 工具已弃用

用于文件系统备份的 dump 工具已弃用,在 RHEL 9 中将不再提供。

在 RHEL 9 中,红帽建议根据使用情况使用 tarddbacula 、备份工具,对 ext2、ext3 和 ext4 文件系统提供了完整和安全的备份。

请注意,dump 软件包中的 restore 工具仍可用,在 RHEL 9 中也被支持,并作为 restore 软件包提供。

Bugzilla:1997366[1]

RHEL 8 systemd 不再支持 hidepid=n 挂载选项

挂载选项 hidepid=n,其控制谁可以访问 /proc/[pid] 目录中的信息,与 RHEL 8 提供的 systemd 基础架构不兼容。

另外,使用这个选项可能会导致 systemd 启动的某些服务生成 SELinux AVC 拒绝信息,并阻止其他操作完成。

如需更多信息,请参阅有关的知识库解决方案 RHEL7 和 RHEL8 建议使用"hidepid=2"挂载 /proc ?

Bugzilla:2038929

/usr/lib/udev/rename_device 工具已被弃用

用于重命名网络接口的 udev 帮助工具 /usr/lib/udev/rename_device 已被弃用。

Bugzilla:1875485

ABRT 工具已被弃用

用于检测和报告应用程序崩溃的自动错误报告工具(ABRT) 在 RHEL 8 中已弃用。作为替代,使用 systemd-coredump 工具记录和存储核心转储,其是程序崩溃后自动生成的文件。

Bugzilla:2055826[1]

ReaR crontab 已被弃用

rear 软件包中的 /etc/cron.d/rear crontab 已在 RHEL 8 中弃用,且不在 RHEL 9 中提供。crontab 会每晚检查磁盘布局是否已更改,如果发生了更改,则运行 rear mkrescue 命令。

如果您需要这个功能,在升级到 RHEL 9 后,请手动配置定期运行 ReaR。

Bugzilla:2083301

Bacula 中的 SQLite 数据库后端已被弃用

Bacula 备份系统支持多个数据库后端:PostgreSQL、MySQL 和 SQLite。SQLite 后端已被弃用,并将在以后的 RHEL 版本中不被支持。作为一种替代,迁移到其他一种后端(PostgreSQL 或 MySQL),且在新部署中不使用 SQLite 后端。

Jira:RHEL-6859

raw 命令已被弃用

raw (/usr/bin/raw)命令已被弃用。在以后的 Red Hat Enterprise Linux 版本中使用这个命令可能会导致错误。

Jira:RHELPLAN-133171[1]

8.6. 基础架构服务

geoipupdate 软件包已弃用

geoipupdate 软件包需要第三方订阅,同时下载专有内容。因此,geoipupdate 软件包已被弃用,并将在下一个主要 RHEL 版本中删除。

Bugzilla:1874892[1]

8.7. 网络

在 RHEL 8 中已弃用网络脚本

网络脚本在 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 脚本链接到已安装的旧网络脚本。

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

Bugzilla:1647725[1]

dropwatch 工具已弃用

dropwatch 工具已弃用。以后的发行版本中不再支持该工具,因此不建议在新部署中使用它。作为此软件包的替代品,红帽建议使用 perf 命令行工具。

有关使用 perf 命令行工具的更多信息,请参阅红帽客户门户网站的 Perf入门 部分或 perf手册页。

Bugzilla:1929173

xinetd 服务已弃用

xinetd 服务已弃用,并将在 RHEL 9 中删除。作为替换,请使用 systemd。详情请查看 如何将 xinetd 服务转换为 systemd

Bugzilla:2009113[1]

cgdcbxd 软件包已被弃用

控制组数据中心桥接交换守护进程(cgdcbxd)是监控数据中心桥接(DCB)netlink 事件和管理 net_prio 控制组子系统的服务。从 RHEL 8.5 开始,cgdcbxd 软件包被弃用,并将在下一个主要 RHEL 发行版本中删除。

Bugzilla:2006665

WEP Wi-Fi 连接方法已被弃用

在 RHEL 8 中弃用了不安全的有线等效隐私(WEP) Wi-Fi 连接方法,并将在 RHEL 9.0 中删除。对于安全的 Wi-Fi 连接,请使用 Wi-Fi Protected Access 3(WPA3)或 WPA2 连接方法。

Bugzilla:2029338

不受支持的 xt_u32 模块现已被弃用

使用不受支持的 xt_u32 模块,iptables 用户可以匹配数据包头或有效负载中的任意 32 位数据。从 RHEL 8.6 开始,xt_u32 模块已被弃用,并将在 RHEL 9 中删除。

如果使用 xt_u32,请迁移到 nftables 数据包过滤框架。例如,首先将您的防火墙更改为使用带有原生匹配项的 iptables ,以便逐步替换单个规则,然后使用 iptables-translate 和附带的工具迁移到 nftables。如果 nftables 中没有原生匹配,请使用 nftables 的原始有效负载匹配功能。详情请查看 nft(8) 手册页中 原始有效负载表达式 部分。

Bugzilla:2061288

8.8. 内核

rdma_rxe Soft-RoCE 驱动程序已弃用

软件直接内存通过融合以太网(Soft-RoCE)(也称为 RXE)是模拟远程直接内存访问(RDMA)的功能。在 RHEL 8 中,Soft-RoCE 功能作为技术预览提供。另外,由于稳定性问题,这个功能已弃用,并将在 RHEL 9 中删除。

Bugzilla:1878207[1]

Linux firewire 子系统及其关联的用户空间组件在 RHEL 8 中已弃用

firewire 子系统提供了接口来使用和维护 IEEE 1394 总线上的任何资源。在 RHEL 9 中,内核 软件包将不再支持 firewire 。请注意,firewire 包含几个由 libavc1394libdc1394libraw1394 软件包提供的用户空间组件。这些软件包也会被弃用。

Bugzilla:1871863[1]

使用无磁盘引导为 Real Time 8 安装 RHEL 现已弃用

无盘引导允许多个系统通过网络共享根文件系统。虽然方便,无盘引导会在实时工作负载中容易引入网络延迟。使用 RHEL for Real Time 8 的 8.3 次更新,无盘引导功能不再被支持。

Bugzilla:1748980

内核实时补丁现在涵盖所有 RHEL 次要版本

从 RHEL 8.1 开始,已为延长更新支持(EUS)策略涵盖的所选定的 RHEL 次版本提供了内核实时补丁,以修复级别为关键(Critical)和重要(Important)的通用漏洞披露(CVE)。要容纳同时涵盖内核和用例的最大数量,对于内核的每个次版本、主要版本和 zStream 版本,每个实时补丁的支持窗口已从 12 月减少到 6 个月。这意味着,在内核实时补丁发布的那天,它将覆盖过去 6 个月所交付的每个次要版本和计划勘误表内核。

有关此功能的更多信息,请参阅 使用内核实时修补应用补丁

有关可用的内核实时补丁的详情,请查看 内核实时补丁生命周期

Bugzilla:1958250

crash-ptdump-command 软件包已被弃用

crash-ptdump-command 软件包(这是 crash 工具的 ptdump 扩展模块)已被弃用,且可能在以后的 RHEL 版本中不提供。在 Single Range Output 模式下工作时,ptdump 命令无法检索日志缓冲区,且只能在物理地址(ToPA)表模式下工作。crash-ptdump-command 当前没有在上游维护

Bugzilla:1838927[1]

8.9. 引导加载程序

kernelopts 环境变量已被弃用

在 RHEL 8 中,使用 GRUB 引导装载程序的系统的内核命令行参数在 kernelopts 环境变量中定义。变量保存在每个内核引导条目的 /boot/grub2/grubenv 文件中。但是,使用 kernelopts 存储内核命令行参数并不可靠。因此,在以后的 RHEL 主更新中,kernelopts 将被删除,且内核命令行参数会存储在 Boot Loader Specification(BLS)片断中。

Bugzilla:2060759

8.10. 文件系统和存储

Resilient Storage Add-On 已被弃用

Red Hat Enterprise Linux (RHEL) Resilient Storage Add-On 已被弃用。从 Red Hat Enterprise Linux 10 以及 RHEL 10 后的任何后续版本开始,不再支持弹性存储附加组件。RHEL Resilient Storage 附加组件将继续受到早期版本的 RHEL (7、8、9)以及其相应的维护支持生命周期的支持。

Jira:RHELDOCS-19027

elevator 内核命令行参数已弃用

在之前的 RHEL 版本中使用 elevator 内核命令行参数为所有设备设置磁盘调度程序。在 RHEL 8 中,该参数已弃用。

上游 Linux 内核删除了对 elevator 参数的支持,但出于兼容性的原因,在 RHEL 8 中仍提供此支持。

请注意,内核会根据设备类型选择默认磁盘调度程序。这通常是最佳设置。如果您需要不同的调度程序,红帽建议您使用 udev 规则或 TuneD 服务来配置它。匹配所选设备并只为那些设备切换调度程序。

如需更多信息,请参阅设置磁盘调度程序

Bugzilla:1665295[1]

禁用了 NFSv3 over UDP

默认情况下,NFS 服务器不再默认在 User Datagram Protocol(UDP)套接字上打开或监听。这个变化只影响 NFS 版本 3,因为版本 4 需要传输控制协议(TCP)。

RHEL 8 不再支持通过 UDP 的 NFS。

Bugzilla:1592011[1]

peripety 已被弃用

从 RHEL 8.3 开始,pipety 软件包已弃用。

Peripety 存储事件通知守护进程将系统存储日志解析为结构化的存储事件。它帮助您调查存储问题。

Bugzilla:1871953

除了 async 以外的 VDO 写模式都被弃用了

VDO 支持 RHEL 8 中的几种写入模式:

  • sync
  • async
  • async-unsafe
  • auto

从 RHEL 8.4 开始,以下写入模式已弃用:

sync
VDO 层之上的设备无法识别 VDO 是否同步,因此设备无法利用 VDO 同步 模式。
async-unsafe
VDO 添加了这个写入模式来作为降低 async 模式性能的一个临时解决方案,异步模式符合原子性、一致性、隔离性和持久性(ACID)。对于大多数用例,红帽不推荐使用 async-unsafe,也不知道任何依赖它的用户。
auto
这个写入模式只选择其它写入模式之一。当 VDO 只支持单个写入模式时,不再需要它。

这些写入模式将在以后的主 RHEL 发行版本中删除。

推荐的 VDO 写入模式现在是 async的。

如需有关 VDO 写入模式的更多信息,请参阅选择 VDO 写入模式

Jira:RHELPLAN-70700[1]

VDO 管理器已被弃用

基于 python 的 VDO 管理软件已被弃用,并将从 RHEL 9 中删除。在 RHEL 9 中,它将被 LVM-VDO 集成替代。因此,建议您使用 lvcreate 命令创建 VDO 卷。

使用 VDO 管理软件创建的现有卷可以使用 lvm2 软件包提供的 /usr/sbin/lvm_import_vdo 脚本来进行转换。有关 LVM-VDO 实现的更多信息,请参阅 RHEL 上的去重和压缩逻辑卷

Bugzilla:1949163

cramfs 已被弃用

由于缺少用户,cramfs 内核模块已被弃用。建议使用 squashfs 作为替代解决方案。

Bugzilla:1794513[1]

8.11. 高可用性和集群

支持 clufter 工具的 pcs 命令已被弃用

支持 clufter 工具来分析群集配置格式的 pcs 命令已被弃用。现在,这些命令会显示一个警告信息,提示该命令已弃用,并且与这些命令相关的部分已从 pcs 帮助显示和pcs(8)手册页中删除。

以下命令已被弃用:

  • 用于导入 CMAN / RHEL6 HA 群集配置的 pcs config import-cman
  • pcs config export 用于将集群配置导出到重新创建同一集群的 pcs 命令列表中

Bugzilla:1851335[1]

8.12. 动态编程语言、网页和数据库服务器

PHP 提供的与 Apache HTTP 服务器一起使用的 mod_php 模块已被弃用

PHP 提供的与 RHEL 8 中的 Apache HTTP 服务器一起使用的 mod_php 模块可用,但在默认配置中未启用。RHEL 9 不再提供该模块。

从 RHEL 8 开始,PHP 脚本默认使用 FastCGI Process Manager (php-fpm)运行。如需更多信息,请参阅 将 PHP 与 Apache HTTP 服务器一起使用

Bugzilla:2225332

8.13. 编译器和开发工具

gdb.i686 软件包已弃用

在 RHEL 8.1 中,GNU Debugger(GDB)gdb.i686 的 32 位版本因为另一个软件包中的依赖问题而提供。因为 RHEL 8 不支持 32 位硬件,所以 gdb.i686 软件包从 RHEL 8.4 开始已弃用。GDB的64 位版本gdb.x86_64完全能够调试 32 位应用程序。

如果使用 gdb.i686,请注意以下重要问题:

  • gdb.i686 软件包将不再更新。用户必须安装 gdb.x86_64
  • 如果您安装了 gdb.i686,安装 gdb.x86_64 将导致 yum 报告 package gdb-8.2-14.el8.x86_64 obsoletes gdb < 8.2-14.el8 provided by gdb-8.2-12.el8.i686。这是预期的。卸载 gdb.i686 或向dnf传递 --allowerasing选项来删除gdb.i686, 并安装 gdb.x8_64
  • 用户将不能够在 64 位系统中安装 gdb.i686 软件包,也就是那些带有 libc.so.6()64 位) 软件包的系统。

Bugzilla:1853140[1]

libdwarf 已弃用

libdwarf 库在 RHEL 8 中已弃用。将来的主版本中可能也不支持该程序库。对于打算处理 ELF/DWARF 文件的应用程序,请使用 elfutilslibdw 库。

libdwarf-tools dwarfdump 程序的替代方案是 binutils readelf 程序或elfutilseu-readelf 程序,它们都通过传递 --debug-dump 标志来使用。

Bugzilla:1920624

8.14. 身份管理

openssh-ldap 已被弃用

在 Red Hat Enterprise Linux 8 中弃用 openssh-ldap 子软件包,并将在 RHEL 9 中删除。因为 openssh-ldap 子软件包没有被上游维护,红帽建议您使用 SSSD 和 sss_ssh_authorizedkeys 帮助程序,它们与其他 IdM 解决方案更好地集成且更安全。

默认情况下,SSSD ldapipa 供应商会读取用户对象的 sshPublicKey LDAP 属性(如果可用)。请注意,您无法为 ad provider 或 IdM 可信域使用默认的 SSSD 配置从 Active Directory(AD)检索 SSH 公钥,因为 AD 没有存储公钥的默认 LDAP 属性。

要允许 sss_ssh_authorizedkeys 帮助程序从 SSSD 获取密钥,在 sssd.conf 文件的 services 选项中添加 ssh 来启用 ssh 响应程序。详情请查看 sssd.conf(5) 手册页。

要允许 sshd 使用 sss_ssh_authorizedkeys,,添加 AuthorizedKeysCommand/usr/bin/sss_ssh_authorizedkeysAuthorizedKeysCommandUser nobody 选项到 /etc/ssh/sshd_config 文件,如 ss_ssh_authorizedkeys(1) 手册页所述。

Bugzilla:1871025

已经删除了 DES 和 3DES 加密类型

由于安全考虑,自 RHEL 7 开始,数据加密标准(DES)算法已被弃用并默认禁用。通过最近重新构建 Kerberos 软件包,已从 RHEL 8 中删除了 single-DES(DES)和 triple-DES(3DES) 加密类型。

如果您已经将服务或用户配置为只使用 DES 或 3DES 加密,您可能会遇到服务中断,例如:

  • Kerberos authentication 错误
  • unknown enctype 加密错误
  • 带有 DES 加密数据库主密钥(K/M)的 KDC 无法启动

执行以下操作准备升级:

  1. 检查您的 KDC 是否使用 DES 或者 3DES 加密,并使用 krb5check 打开源 Python 脚本。请参阅 GitHub 上的 krb5check
  2. 如果您要将 DES 或 3DES 加密用于任何 Kerberos 主体,请使用支持的加密类型重新加密,比如高级加密标准(AES)。有关重新打包的步骤,请参考 MIT Kerberos 文档中的 Retiring DES
  3. 通过在升级前临时设置以下 Kerberos 选项,从 DES 和 3DES 测试测试:

    1. 在 KDC 上的 /var/kerberos/krb5kdc/kdc.conf 中设置 support_enctypes 且不包含 desdes3
    2. 对于每个主机,在 /etc/krb5.conf 以及 /etc/krb5.conf.d 中的任意文件,将 allow_weak_crypto 设为 false。默认为 false。
    3. 对于每个主机,在 /etc/krb5.conf 以及 /etc/krb5.conf.d 中的任何文件中,设置 permitted_enctypesdefault_tgs_enctypesdefault_tkt_enctypes,但不包括 desdes3
  4. 如果您没有遇到上一步中测试 Kerberos 设置的服务中断,请删除并升级它们。升级到最新的 Kerberos 软件包后您不需要这些设置。

Bugzilla:1877991

libwbclient 的 SSSD 版本已被删除

libwbclient 软件包的 SSSD 实现在 RHEL 8.4 中已被弃用。因为无法与 Samba 的最新版本一起使用, libwbclient 的 SSSD 实现现已被删除。

Bugzilla:1947671

单独使用 ctdb 服务已弃用

从 RHEL 8.4 开始,建议客户仅在满足以下条件时使用 ctdb 集群 Samba 服务:

  • ctdb 服务通过资源代理ctdb作为 pacemaker 资源进行管理。
  • ctdb 服务使用包含由红帽 Gluster 存储产品提供的 GlusterFS 文件系统或 GFS2 文件系统的存储卷。

ctdb 服务的独立用例已被弃用,其不会包含在 Red Hat Enterprise Linux 的下一个主版本中。有关 Samba 支持政策的更多信息,请参阅 RHEL Resilient Storage - ctdb 常规政策的支持政策

Bugzilla:1916296[1]

对 FreeRADIUS 的有限支持

在 RHEL 8 中,以下外部身份验证模块作为 FreeRADIUS 产品的一部分被弃用:

  • MySQL、PostgreSQL、SQlite 和 unixODBC 数据库连接器
  • Perl 语言模块
  • REST API 模块
注意

PAM 身份验证模块以及其它作为基础软件包的一部分提供的身份验证模块不受影响。

您可以在社区支持的软件包中找到已弃用模块的替代品,例如在 Fedora 项目中。

另外,freeradius 软件包的支持范围将被限制在未来 RHEL 版本中的以下用例:

  • 将 FreeRADIUS 用作身份管理(IdM)的身份验证提供者,作为身份验证的后端源。身份验证通过 krb5 和 LDAP 身份验证软件包中发生或作为主 FreeRADIUS 软件包中的 PAM 身份验证。
  • 通过 Python 3 身份验证软件包,使用 FreeRADIUS 在 IdM 中提供身份验证的真实源。

与这些弃用相反,红帽将增强对以下带有 FreeRADIUS 的外部身份验证模块的支持:

  • 基于 krb5 和 LDAP 的身份验证
  • Python 3 身份验证

这些集成选项的重点在于与红帽 IdM 的战略方向紧密一致。

Jira:RHELDOCS-17573[1]

通过 WinSync 与 IdM 的间接 AD 集成已弃用

由于一些功能的限制,不会在 RHEL 8 中对 WinSync 进行积极的开发:

  • WinSync 只支持一个活动目录(AD)域。
  • 密码同步需要在 AD 域控制器上安装额外的软件。

对于具有更好的资源和安全分离的更健壮的解决方案,红帽建议对于与活动目录的间接集成使用 跨林信任 。请参阅 间接集成 文档。

Jira:RHELPLAN-100400[1]

以 PDC 或 BDC 的形式运行 Samba 已被弃用

典型的域控制器模式使管理员能够作为 NT4 运行 Samba,如主域控制器(PDC)和备份域控制器(BDC)已被弃用。用于配置这些模式的代码和设置将在以后的 Samba 发行版本中删除。

只要 RHEL 8 中的 Samba 版本提供 PDC 和 BDC 模式,红帽就仅在带有支持 NT4 域的 Windows 版本的现有安装中支持这些模式。红帽建议不要设置新的 Samba NT4 域,因为 Microsoft 操作系统稍后于 Windows 7 和 Windows Server 2008 R2 不支持 NT4 域。

如果您使用 PDC 仅验证 Linux 用户,红帽建议迁移到 RHEL 订阅中包含的 Red Hat Identity Management(IdM)。但是,您无法将 Windows 系统加入到 IdM 域中。请注意,红帽继续支持在后台使用 PDC 功能 IdM。

红帽不支持将 Samba 作为 AD 域控制器(DC)运行。

Bugzilla:1926114

SMB1 协议在 Samba 中被弃用

从 Samba 4.11 开始,不安全的服务器消息块版本 1 (SMB1)协议已弃用,并将在以后的发行版本中删除。

为提高安全性,SMB1 默认在 Samba 服务器和客户端工具中被禁用。

Jira:RHELDOCS-16612[1]

8.15. 桌面

libgnome-keyring 库已弃用

libgnome-keyring 库已弃用,现在使用 libsecret 库,因为 libgnome-keyring 没有被上游维护,且不会遵循 RHEL 所需的加密策略。新的 libsecret 库是符合所需安全标准的替换。

Bugzilla:1607766[1]

libreoffice 已被弃用

LibreOffice RPM 软件包现已弃用,并将在以后的主 RHEL 发行版本中删除。LibreOffice 在 RHEL 7、8 和 9 的整个生命周期中仍然被完全支持。

作为 RPM 软件包的替代,红帽建议您从 Document Foundation 提供的以下源中安装 LibreOffice:

Jira:RHELDOCS-16300[1]

弃用了几个位图字体

以下位图字体软件包已弃用:

  • bitmap-console-fonts
  • bitmap-fixed-fonts
  • bitmap-fonts-compat
  • bitmap-lucida-typewriter-fonts

位图字体有一个像素大小的限制。当您尝试设置不可用的字体大小时,文本可能会以不同的大小或不同的字体显示,可能是一个可扩展的字体。这也降低了位图字体的渲染质量,并破坏了用户体验。

此外,fontconfig 系统会忽略可移植的编译格式(PCF),一个主要的位图字体格式,因为它不包含估计语言覆盖的元数据。

请注意,bitmap-fangsongti-fonts 位图字体软件包作为 Lorax 工具的依赖项继续被支持。

Jira:RHELDOCS-17623[1]

8.16. 图形基础结构

不再支持 AGP 图形卡

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

Bugzilla:1569610[1]

Motif 已被弃用

Motif 小部件工具包已在 RHEL 中被弃用,因为上游 Motif 社区的开发不活跃。

以下 Motif 软件包已被弃用,包括其开发和调试变体:

  • motif
  • openmotif
  • openmotif21
  • openmotif22

另外,motif-static 软件包已删除。

红帽建议使用 GTK 工具包作为替代品。与 Motif 相比,GTK更易于维护,并提供了新功能。

JIRA:RHELPLAN-98983[1]

8.17. Web 控制台

Web 控制台不再支持不完整翻译

RHEL web 控制台不再提供翻译少于 50% 的语言支持。如果浏览器要求转换成这种语言,用户界面将为英语。

Bugzilla:1666722

remotectl 命令已弃用

remotectl 命令已弃用,并将在以后的 RHEL 版本中不可用。您可以使用 cockpit-certificate-ensure 命令作为替代。但请注意,cockpit-certificate-ensure 没有与 remotectl 相同的功能。它不支持捆绑的证书和密钥 keychain 文件,并要求将它们拆分。

Jira:RHELPLAN-147538[1]

8.18. Red Hat Enterprise Linux 系统角色

在 RHEL 9 节点上配置团队时,network 系统角色会显示一条弃用警告

RHEL 9 中弃用了网络协作功能。因此,在 RHEL 8 控制节点上使用 network RHEL 系统角色在 RHEL 9 节点上配置网络团队,会显示有关弃用的警告。

Bugzilla:2021685

Ansible Engine 已被弃用

RHEL 8 的早期版本提供了对 Ansible Engine 存储库的访问(有限范围的支持),以启用支持的 RHEL 自动化用例,如 RHEL 系统角色和 Insights 补救措施。Ansible Engine 已被弃用,2023 年 9 月 29 日之后将不再支持 Ansible Engine 2.9 。有关支持的用例的详情,请参阅 RHEL 9 AppStream 中包含的 Ansible Core 软件包的支持范围

用户必须手动将他们的系统从 Ansible Engine 迁移到 Ansible Core。为此,请按照以下步骤操作:

步骤

  1. 检查系统是否正在运行 RHEL 8.7 或更高版本:

    # cat /etc/redhat-release
  2. 卸载 Ansible Engine 2.9:

    # yum remove ansible
  3. 禁用 ansible-2-for-rhel-8-x86_64-rpms 存储库:

    # subscription-manager repos --disable
    ansible-2-for-rhel-8-x86_64-rpms
  4. 从 RHEL 8 AppStream 存储库安装 Ansible Core 软件包:

    # yum install ansible-core

如需了解更多详细信息,请参阅: 在 RHEL 8.6 及之后的版本中使用 Ansible

Bugzilla:2006081

mssql_ha_cluster_run_role 已被弃用

mssql_ha_cluster_run_role 变量已被弃用。改为使用 mssql_manage_ha_cluster 变量。

Jira:RHEL-19203

8.19. 虚拟化

virsh iface-* 命令已被弃用

virsh iface-* 命令(如 virsh iface-startvirsh iface-destroy )现已被弃用,并将在以后的 RHEL 主版本中删除。另外,这些命令会因为配置依赖而经常失败。

因此,建议您不要使用 virsh iface-* 命令来配置和管理主机网络连接。反之,使用 NetworkManager 程序及其相关的管理应用程序,如 nmcli

Bugzilla:1664592[1]

virt-manager 已被弃用

虚拟机管理器(也称 virt-manager) 已弃用。RHEL web 控制台(也称为 Cockpit )旨在在以后的版本中成为其替代品。因此,建议您使用 web 控制台使用 GUI 管理虚拟化。但请注意,virt-manager 中的一些可用功能可能在 RHEL web 控制台中不可用。

Jira:RHELPLAN-10304[1]

对虚拟机快照的支持有限

目前只对使用 UEFI 固件的虚拟机支持创建虚拟机(VM)的快照。另外,在快照操作过程中,QEMU 监控可能会被阻断,这会对某些工作负载的 hypervisor 性能造成负面影响。

另请注意,创建虚拟机快照的当前机制已被弃用,红帽不推荐在生产环境中使用虚拟机快照。

Bugzilla:1686057

Cirrus VGA 虚拟 GPU 类型已弃用

随着 Red Hat Enterprise Linux 的主要更新,Cirrus VGA GPU 设备将在 KVM 虚拟机中不再被支持。因此,红帽建议使用 stdvgavirtio-vga 设备,而不是 Cirrus VGA

Bugzilla:1651994[1]

SPICE 已被弃用

SPICE 远程显示协议已弃用。请注意,RHEL 8 中仍支持 SPICE,但红帽建议您为远程显示流使用备选解决方案:

  • 要访问远程控制台,请使用 VNC 协议。
  • 对于高级远程显示功能,请使用 RDP、HP RGS 或 Mechdyne TGX 等第三方工具。

Bugzilla:1849563[1]

IBM POWER 上的 KVM 已被弃用

在 IBM POWER 硬件中使用 KVM 虚拟化已被弃用。因此,RHEL 8 仍支持 IBM POWER 上的 KVM,但在以后的 RHEL 主发行版本中将不被支持。

Jira:RHELPLAN-71200[1]

使用基于 SHA1 的签名进行 SecureBoot 镜像验证已弃用

在 UEFI(PE/COFF)可执行文件中使用基于 SHA1 的签名执行 SecureBoot 镜像验证已过时。红帽建议改为使用基于 SHA-2 算法或更新算法的签名。

Bugzilla:1935497[1]

使用 SPICE 将智能卡读取器附加到虚拟机已被弃用

SPICE 远程显示协议已在 RHEL 8 中被弃用。由于将智能卡读取器附加到虚拟机(VM)的唯一方法取决于 SPICE 协议,因此在虚拟机中使用智能卡已在 RHEL 8 中被弃用。

在 RHEL 未来的主版本中,将智能卡读取器附加到虚拟机的功能仅被第三方远程视觉解决方案支持。

Bugzilla:2059626

基于 RDMA 的实时迁移已弃用

有了这个更新,使用 Remote Direct Memory Access (RDMA)迁移正在运行的虚拟机已被弃用。因此,仍可以使用 rdma:// 迁移 URI 来通过 RDMA 请求迁移,但这个功能将在以后的 RHEL 主发行版本中不被支持。

Jira:RHELPLAN-153267[1]

8.20. 容器

GIMP flatpakGIMP 模块已弃用

GIMP flatpakGIMP 模块(代表 GNU Image Manipulation Program for raster 图形)现在都标记为已弃用,因为 Python 2 生命周期(EOL)结束,将在下一个主 RHEL 发行版本中删除。作为替换,您可以根据 Python 3 使用上游 flatpak 版本。

Jira:RHEL-18958

基于 Podman varlink 的 API v1.0 已被删除

基于 Podman varlink 的 API v1.0 在之前的 RHEL 8 版本中已弃用。podman v2.0 引入了一个新的 Podman v2.0 RESTful API。Podman v3.0 发行版本中,基于 varlink 的 API v1.0 已被完全删除。

Jira:RHELPLAN-45858[1]

container-tools:1.0 已弃用

container-tools:1.0 模块已弃用,将不再接收安全更新。建议您使用较新支持的稳定模块流,如 container-tools:2.0container-tools:3.0

Jira:RHELPLAN-59825[1]

container-tools:2.0 模块已被弃用

container-tools:2.0 模块已被弃用,并将不再接受安全更新。建议您使用更新的支持的稳定模块流,如 container-tools:3.0

Jira:RHELPLAN-85066[1]

除了 GIMP ,Flatpak 镜像已弃用

rhel8/firefox-flatpak,rhel8/thunderbird-flatpak,rhel8/inkscape-flatpakrhel8/libreoffice-flatpak RHEL 8 Flatpak 应用程序已被弃用,并被 RHEL 9 版本替代。rhel8/gimp-flatpak Flatpak 应用程序已被弃用,因为在 RHEL 9 中还没有替代品。

Bugzilla:2142499

CNI 网络堆栈已弃用

容器网络接口 (CNI)网络堆栈已弃用,并将在以后 RHEL 次要发行本中从 Podman 中删除。在以前的版本中,容器只能通过 DNS 连接到单个 Container Network Interface (CNI)插件。podman v.4.0 引入了一个新的 Netavark 网络堆栈。您可以将 Netavark 网络堆栈与 Podman 和其他Open Container Initiative(OCI)容器管理应用程序一起使用。Podman 的 Netavark 网络堆栈也与高级 Docker 功能兼容。多个网络中的容器可以访问任何这些网络上的容器。

如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELDOCS-16755[1]

container-tools:3.0 已弃用

container-tools:3.0 模块已弃用,将不再接收安全更新。要继续在 RHEL 上构建并运行 Linux 容器,请使用较新的、稳定且受支持的模块流,如 container-tools:4.0

有关切换到更新的流的说明,请参阅 切换到更新的流

Jira:RHELPLAN-146398[1]

rhel8/openssl 已被弃用

rhel8/openssl 容器镜像已被弃用。

Jira:RHELDOCS-18107[1]

Inkscape 和 LibreOffice Flatpak 镜像已弃用

作为技术预览提供的 rhel9/inkscape-flatpakrhel9/libreoffice-flatpak Flatpak 镜像已被弃用。

红帽建议对这些镜像使用以下替代方案:

  • 要替换 rhel9/inkscape-flatpak,请使用 inkscape RPM 软件包。
  • 要替换 rhel9/libreoffice-flatpak,请参阅 LibreOffice 弃用发行注记

Jira:RHELDOCS-17102[1]

pasta 作为网络名称已被弃用

pasta 作为网络名称值的支持已弃用,且在下一个 Podman 的主发行版(版本 5.0)中不被接受。您可以使用 podman run --networkpodman create --network 命令,使用 pasta 网络名称值在 Podman 中创建唯一的网络模式。

Jira:RHELDOCS-17038[1]

BoltDB 数据库后端已弃用

从 RHEL 8.10 开始,BltDB 数据库后端已弃用。在以后的 RHEL 版本中,BoltDB 数据库后端将被删除,并将不再提供给 Podman。对于 Podman,使用 SQLite 数据库后端,这是 RHEL 8.10 的默认后端。

Jira:RHELDOCS-17461[1]

CNI 网络堆栈已弃用

Container Network Interface (CNI)网络堆栈已弃用,并将在以后的发行版本中删除。使用 Netavark 网络堆栈替代。如需更多信息,请参阅 将网络堆栈从 CNI 切换到 Netavark

Jira:RHELDOCS-17518[1]

container-tools:4.0 已弃用

container-tools:4.0 模块已弃用,将不再接收安全更新。要继续在 RHEL 上构建并运行 Linux 容器,请使用更新的、稳定的和支持的模块流 container-tools:rhel8

有关切换到更新的流的说明,请参阅 切换到更新的流

Jira:RHELPLAN-168223[1]

8.21. 已弃用的软件包

本节列出了已弃用的软件包,可能不会包括在 Red Hat Enterprise Linux 未来的主发行版本中。

有关对 RHEL 7 和 RHEL 8 间软件包的更改,请参阅 采用 RHEL 8 的注意事项 文档中的 对软件包的更改

重要

已弃用软件包的支持状态在 RHEL 8 中保持不变。有关支持长度的更多信息,请参阅 Red Hat Enterprise Linux 生命周期Red Hat Enterprise Linux 应用程序流生命周期

以下软件包已在 RHEL 8 中弃用:

  • 389-ds-base-legacy-tools
  • abrt
  • abrt-addon-ccpp
  • abrt-addon-kerneloops
  • abrt-addon-pstoreoops
  • abrt-addon-vmcore
  • abrt-addon-xorg
  • abrt-cli
  • abrt-console-notification
  • abrt-dbus
  • abrt-desktop
  • abrt-gui
  • abrt-gui-libs
  • abrt-libs
  • abrt-tui
  • adobe-source-sans-pro-fonts
  • adwaita-qt
  • alsa-plugins-pulseaudio
  • amanda
  • amanda-client
  • amanda-libs
  • amanda-server
  • ant-contrib
  • antlr3
  • antlr32
  • aopalliance
  • apache-commons-collections
  • apache-commons-compress
  • apache-commons-exec
  • apache-commons-jxpath
  • apache-commons-parent
  • apache-ivy
  • apache-parent
  • apache-resource-bundles
  • apache-sshd
  • apiguardian
  • arpwatch
  • aspnetcore-runtime-3.0
  • aspnetcore-runtime-3.1
  • aspnetcore-runtime-5.0
  • aspnetcore-targeting-pack-3.0
  • aspnetcore-targeting-pack-3.1
  • aspnetcore-targeting-pack-5.0
  • assertj-core
  • authd
  • auto
  • autoconf213
  • autogen
  • autogen-libopts
  • awscli
  • base64coder
  • bash-doc
  • batik
  • batik-css
  • batik-util
  • bea-stax
  • bea-stax-api
  • bind-export-devel
  • bind-export-libs
  • bind-libs-lite
  • bind-pkcs11
  • bind-pkcs11-devel
  • bind-pkcs11-libs
  • bind-pkcs11-utils
  • bind-sdb
  • bind-sdb
  • bind-sdb-chroot
  • bitmap-console-fonts
  • bitmap-fixed-fonts
  • bitmap-fonts-compat
  • bitmap-lucida-typewriter-fonts
  • bluez-hid2hci
  • boost-jam
  • boost-signals
  • bouncycastle
  • bpg-algeti-fonts
  • bpg-chveulebrivi-fonts
  • bpg-classic-fonts
  • bpg-courier-fonts
  • bpg-courier-s-fonts
  • bpg-dedaena-block-fonts
  • bpg-dejavu-sans-fonts
  • bpg-elite-fonts
  • bpg-excelsior-caps-fonts
  • bpg-excelsior-condenced-fonts
  • bpg-excelsior-fonts
  • bpg-fonts-common
  • bpg-glaho-fonts
  • bpg-gorda-fonts
  • bpg-ingiri-fonts
  • bpg-irubaqidze-fonts
  • bpg-mikhail-stephan-fonts
  • bpg-mrgvlovani-caps-fonts
  • bpg-mrgvlovani-fonts
  • bpg-nateli-caps-fonts
  • bpg-nateli-condenced-fonts
  • bpg-nateli-fonts
  • bpg-nino-medium-cond-fonts
  • bpg-nino-medium-fonts
  • bpg-sans-fonts
  • bpg-sans-medium-fonts
  • bpg-sans-modern-fonts
  • bpg-sans-regular-fonts
  • bpg-serif-fonts
  • bpg-serif-modern-fonts
  • bpg-ucnobi-fonts
  • brlapi-java
  • bsh
  • buildnumber-maven-plugin
  • byaccj
  • cal10n
  • cbi-plugins
  • cdparanoia
  • cdparanoia-devel
  • cdparanoia-libs
  • cdrdao
  • cmirror
  • codehaus-parent
  • codemodel
  • compat-exiv2-026
  • compat-guile18
  • compat-hwloc1
  • compat-libpthread-nonshared
  • compat-libtiff3
  • compat-openssl10
  • compat-sap-c++-11
  • compat-sap-c++-10
  • compat-sap-c++-9
  • createrepo_c-devel
  • ctags
  • ctags-etags
  • culmus-keteryg-fonts
  • culmus-shofar-fonts
  • custodia
  • cyrus-imapd-vzic
  • dbus-c++
  • dbus-c++-devel
  • dbus-c++-glib
  • dbxtool
  • dejavu-fonts-common
  • dhcp-libs
  • directory-maven-plugin
  • directory-maven-plugin-javadoc
  • dirsplit
  • dleyna-connector-dbus
  • dleyna-core
  • dleyna-renderer
  • dleyna-server
  • dnssec-trigger
  • dnssec-trigger-panel
  • dotnet
  • dotnet-apphost-pack-3.0
  • dotnet-apphost-pack-3.1
  • dotnet-apphost-pack-5.0
  • dotnet-host-fxr-2.1
  • dotnet-host-fxr-2.1
  • dotnet-hostfxr-3.0
  • dotnet-hostfxr-3.1
  • dotnet-hostfxr-5.0
  • dotnet-runtime-2.1
  • dotnet-runtime-3.0
  • dotnet-runtime-3.1
  • dotnet-runtime-5.0
  • dotnet-sdk-2.1
  • dotnet-sdk-2.1.5xx
  • dotnet-sdk-3.0
  • dotnet-sdk-3.1
  • dotnet-sdk-5.0
  • dotnet-targeting-pack-3.0
  • dotnet-targeting-pack-3.1
  • dotnet-targeting-pack-5.0
  • dotnet-templates-3.0
  • dotnet-templates-3.1
  • dotnet-templates-5.0
  • dotnet5.0-build-reference-packages
  • dptfxtract
  • drpm
  • drpm-devel
  • dump
  • dvd+rw-tools
  • dyninst-static
  • eclipse-ecf
  • eclipse-ecf-core
  • eclipse-ecf-runtime
  • eclipse-emf
  • eclipse-emf-core
  • eclipse-emf-runtime
  • eclipse-emf-xsd
  • eclipse-equinox-osgi
  • eclipse-jdt
  • eclipse-license
  • eclipse-p2-discovery
  • eclipse-pde
  • eclipse-platform
  • eclipse-swt
  • ed25519-java
  • ee4j-parent
  • elfutils-devel-static
  • elfutils-libelf-devel-static
  • emacs-terminal
  • emoji-picker
  • enca
  • enca-devel
  • environment-modules-compat
  • evince-browser-plugin
  • exec-maven-plugin
  • farstream02
  • felix-gogo-command
  • felix-gogo-runtime
  • felix-gogo-shell
  • felix-scr
  • felix-osgi-compendium
  • felix-osgi-core
  • felix-osgi-foundation
  • felix-parent
  • file-roller
  • fipscheck
  • fipscheck-devel
  • fipscheck-lib
  • firewire
  • fonts-tweak-tool
  • forge-parent
  • freeradius-mysql
  • freeradius-perl
  • freeradius-postgresql
  • freeradius-rest
  • freeradius-sqlite
  • freeradius-unixODBC
  • fuse-sshfs
  • fusesource-pom
  • future
  • gamin
  • gamin-devel
  • gavl
  • gcc-toolset-9
  • gcc-toolset-9-annobin
  • gcc-toolset-9-build
  • gcc-toolset-9-perftools
  • gcc-toolset-9-runtime
  • gcc-toolset-9-toolchain
  • gcc-toolset-10
  • gcc-toolset-10-annobin
  • gcc-toolset-10-binutils
  • gcc-toolset-10-binutils-devel
  • gcc-toolset-10-build
  • gcc-toolset-10-dwz
  • gcc-toolset-10-dyninst
  • gcc-toolset-10-dyninst-devel
  • gcc-toolset-10-elfutils
  • gcc-toolset-10-elfutils-debuginfod-client
  • gcc-toolset-10-elfutils-debuginfod-client-devel
  • gcc-toolset-10-elfutils-devel
  • gcc-toolset-10-elfutils-libelf
  • gcc-toolset-10-elfutils-libelf-devel
  • gcc-toolset-10-elfutils-libs
  • gcc-toolset-10-gcc
  • gcc-toolset-10-gcc-c++
  • gcc-toolset-10-gcc-gdb-plugin
  • gcc-toolset-10-gcc-gfortran
  • gcc-toolset-10-gdb
  • gcc-toolset-10-gdb-doc
  • gcc-toolset-10-gdb-gdbserver
  • gcc-toolset-10-libasan-devel
  • gcc-toolset-10-libatomic-devel
  • gcc-toolset-10-libitm-devel
  • gcc-toolset-10-liblsan-devel
  • gcc-toolset-10-libquadmath-devel
  • gcc-toolset-10-libstdc++-devel
  • gcc-toolset-10-libstdc++-docs
  • gcc-toolset-10-libtsan-devel
  • gcc-toolset-10-libubsan-devel
  • gcc-toolset-10-ltrace
  • gcc-toolset-10-make
  • gcc-toolset-10-make-devel
  • gcc-toolset-10-perftools
  • gcc-toolset-10-runtime
  • gcc-toolset-10-strace
  • gcc-toolset-10-systemtap
  • gcc-toolset-10-systemtap-client
  • gcc-toolset-10-systemtap-devel
  • gcc-toolset-10-systemtap-initscript
  • gcc-toolset-10-systemtap-runtime
  • gcc-toolset-10-systemtap-sdt-devel
  • gcc-toolset-10-systemtap-server
  • gcc-toolset-10-toolchain
  • gcc-toolset-10-valgrind
  • gcc-toolset-10-valgrind-devel
  • gcc-toolset-11-make-devel
  • gcc-toolset-12-annobin-annocheck
  • gcc-toolset-12-annobin-docs
  • gcc-toolset-12-annobin-plugin-gcc
  • gcc-toolset-12-binutils
  • gcc-toolset-12-binutils-devel
  • gcc-toolset-12-binutils-gold
  • GConf2
  • GConf2-devel
  • gegl
  • genisoimage
  • genwqe-tools
  • genwqe-vpd
  • genwqe-zlib
  • genwqe-zlib-devel
  • geoipupdate
  • geronimo-annotation
  • geronimo-jms
  • geronimo-jpa
  • geronimo-parent-poms
  • gfbgraph
  • gflags
  • gflags-devel
  • glassfish-annotation-api
  • glassfish-el
  • glassfish-fastinfoset
  • glassfish-jaxb-core
  • glassfish-jaxb-txw2
  • glassfish-jsp
  • glassfish-jsp-api
  • glassfish-legal
  • glassfish-master-pom
  • glassfish-servlet-api
  • glew-devel
  • glib2-fam
  • glog
  • glog-devel
  • gmock
  • gmock-devel
  • gnome-abrt
  • gnome-boxes
  • gnome-menus-devel
  • gnome-online-miners
  • gnome-shell-extension-disable-screenshield
  • gnome-shell-extension-horizontal-workspaces
  • gnome-shell-extension-no-hot-corner
  • gnome-shell-extension-window-grouper
  • gnome-themes-standard
  • gnu-free-fonts-common
  • gnu-free-mono-fonts
  • gnu-free-sans-fonts
  • gnu-free-serif-fonts
  • gnupg2-smime
  • gnuplot
  • gnuplot-common
  • gobject-introspection-devel
  • google-droid-kufi-fonts
  • google-gson
  • google-noto-kufi-arabic-fonts
  • google-noto-naskh-arabic-fonts
  • google-noto-naskh-arabic-ui-fonts
  • google-noto-nastaliq-urdu-fonts
  • google-noto-sans-balinese-fonts
  • google-noto-sans-bamum-fonts
  • google-noto-sans-batak-fonts
  • google-noto-sans-buginese-fonts
  • google-noto-sans-buhid-fonts
  • google-noto-sans-canadian-aboriginal-fonts
  • google-noto-sans-cham-fonts
  • google-noto-sans-cuneiform-fonts
  • google-noto-sans-cypriot-fonts
  • google-noto-sans-gothic-fonts
  • google-noto-sans-gurmukhi-ui-fonts
  • google-noto-sans-hanunoo-fonts
  • google-noto-sans-inscriptional-pahlavi-fonts
  • google-noto-sans-inscriptional-parthian-fonts
  • google-noto-sans-javanese-fonts
  • google-noto-sans-lepcha-fonts
  • google-noto-sans-limbu-fonts
  • google-noto-sans-linear-b-fonts
  • google-noto-sans-lisu-fonts
  • google-noto-sans-mandaic-fonts
  • google-noto-sans-meetei-mayek-fonts
  • google-noto-sans-mongolian-fonts
  • google-noto-sans-myanmar-fonts
  • google-noto-sans-myanmar-ui-fonts
  • google-noto-sans-new-tai-lue-fonts
  • google-noto-sans-ogham-fonts
  • google-noto-sans-ol-chiki-fonts
  • google-noto-sans-old-italic-fonts
  • google-noto-sans-old-persian-fonts
  • google-noto-sans-oriya-fonts
  • google-noto-sans-oriya-ui-fonts
  • google-noto-sans-phags-pa-fonts
  • google-noto-sans-rejang-fonts
  • google-noto-sans-runic-fonts
  • google-noto-sans-samaritan-fonts
  • google-noto-sans-saurashtra-fonts
  • google-noto-sans-sundanese-fonts
  • google-noto-sans-syloti-nagri-fonts
  • google-noto-sans-syriac-eastern-fonts
  • google-noto-sans-syriac-estrangela-fonts
  • google-noto-sans-syriac-western-fonts
  • google-noto-sans-tagalog-fonts
  • google-noto-sans-tagbanwa-fonts
  • google-noto-sans-tai-le-fonts
  • google-noto-sans-tai-tham-fonts
  • google-noto-sans-tai-viet-fonts
  • google-noto-sans-tibetan-fonts
  • google-noto-sans-tifinagh-fonts
  • google-noto-sans-ui-fonts
  • google-noto-sans-yi-fonts
  • google-noto-serif-bengali-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
  • gphoto2
  • graphviz-ruby
  • gsl-devel
  • gssntlmssp
  • gtest
  • gtest-devel
  • gtkmm24
  • gtkmm24-devel
  • gtkmm24-docs
  • gtksourceview3
  • gtksourceview3-devel
  • gtkspell
  • gtkspell-devel
  • gtkspell3
  • guile
  • gutenprint-gimp
  • gutenprint-libs-ui
  • gvfs-afc
  • gvfs-afp
  • gvfs-archive
  • hamcrest-core
  • hawtjni
  • hawtjni
  • hawtjni-runtime
  • HdrHistogram
  • HdrHistogram-javadoc
  • highlight-gui
  • hivex-devel
  • 主机名
  • hplip-gui
  • hspell
  • httpcomponents-project
  • hwloc-plugins
  • hyphen-fo
  • hyphen-grc
  • hyphen-hsb
  • hyphen-ia
  • hyphen-is
  • hyphen-ku
  • hyphen-mi
  • hyphen-mn
  • hyphen-sa
  • hyphen-tk
  • ibus-sayura
  • icedax
  • icu4j
  • idm-console-framework
  • Inkscape
  • inkscape-docs
  • inkscape-view
  • iptables
  • ipython
  • isl
  • isl-devel
  • isorelax
  • istack-commons-runtime
  • istack-commons-tools
  • iwl3945-firmware
  • iwl4965-firmware
  • iwl6000-firmware
  • jacoco
  • jaf
  • jaf-javadoc
  • jakarta-oro
  • janino
  • jansi-native
  • jarjar
  • java-1.8.0-ibm
  • java-1.8.0-ibm-demo
  • java-1.8.0-ibm-devel
  • java-1.8.0-ibm-headless
  • java-1.8.0-ibm-jdbc
  • java-1.8.0-ibm-plugin
  • java-1.8.0-ibm-src
  • java-1.8.0-ibm-webstart
  • java-1.8.0-openjdk-accessibility
  • java-1.8.0-openjdk-accessibility-slowdebug
  • java_cup
  • java-atk-wrapper
  • javacc
  • javacc-maven-plugin
  • javaewah
  • javaparser
  • javapoet
  • javassist
  • javassist-javadoc
  • jaxen
  • jboss-annotations-1.2-api
  • jboss-interceptors-1.2-api
  • jboss-logmanager
  • jboss-parent
  • jctools
  • jdepend
  • jdependency
  • jdom
  • jdom2
  • jetty
  • jetty-continuation
  • jetty-http
  • jetty-io
  • jetty-security
  • jetty-server
  • jetty-servlet
  • jetty-util
  • jffi
  • jflex
  • jgit
  • jline
  • jmc
  • jnr-netdb
  • jolokia-jvm-agent
  • js-uglify
  • jsch
  • json_simple
  • jss-javadoc
  • jtidy
  • junit5
  • jvnet-parent
  • jzlib
  • kernel-cross-headers
  • khmeros-fonts-common
  • ksc
  • kurdit-unikurd-web-fonts
  • kyotocabinet-libs
  • langtable-data
  • ldapjdk-javadoc
  • lensfun
  • lensfun-devel
  • lftp-scripts
  • libaec
  • libaec-devel
  • libappindicator-gtk3
  • libappindicator-gtk3-devel
  • libatomic-static
  • libavc1394
  • libblocksruntime
  • libcacard
  • libcacard-devel
  • libcgroup
  • libcgroup-pam
  • libcgroup-tools
  • libchamplain
  • libchamplain-devel
  • libchamplain-gtk
  • libcroco
  • libcroco-devel
  • libcxl
  • libcxl-devel
  • libdap
  • libdap-devel
  • libdazzle-devel
  • libdbusmenu
  • libdbusmenu-devel
  • libdbusmenu-doc
  • libdbusmenu-gtk3
  • libdbusmenu-gtk3-devel
  • libdc1394
  • libdnet
  • libdnet-devel
  • libdv
  • libdwarf
  • libdwarf-devel
  • libdwarf-static
  • libdwarf-tools
  • libeasyfc
  • libeasyfc-gobject
  • libepubgen-devel
  • libertas-sd8686-firmware
  • libertas-usb8388-firmware
  • libertas-usb8388-olpc-firmware
  • libgdither
  • libGLEW
  • libgovirt
  • libguestfs-benchmarking
  • libguestfs-devel
  • libguestfs-gfs2
  • libguestfs-gobject
  • libguestfs-gobject-devel
  • libguestfs-java
  • libguestfs-java-devel
  • libguestfs-javadoc
  • libguestfs-man-pages-ja
  • libguestfs-man-pages-uk
  • libguestfs-tools
  • libguestfs-tools-c
  • libhugetlbfs
  • libhugetlbfs-devel
  • libhugetlbfs-utils
  • libicu-doc
  • libIDL
  • libIDL-devel
  • libidn
  • libiec61883
  • libindicator-gtk3
  • libindicator-gtk3-devel
  • libiscsi-devel
  • libjose-devel
  • libkkc
  • libkkc-common
  • libkkc-data
  • libldb-devel
  • liblogging
  • libluksmeta-devel
  • libmalaga
  • libmcpp
  • libmemcached
  • libmemcached-libs
  • libmetalink
  • libmodulemd1
  • libmongocrypt
  • libmtp-devel
  • libmusicbrainz5
  • libmusicbrainz5-devel
  • libnbd-devel
  • libnice
  • libnice-gstreamer1
  • liboauth
  • liboauth-devel
  • libpfm-static
  • libpng12
  • libpsm2-compat
  • libpurple
  • libpurple-devel
  • libraw1394
  • libreport-plugin-mailx
  • libreport-plugin-rhtsupport
  • libreport-plugin-ureport
  • libreport-rhel
  • libreport-rhel-bugzilla
  • librpmem
  • librpmem-debug
  • librpmem-devel
  • libsass
  • libsass-devel
  • libselinux-python
  • libsqlite3x
  • libtalloc-devel
  • libtar
  • libtdb-devel
  • libtevent-devel
  • libtpms-devel
  • libunwind
  • libusal
  • libvarlink
  • libverto-libevent
  • libvirt-admin
  • libvirt-bash-completion
  • libvirt-daemon-driver-storage-gluster
  • libvirt-daemon-driver-storage-iscsi-direct
  • libvirt-devel
  • libvirt-docs
  • libvirt-gconfig
  • libvirt-gobject
  • libvirt-lock-sanlock
  • libvirt-wireshark
  • libvmem
  • libvmem-debug
  • libvmem-devel
  • libvmmalloc
  • libvmmalloc-debug
  • libvmmalloc-devel
  • libvncserver
  • libwinpr-devel
  • libwmf
  • libwmf-devel
  • libwmf-lite
  • libXNVCtrl
  • libyami
  • log4j12
  • log4j12-javadoc
  • lohit-malayalam-fonts
  • lohit-nepali-fonts
  • lorax-composer
  • lua-guestfs
  • lucene
  • lucene-analysis
  • lucene-analyzers-smartcn
  • lucene-queries
  • lucene-queryparser
  • Lucene-sandbox
  • lz4-java
  • lz4-java-javadoc
  • mailman
  • mailx
  • make-devel
  • malaga
  • malaga-suomi-voikko
  • marisa
  • maven-antrun-plugin
  • maven-assembly-plugin
  • maven-clean-plugin
  • maven-dependency-analyzer
  • maven-dependency-plugin
  • maven-doxia
  • maven-doxia-sitetools
  • maven-install-plugin
  • maven-invoker
  • maven-invoker-plugin
  • maven-parent
  • maven-plugins-pom
  • maven-reporting-api
  • maven-reporting-impl
  • maven-resolver-api
  • maven-resolver-connector-basic
  • maven-resolver-impl
  • maven-resolver-spi
  • maven-resolver-transport-wagon
  • maven-resolver-util
  • maven-scm
  • maven-script-interpreter
  • maven-shade-plugin
  • maven-shared
  • maven-verifier
  • maven-wagon-file
  • maven-wagon-http
  • maven-wagon-http-shared
  • maven-wagon-provider-api
  • maven2
  • meanwhile
  • mercurial
  • mercurial-hgk
  • meetis
  • metis-devel
  • mingw32-bzip2
  • mingw32-bzip2-static
  • mingw32-cairo
  • mingw32-expat
  • mingw32-fontconfig
  • mingw32-freetype
  • mingw32-freetype-static
  • mingw32-gstreamer1
  • mingw32-harfbuzz
  • mingw32-harfbuzz-static
  • mingw32-icu
  • mingw32-libjpeg-turbo
  • mingw32-libjpeg-turbo-static
  • mingw32-libpng
  • mingw32-libpng-static
  • mingw32-libtiff
  • mingw32-libtiff-static
  • mingw32-openssl
  • mingw32-readline
  • mingw32-sqlite
  • mingw32-sqlite-static
  • mingw64-adwaita-icon-theme
  • mingw64-bzip2
  • mingw64-bzip2-static
  • mingw64-cairo
  • mingw64-expat
  • mingw64-fontconfig
  • mingw64-freetype
  • mingw64-freetype-static
  • mingw64-gstreamer1
  • mingw64-harfbuzz
  • mingw64-harfbuzz-static
  • mingw64-icu
  • mingw64-libjpeg-turbo
  • mingw64-libjpeg-turbo-static
  • mingw64-libpng
  • mingw64-libpng-static
  • mingw64-libtiff
  • mingw64-libtiff-static
  • mingw64-nettle
  • mingw64-openssl
  • mingw64-readline
  • mingw64-sqlite
  • mingw64-sqlite-static
  • modello
  • mojo-parent
  • mongo-c-driver
  • mousetweaks
  • mozjs52
  • mozjs52-devel
  • mozjs60
  • mozjs60-devel
  • mozvoikko
  • msv-javadoc
  • msv-manual
  • munge-maven-plugin
  • mythes-lb
  • mythes-mi
  • mythes-ne
  • nafees-web-naskh-fonts
  • nbd
  • nbdkit-devel
  • nbdkit-example-plugins
  • nbdkit-gzip-plugin
  • nbdkit-plugin-python-common
  • nbdkit-plugin-vddk
  • ncompress
  • ncurses-compat-libs
  • net-tools
  • netcf
  • netcf-devel
  • netcf-libs
  • network-scripts
  • network-scripts-ppp
  • nkf
  • nodejs-devel
  • nodejs-packaging
  • nss_nis
  • nss-pam-ldapd
  • objectweb-asm
  • objectweb-asm-javadoc
  • objectweb-pom
  • ocaml-bisect-ppx
  • ocaml-camlp4
  • ocaml-camlp4-devel
  • ocaml-lwt
  • ocaml-mmap
  • ocaml-ocplib-endian
  • ocaml-ounit
  • ocaml-result
  • ocaml-seq
  • opencryptoki-tpmtok
  • opencv-contrib
  • opencv-core
  • opencv-devel
  • openhpi
  • openhpi-libs
  • OpenIPMI-perl
  • openssh-cavs
  • openssh-ldap
  • openssl-ibmpkcs11
  • opentest4j
  • os-maven-plugin
  • overpass-mono-fonts
  • pakchois
  • pandoc
  • paps-libs
  • paranamer
  • paratype-pt-sans-caption-fonts
  • parfait
  • parfait-examples
  • parfait-javadoc
  • pcp-parfait-agent
  • pcp-pmda-rpm
  • pcp-pmda-vmware
  • pcsc-lite-doc
  • peripety
  • perl-B-Debug
  • perl-B-Lint
  • perl-Class-Factory-Util
  • perl-Class-ISA
  • perl-DateTime-Format-HTTP
  • perl-DateTime-Format-Mail
  • perl-File-CheckTree
  • perl-homedir
  • perl-libxml-perl
  • perl-Locale-Codes
  • perl-Mozilla-LDAP
  • perl-NKF
  • perl-Object-HashBase-tools
  • perl-Package-DeprecationManager
  • perl-Pod-LaTeX
  • perl-Pod-Plainer
  • perl-prefork
  • perl-String-CRC32
  • perl-SUPER
  • perl-Sys-Virt
  • perl-tests
  • perl-YAML-Syck
  • phodav
  • php-recode
  • php-xmlrpc
  • pidgin
  • pidgin-devel
  • pidgin-sipe
  • pinentry-emacs
  • pinentry-gtk
  • pipewire0.2-devel
  • pipewire0.2-libs
  • platform-python-coverage
  • plexus-ant-factory
  • plexus-bsh-factory
  • plexus-cli
  • plexus-component-api
  • plexus-component-factories-pom
  • plexus-components-pom
  • plexus-i18n
  • plexus-interactive
  • plexus-pom
  • plexus-velocity
  • plymouth-plugin-throbgress
  • pmreorder
  • postgresql-test-rpm-macros
  • powermock
  • prometheus-jmx-exporter
  • prometheus-jmx-exporter-openjdk11
  • ptscotch-mpich
  • ptscotch-mpich-devel
  • ptscotch-mpich-devel-parmetis
  • ptscotch-openmpi
  • ptscotch-openmpi-devel
  • purple-sipe
  • pygobject2-doc
  • pygtk2
  • pygtk2-codegen
  • pygtk2-devel
  • pygtk2-doc
  • python-nose-docs
  • python-nss-doc
  • python-podman-api
  • python-psycopg2-doc
  • python-pymongo-doc
  • python-redis
  • python-schedutils
  • python-slip
  • python-sqlalchemy-doc
  • python-varlink
  • python-virtualenv-doc
  • python2-backports
  • python2-backports-ssl_match_hostname
  • python2-bson
  • python2-coverage
  • python2-docs
  • python2-docs-info
  • python2-funcsigs
  • python2-ipaddress
  • python2-mock
  • python2-nose
  • python2-numpy-doc
  • python2-psycopg2-debug
  • python2-psycopg2-tests
  • python2-pymongo
  • python2-pymongo-gridfs
  • python2-pytest-mock
  • python2-sqlalchemy
  • python2-tools
  • python2-virtualenv
  • python3-bson
  • python3-click
  • python3-coverage
  • python3-cpio
  • python3-custodia
  • python3-docs
  • python3-flask
  • python3-gevent
  • python3-gobject-base
  • python3-hivex
  • python3-html5lib
  • python3-hypothesis
  • python3-ipatests
  • python3-itsdangerous
  • python3-jwt
  • python3-libguestfs
  • python3-mock
  • python3-networkx-core
  • python3-nose
  • python3-nss
  • python3-openipmi
  • python3-pillow
  • python3-ptyprocess
  • python3-pydbus
  • python3-pymongo
  • python3-pymongo-gridfs
  • python3-pyOpenSSL
  • python3-pytoml
  • python3-reportlab
  • python3-schedutils
  • python3-scons
  • python3-semantic_version
  • python3-slip
  • python3-slip-dbus
  • python3-sqlalchemy
  • python3-syspurpose
  • python3-virtualenv
  • python3-webencodings
  • python3-werkzeug
  • python38-asn1crypto
  • python38-numpy-doc
  • python38-psycopg2-doc
  • python38-psycopg2-tests
  • python39-numpy-doc
  • python39-psycopg2-doc
  • python39-psycopg2-tests
  • qemu-kvm-block-gluster
  • qemu-kvm-block-iscsi
  • qemu-kvm-block-ssh
  • qemu-kvm-hw-usbredir
  • qemu-kvm-device-display-virtio-gpu-gl
  • qemu-kvm-device-display-virtio-gpu-pci-gl
  • qemu-kvm-device-display-virtio-vga-gl
  • qemu-kvm-tests
  • qpdf
  • qpdf-doc
  • qperf
  • qpid-proton
  • qrencode
  • qrencode-devel
  • qrencode-libs
  • qt5-qtcanvas3d
  • qt5-qtcanvas3d-examples
  • rarian
  • rarian-compat
  • re2c
  • recode
  • redhat-lsb
  • redhat-lsb-core
  • redhat-lsb-cxx
  • redhat-lsb-desktop
  • redhat-lsb-languages
  • redhat-lsb-printing
  • redhat-lsb-submod-multimedia
  • redhat-lsb-submod-security
  • redhat-lsb-supplemental
  • redhat-lsb-trialuse
  • redhat-menus
  • redhat-support-lib-python
  • redhat-support-tool
  • reflections
  • regexp
  • relaxngDatatype
  • resteasy-javadoc
  • rhsm-gtk
  • rpm-plugin-prioreset
  • rpmemd
  • rsyslog-udpspoof
  • ruby-hivex
  • ruby-libguestfs
  • rubygem-abrt
  • rubygem-abrt-doc
  • rubygem-bson
  • rubygem-bson-doc
  • rubygem-bundler-doc
  • rubygem-mongo
  • rubygem-mongo-doc
  • rubygem-net-telnet
  • rubygem-xmlrpc
  • s390utils-cmsfs
  • samba-pidl
  • samba-test
  • samba-test-libs
  • samyak-devanagari-fonts
  • samyak-fonts-common
  • samyak-gujarati-fonts
  • samyak-malayalam-fonts
  • samyak-odia-fonts
  • samyak-tamil-fonts
  • sane-frontends
  • sanlk-reset
  • sat4j
  • scala
  • scotch
  • scotch-devel
  • SDL_sound
  • selinux-policy-minimum
  • sendmail
  • sgabios
  • sgabios-bin
  • shim-ia32
  • shrinkwrap
  • sil-padauk-book-fonts
  • sisu-inject
  • sisu-mojos
  • sisu-plexus
  • skkdic
  • SLOF
  • smc-anjalioldlipi-fonts
  • smc-dyuthi-fonts
  • smc-fonts-common
  • smc-kalyani-fonts
  • smc-raghumalayalam-fonts
  • smc-suruma-fonts
  • softhsm-devel
  • sonatype-oss-parent
  • sonatype-plugins-parent
  • sos-collector
  • sparsehash-devel
  • spax
  • spec-version-maven-plugin
  • spice
  • spice-client-win-x64
  • spice-client-win-x86
  • spice-glib
  • spice-glib-devel
  • spice-gtk
  • spice-gtk-tools
  • spice-gtk3
  • spice-gtk3-devel
  • spice-gtk3-vala
  • spice-parent
  • spice-protocol
  • spice-qxl-wddm-dod
  • spice-server
  • spice-server-devel
  • spice-qxl-xddm
  • spice-server
  • spice-streaming-agent
  • spice-vdagent-win-x64
  • spice-vdagent-win-x86
  • sssd-libwbclient
  • star
  • stax-ex
  • stax2-api
  • stringtemplate
  • stringtemplate4
  • subscription-manager-initial-setup-addon
  • subscription-manager-migration
  • subscription-manager-migration-data
  • subversion-javahl
  • SuperLU
  • SuperLU-devel
  • supermin-devel
  • swig
  • swig-doc
  • swig-gdb
  • swtpm-devel
  • swtpm-tools-pkcs11
  • system-storage-manager
  • systemd-tests
  • tcl-brlapi
  • testng
  • thai-scalable-laksaman-fonts
  • tibetan-machine-uni-fonts
  • timedatex
  • torque-libs
  • tpm-quote-tools
  • tpm-tools
  • tpm-tools-pkcs11
  • treelayout
  • trousers
  • trousers-lib
  • tuned-profiles-compat
  • tuned-profiles-nfv-host-bin
  • tuned-utils-systemtap
  • tycho
  • uglify-js
  • unbound-devel
  • univocity-output-tester
  • univocity-parsers
  • usbguard-notifier
  • usbredir-devel
  • utf8cpp
  • uthash
  • velocity
  • vinagre
  • vino
  • virt-dib
  • virt-p2v-maker
  • vm-dump-metrics-devel
  • voikko-tools
  • vorbis-tools
  • weld-parent
  • wodim
  • woodstox-core
  • wqy-microhei-fonts
  • wqy-unibit-fonts
  • xdelta
  • xmlgraphics-commons
  • xmlstreambuffer
  • xinetd
  • xorg-x11-apps
  • xorg-x11-drv-qxl
  • xorg-x11-server-Xspice
  • xpp3
  • xsane-gimp
  • xsom
  • xz-java
  • xz-java-javadoc
  • yajl-devel
  • yp-tools
  • ypbind
  • ypserv
  • zsh-html

8.22. 弃用和不维护的设备

本节列出了继续被支持的设备(驱动程序、适配器)

  • ,直到 RHEL 8 生命周期结束,但可能在这个产品以后的主要发行本中不被支持,不建议在新的部署中使用。对列出的设备的支持不会改变。这些是 弃用的 设备。
  • 可用,但不再在 RHEL 8 中进行常规测试或更新。红帽可能会自行决定修复严重的错误,包括安全漏洞。这些设备不应再在生产环境中使用,很可能会在下一个主发行版本中被禁用。这些是 不维护的 设备。

PCI 设备 ID 采用 vendor:device:subvendor:subdevice 的格式。如果没有列出设备 ID,则与相应驱动程序关联的所有设备都会被弃用。要在您的系统中检查硬件的 PCI ID,请运行 lspci -nn 命令。

表 8.1. 弃用的设备
设备 ID驱动设备名称
 

hns_roce

 
 

ebtables

 
 

arp_tables

 
 

ip_tables

 
 

ip6_tables

 
 

ip6_set

 
 

ip_set

 
 

nft_compat

 
 

usnic_verbs

 
 

vmw_pvrdma

 
 

hfi1

 
 

bnx2

QLogic BCM5706/5708/5709/5716 驱动程序

 

hpsa

惠普公司: 智能阵列控制器

0x10df:0x0724

lpfc

Emulex 公司:OneConnect FCoE Initiator(Skyhawk)

0x10df:0xe200

lpfc

Emulex 公司:LPe15000/LPe16000 系列 8Gb/16Gb 光纤通道适配器

0x10df:0xf011

lpfc

Emulex 公司:Saturn: LightPulse 光纤通道主机适配器

0x10df:0xf015

lpfc

Emulex 公司:Saturn: LightPulse 光纤通道主机适配器

0x10df:0xf100

lpfc

Emulex 公司:LPe12000 系列 8Gb 光纤通道适配器

0x10df:0xfc40

lpfc

Emulex 公司:Saturn-X: LightPulse 光纤通道主机适配器

0x10df:0xe220

be2net

Emulex 公司:OneConnect NIC(Lancer)

0x1000:0x005b

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2208 [Thunderbolt]

0x1000:0x006E

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

0x1000:0x0080

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0081

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0082

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0083

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0084

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0085

mpt3sas

Broadcom / LSI: SAS2208 PCI-Express Fusion-MPT SAS-2

0x1000:0x0086

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

0x1000:0x0087

mpt3sas

Broadcom / LSI: SAS2308 PCI-Express Fusion-MPT SAS-2

 

myri10ge

Myricom 10G 驱动程序(10GbE)

 

netxen_nic

QLogic/NetXen(1/10)GbE 智能以太网驱动程序

0x1077:0x2031

qla2xxx

QLogic 公司: 基于 ISP8324 的 16Gb 光纤通道到 PCI Express 适配器

0x1077:0x2532

qla2xxx

QLogic 公司: 基于 ISP2532 的 8Gb 光纤通道到 PCI Express 适配器

0x1077:0x8031

qla2xxx

QLogic 公司: 8300 系列 10GbE 聚合网络适配器(FCoE)

 

qla3xxx

QLogic ISP3XXX 网络驱动程序 v2.03.00-k5

0x1924:0x0803

sfc

Solarflare 通信: SFC9020 10G 以太网控制器

0x1924:0x0813

sfc

Solarflare 通信: SFL9021 10GBASE-T 以太网控制器

 

Soft-RoCE (rdma_rxe)

 
 

HNS-RoCE

HNS GE/10GE/25GE/50GE/100GE RDMA Network Controller

 

liquidio

Cavium LiquidIO 智能服务器适配器驱动程序

 

liquidio_vf

Cavium LiquidIO 智能服务器适配器虚拟功能驱动程序

表 8.2. 不维护的设备
设备 ID驱动设备名称
 

dl2k

 
 

dlci

 
 

dnet

 
 

hdlc_fr

 
 

rdma_rxe

 
 

nicvf

 
 

nicpf

 
 

siw

 
 

e1000

Intel® PRO/1000 网络驱动程序

 

mptbase

Fusion MPT SAS 主机驱动程序

 

mptsas

Fusion MPT SAS 主机驱动程序

 

mptscsih

Fusion MPT SCSI 主机驱动程序

 

mptspi

Fusion MPT SAS 主机驱动程序

0x1000:0x0071 [a]

megaraid_sas

Broadcom / LSI: MR SAS HBA 2004

0x1000:0x0073 [a]

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2008 [Falcon]

0x1000:0x0079 [a]

megaraid_sas

Broadcom / LSI: MegaRAID SAS 2108 [Liberator]

 

nvmet_tcp

NVMe/TCP 目标驱动程序

 

nvmet-fc

NVMe/Fabrics FC 目标驱动程序

[a] 在 RHEL 8.0 中禁用了,由于客户请求,在 RHEL 8.4 中被重新启用了。

第 9 章 已知问题

这部分论述了 Red Hat Enterprise Linux 8.10 中的已知问题。

9.1. 安装程序和镜像创建

在 IBM Z 上安装 RHEL 时,udev 不会为 FID 枚举的 RoCE 卡分配可预测的接口名称

如果您使用 net.naming-scheme=rhel-8.7 内核命令行选项启动 RHEL 8.7 或更高版本的安装,则 RHEL 安装介质中的 udev 设备管理器会忽略由功能标识符(FID)枚举的 RoCE 卡的此设置。因此,udev 为这些设备分配无法预计的接口名称。在安装过程中没有临时解决方案,但您可以在安装后配置该功能。详情请查看 IBM Z 平台上确定可预测的 RoCE 设备名称

(JIRA:RHEL-11397)

在具有 LPAR 并启用了 secure boot 的 IBM Power 10 系统上安装失败

RHEL 安装程序没有与 IBM Power 10 系统上静态密钥安全引导集成。因此,当使用 secure 引导选项启用逻辑分区(LPAR)时,安装会失败并显示错误,Unable to proceed with RHEL-x.x Installation

要临时解决这个问题,请安装 RHEL 但不启用 secure boot。引导系统后:

  1. 使用 dd 命令将签名的内核复制到 PReP 分区。
  2. 重启系统并启用 secure boot。

当固件验证引导装载程序和内核后,系统会成功启动。

如需更多信息,请参阅 https://www.ibm.com/support/pages/node/6528884

Bugzilla:2025814[1]

在 Anaconda 作为应用程序运行的系统中意外 SELinux 策略

当 Anaconda 作为应用程序运行在已安装的系统上(例如,使用 -image anaconda 选项对镜像文件执行另一次安装)时,不禁止系统在安装过程中修改 SELinux 类型和属性。因此,某些 SELinux 策略的元素可能会在运行Anaconda 的系统上发生更改。

要临时解决这个问题,请不要在生产系统上运行 Anaconda。相反,在临时虚拟机中运行 Anaconda,以使 SELinux 策略在生产系统上保持不变。作为系统安装过程的一部分运行 anaconda,如从 boot.isodvd.iso 安装不会受此问题的影响。

Bugzilla:2050140

authauthconfig Kickstart 命令需要 AppStream 软件仓库

authauthconfig Kickstart 命令在安装过程中需要 authselect-compat 软件包。如果没有这个软件包,如果使用了 authauthconfig,则安装会失败。但根据设计,authselect-compat 软件包只包括在 AppStream 仓库中。

要临时解决这个问题,请验证 BaseOS 和 AppStream 存储库是否对安装程序可用,或者在安装过程中使用 authselect Kickstart 命令。

Bugzilla:1640697[1]

reboot --kexecinst.kexec 命令不提供可预测的系统状态

使用 reboot --kexec Kickstart 命令或 inst.kexec 内核引导参数执行 RHEL 安装不会提供与完全重启相同的可预期系统状态。因此,在不重启的情况下切换安装的系统可能会导致无法预计的结果。

请注意,kexec 功能已弃用,并将在以后的 Red Hat Enterprise Linux 版本中删除。

Bugzilla:1697896[1]

USB CD-ROM 驱动器作为 Anaconda 中的安装源不可用

当源为 USB CD-ROM 驱动器,并且指定了 Kickstart ignoredisk --only-use= 命令时,安装会失败。在这种情况下,Anaconda 无法找到并使用这个源磁盘。

要临时解决这个问题,请使用 harddrive --partition=sdX --dir=/ 命令从 USB CD-ROM 驱动器安装。因此,安装不会失败。

Jira:RHEL-4707

在安装程序中不默认启用网络访问

几个安装功能需要网络访问,例如:使用 Content Delivery Network(CDN)、NTP 服务器支持和网络安装源注册系统。但默认情况下不启用网络访问,因此在启用网络访问前无法使用这些功能。

要临时解决这个问题,请添加 ip=dhcp 在启动安装时启用网络访问。另外,使用引导选项传递 Kickstart 文件或位于网络中的库也会解决这个问题。因此可以使用基于网络的安装功能。

Bugzilla:1757877[1]

带有 iso9660 文件系统的硬盘分区安装失败

您不能在使用 iso9660 文件系统进行分区的系统中安装 RHEL。这是因为将设置为忽略包含 iso9660 文件系统分区的硬盘的更新安装代码。即使在没有使用 DVD 的情况下安装 RHEL,也会发生这种情况。

要临时解决这个问题,请在 Kickstart 文件中添加以下脚本,以便在安装开始前格式化磁盘。

注:在执行临时解决方案前,请备份磁盘上的数据。erafs 命令对磁盘中的所有现有数据进行格式化。

%pre
wipefs -a /dev/sda
%end

因此,安装可以正常工作,且没有任何错误。

Jira:RHEL-4711

HASH MMU 模式的 IBM Power 系统无法引导,并显示内存分配失败

具有 HASH 内存分配单元(MMU) 模式的 IBM Power Systems 最多支持 192 个核的 kdump 。因此,如果在超过 192 个核上启用了 kdump,则系统会无法引导,显示内存分配失败。这个限制是因为 HASH MMU 模式下早期引导过程中的 RMA 内存分配。要临时解决这个问题,请使用启用了 fadumpRadix MMU 模式,而不是使用 kdump

Bugzilla:2028361[1]

RHEL for Edge 安装程序镜像在安装 rpm-ostree 有效负载时无法创建挂载点

当部署 rpm-ostree 有效负载时,例如在 RHEL for Edge 安装程序镜像中,安装程序不会为自定义分区正确创建一些挂载点。因此,安装会中止,并报以下错误:

The command 'mount --bind /mnt/sysimage/data /mnt/sysroot/data' exited with the code 32.

要临时解决这个问题:

  • 使用自动分区方案,且不手动添加任何挂载点。
  • 只在 /var 目录中手动分配挂载点。例如: /var/my-mount-point 和以下标准目录://boot/var

因此,安装过程成功完成。

Jira:RHEL-4744

使用 stig 配置集补救构建的镜像无法引导,并显示 FIPS 错误

RHEL 镜像构建器不支持 FIPS 模式。当使用由 xccdf_org.ssgproject.content_profile_stig 配置文件补救自定义的 RHEL 镜像构建器时,系统无法引导,并显示以下错误:

Warning: /boot//.vmlinuz-<kernel version>.x86_64.hmac does not exist
FATAL: FIPS integrity test failed
Refusing to continue

在系统镜像安装后,使用 fips-mode-setup --enable 命令手动启用 FIPS 策略无法正常工作,因为 /boot 目录在不同的分区上。如果禁用了 FIPS,则系统可以成功引导。目前,还没有可用的临时解决方案。

注意

安装镜像后,您可以使用 fips-mode-setup --enable 命令手动启用 FIPS。

Jira:RHEL-4649

9.2. 安全性

OpenSC 可能无法正确检测 CardOS V5.3 卡对象

OpenSC 工具包没有正确地从某些 CardOS V5.3 卡中使用的不同的 PKCS #15 文件偏移中读取缓存。因此,OpenSC 可能无法列出卡对象,并防止从不同的应用程序使用它们。

要临时解决这个问题,请在 /etc/opensc.conf 文件中设置 use_file_caching = false 选项来关闭文件缓存。

Jira:RHEL-4077

sshd -T 提供关于 Ciphers、MAC 和 KeX 算法的不准确的信息

sshd -T 命令的输出不包含系统范围的加密策略配置或可能来自于环境文件 /etc/sysconfig/sshd 的其他选项,它们作为 sshd 命令的参数被应用。这种情况的发生是因为上游 OpenSSH 项目不支持 Include 指令,以支持 RHEL 8 中红帽提供的加密默认值。在使用 EnvironmentFile 启动sshd.service 单元服务的过程中,加密策略作为命令行参数被应用到 sshd 可执行文件中。要临时解决这个问题,请对环境文件使用 source 命令,并将加密策略作为参数传给 sshd 命令,如 sshd -T $CRYPTO_POLICY 。如需更多信息,请参阅 Ciphers、MAC 或 KeX 算法与 sshd -T 的不同,以了解当前加密策略级别所提供的内容。因此,sshd -T 的输出与当前配置的加密策略匹配。

Bugzilla:2044354[1]

在安装过程中强化系统时,RHV hypervisor 可能无法正常工作

安装 Red Hat Virtualization Hypervisor (RHV-H)并应用 Red Hat Enterprise Linux 8 STIG 配置文件时,OCAP Anaconda 附加组件可能会将系统强化为 RHEL 而不是 RVH-H,并删除 RHV-H 的基本软件包。因此,RHV hypervisor 可能无法正常工作。要临时解决这个问题,请在不应用任何配置文件强化的情况下安装 RHV-H 系统,并在安装完成后使用 OpenSCAP 来应用配置文件。因此,RHV hypervisor 可以正常工作。

Jira:RHEL-1826

CVE OVAL 提要现在仅采用压缩格式,并且数据流不采用 SCAP 1.3 标准

红帽提供 bzip2 压缩格式的 CVE OVAL 提要,且不再以 XML 文件格式提供。因为引用压缩的内容没有在安全内容自动化协议(SCAP) 1.3 规范中标准化,所以第三方 SCAP 扫描程序可能在扫描使用提要的规则时有问题。

Bugzilla:2028428

某些 Rsyslog 优先级字符串无法正常工作

对允许对加密进行精细控制的 imtcp 的 GnuTLS 优先级字符串的支持不完整。因此,以下优先级字符串无法在 Rsyslog 远程日志记录应用程序中正常工作:

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+DHE-RSA:+AES-256-GCM:+SIGN-RSA-SHA384:+COMP-ALL:+GROUP-ALL

要临时解决这个问题,请只使用正确的优先级字符串:

NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+ECDHE-RSA:+AES-128-CBC:+SIGN-RSA-SHA1:+COMP-ALL:+GROUP-ALL

因此,当前的配置必须仅限于可正常工作的字符串。

Bugzilla:1679512

Server with GUIWorkstation 安装可能无法使用 CIS 服务器配置文件

CIS Server Level 1 和 Level 2 安全配置文件与 Server with GUIWorkstation 软件选择不兼容。因此,无法使用 Server with GUI 软件选择和 CIS Server 配置文件进行 RHEL 8 安装。使用 CIS Server Level 1 或 Level 2 配置以及这些软件选择之一尝试安装会产生错误信息:

package xorg-x11-server-common has been added to the list of excluded packages, but it can't be removed from the current software selection without breaking the installation.

如果您需要根据 CIS 基准使系统与 Server with GUIWorkstation 软件选择保持一致,请使用 CIS Workstation Level 1 或 Level 2 配置文件。

Bugzilla:1843932

在 Kickstart 安装过程中修复与服务相关的规则可能会失败

在 Kickstart 安装过程中,OpenSCAP 有时会错误地显示不需要服务 启用或禁用 状态补救。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 Kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。

Bugzilla:1834716

Kickstart 在 RHEL 8 中使用 org_fedora_oscap 而不是 com_redhat_oscap

Kickstart 将 Open Security Content Automation Protocol(OSCAP)Anaconda 附加组件引用为 org_fedora_oscap 而不是 com_redhat_oscap,后者可能会导致混淆。对于保持与 Red Hat Enterprise Linux 7 的兼容性,这是必需的。

Bugzilla:1665082[1]

libvirt overrides xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding

当具有 routenat 转发模式的虚拟网络启动时,libvirt 虚拟化框架都会启用 IPv4 转发。这会通过 xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding 规则覆盖配置,后续合规性扫描在评估此规则时会报告fail结果。

应用其中一个场景来临时解决这个问题:

  • 如果您的场景不需要,请卸载 libvirt 软件包。
  • 更改 libvirt 创建的虚拟网络的转发模式。
  • 通过定制您的配置文件来删除 xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding 规则。

Bugzilla:2118758

fapolicyd 工具错误地允许执行更改的文件

在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd 应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml 程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd 错误地允许更改的文件的执行。

Jira:RHEL-520[1]

semanage fcontext 命令重新排序本地修改

semanage fcontext -l -C 命令列出存储在 file_contexts.local 文件中的本地文件上下文修改。restorecon 工具处理 file_contexts.local 中从最新到最旧的条目。但是 semanage fcontext -l -C 以不同顺序列出条目。处理顺序和列出顺序之间的不匹配可能导致在管理 SELinux 规则时出现问题。

Jira:RHEL-24461[1]

FIPS 模式中的 openssl 只接受特定的 D-H 参数

在 FIPS 模式中,使用 OpenSSL 的 TLS 客户端返回一个 bad dh value 错误,并取消与使用手动生成的参数的服务器的 TLS 连接。这是因为 OpenSSL 当配置为符合 FIPS 140-2 时,只可用于符合 NIST SP 800-56A rev3 附加 D(RFC 3526 中定义的组 14、15、16、17 和 18,以及 RFC 7919)中定义的组。另,,使用 OpenSSL 的服务器会忽略所有其他参数,并选择类似大小的已知参数。要临时解决这个问题,请只使用兼容的组。

Bugzilla:1810911[1]

crypto-policies 错误地允许 Camellia 密码

RHEL 8 系统范围的加密策略应该在所有策略级别禁用 Camellia 密码,如产品文档中所述。但是 Kerberos 协议默认启用密码。

要临时解决这个问题,请应用 NO-CAMELLIA 子策略:

# update-crypto-policies --set DEFAULT:NO-CAMELLIA

在上一个命令中,如果您已经从 DEFAULT 切换,那么将 DEFAULT 替换为加密级名称。

因此,只有在您通过临时解决方案禁用系统范围的加密策略的所有应用程序中,Camellia 密码才会被正确禁止。

Bugzilla:1919155

通过 OpenSC pkcs15-init 的智能卡配置过程无法正常工作

file_caching 选项在默认的 OpenSC 配置中是启用的,文件缓存功能无法正确处理pkcs15-init 工具中的一些命令。因此,通过 OpenSC 进行智能卡置备过程会失败。

要临时解决这个问题,请在 /etc/opensc.conf 文件中添加以下代码段:

app pkcs15-init {
        framework pkcs15 {
                use_file_caching = false;
        }
}

只有在应用了前面描述的临时解决方案时,通过 pkcs15-init 进行智能卡配置才能正常工作。

Bugzilla:1947025

到带有 SHA-1 签名的服务器的连接无法使用 GnuTLS

GnuTLS 安全通讯库以 insecure 形式拒绝 SHA-1 证书签名。因此,使用 GnuTLS 作为 TLS 后端的应用程序无法建立与提供此类证书的对等的 TLS 连接。这个行为与其他系统加密库不一致。

要临时解决这个问题,请升级服务器以使用 SHA-256 或更强大的哈希签名的证书,或切换到 LEGACY 策略。

Bugzilla:1628553[1]

libselinux-python 只能通过其模块提供

libselinux-python 软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 yum install libselinux-python 命令,默认的 RHEL 8 软件仓库中不再提供 libselinux-python

要临时解决这个问题,请启用 libselinux-pythonpython27 模块,并使用以下命令安装 libselinux-python 软件包及其相依性软件包:

# yum module enable libselinux-python
# yum install libselinux-python

或者,使用它的安装配置集在一个命令中安装 libselinux-python:

# yum module install libselinux-python:2.8/common

因此,您可以使用给定的模块安装 libselinux-python

Bugzilla:1666328[1]

UDICA 仅在使用 --env container=podman 启动时才会处理 UBI 8 容器

Red Hat Universal Base Image 8(UBI 8)容器将 container 环境变量设置为 oci 值,而不是 podman 值。这可以防止 udica 工具分析容器 JavaScript Object Notation(JSON)文件。

要临时解决这个问题,请使用带有 --env container=podman 参数的 podman 命令启动 UBI 8 容器。因此,只有在使用上述临时解决方案时,udica才能为UBI 8 容器生成 SELinux 策略。

Bugzilla:1763210

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

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

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

Jira:RHELPLAN-10431[1]

/etc/selinux/config 中的SELINUX=disabled 无法正常工作

/etc/selinux/config 中使用 SELINUX=disabled 选项禁用 SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。

要临时解决这个问题,请在内核命令行中添加 selinux=0 参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。

Jira:RHELPLAN-34199[1]

通过 TCP 连接的 IKE 在自定义 TCP 端口上无法正常工作

tcp-remoteport Libreswan 配置选项无法正常工作。因此,当场景需要指定非默认 TCP 端口时,TCP 连接上的 IKE 无法建立。

Bugzilla:1989050

scap-security-guide 无法配置闲置会话的终止

虽然数据流中仍然存在 sshd_set_idle_timeout 规则,但之前配置 sshd 的会话超时的方法不再可用。因此,该规则被标记为 not applicable ,且无法强化任何内容。其他配置闲置会话终止的方法(如 systemd (Logind))也不可用。因此,scap-security-guide 无法将系统配置为在一定时间后可靠地断开闲置会话。

您可以使用以下方法之一临时解决这个问题,这些方法可能满足安全要求:

  • 配置 accounts_tmout 规则。但是,可以使用 exec 命令覆盖此变量。
  • 配置 configure_tmux_lock_after_timeconfigure_bashrc_exec_tmux 规则。这需要安装 tmux 软件包。
  • 升级到 RHEL 8.7 或更高版本,其中 systemd 功能已与正确的 SCAP 规则一起实施。

Jira:RHEL-1804

OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件

OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:

There was an unexpected problem with the supplied content.

要临时解决这个问题,您必须在 Kickstart 文件的 %addon org_fedora_oscap 部分中指定路径,例如:

xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml

因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。

Jira:RHEL-1810

OpenSCAP 内存消耗问题

在内存有限的系统上,OpenSCAP 扫描程序可能过早停止,或者可能没有生成结果文件。要临时解决这个问题,您可以自定义扫描配置文件,以取消选择涉及递归整个 / 文件系统的规则:

  • rpm_verify_hashes
  • rpm_verify_permissions
  • rpm_verify_ownership
  • file_permissions_unauthorized_world_writable
  • no_files_unowned_by_user
  • dir_perms_world_writable_system_owned
  • file_permissions_unauthorized_suid
  • file_permissions_unauthorized_sgid
  • file_permissions_ungroupowned
  • dir_perms_world_writable_sticky_bits

如需了解更多详细信息和临时解决方案,请参阅相关的 知识库文章

Bugzilla:2161499

重建 rpm 数据库会分配不正确的 SELinux 标签

使用 rpmdb --rebuilddb 命令重建 rpm 数据库,会为 rpm 数据库文件分配不正确的 SELinux 标签。因此,一些使用 rpm 数据库的服务可能无法正常工作。要在重建数据库后临时解决这个问题,请使用 restorecon -Rv /var/lib/rpm 命令重新标记数据库。

Bugzilla:2166153

64 位 ARM 架构上错误地使用了审计的 ANSSI BP28 HP SCAP 规则

SCAP 安全指南(SSG)中的 ANSSI BP28 High 配置文件包含以下安全内容自动化协议(SCAP)规则,后者配置 Linux 审计子系统,但在 64 位 ARM 架构上无效:

  • audit_rules_unsuccessful_file_modification_creat
  • audit_rules_unsuccessful_file_modification_open
  • audit_rules_file_deletion_events_rename
  • audit_rules_file_deletion_events_rmdir
  • audit_rules_file_deletion_events_unlink
  • audit_rules_dac_modification_chmod
  • audit_rules_dac_modification_chown
  • audit_rules_dac_modification_lchown

如果您使用这个配置文件配置在 64 位 ARM 机器上运行的 RHEL 系统,则审计守护进程会因为使用了无效的系统调用而无法启动。

要临时解决这个问题,可以使用定制的配置文件从数据流中删除前面提到的规则,或通过编辑 /etc/audit/rules.d 目录中的文件来删除 -S <syscall> 片段。文件不得包含以下系统调用:

  • Creat
  • open
  • rename
  • rmdir
  • unlink
  • chmod
  • chown
  • lchown

于上述两种临时解决方法中的任何一种,即使在 64 位 ARM 系统上使用 ANSSI BP28 High 配置文件后,审计守护进程也可以启动。

Jira:RHEL-1897

9.3. RHEL for Edge

当包含 nodejsnpm 时,composer-cli 无法构建 RHEL for Edge 镜像

目前,在使用 RHEL 镜像构建器时,您无法使用 nodejsnpm 软件包自定义 RHEL 8 Edge 镜像,因为无法使用 nodejs 软件包构建 RHEL for Edge 镜像。NPM 软件包管理器期望其配置在 {prefix}/etc/npmrc 目录中,npm RPM 软件包在 /usr/etc/npmrc 目录中有一个指向 /etc/npmrc 的符号链接。要临时解决这个问题,请在构建 RHEL for Edge 系统后安装 nodejsnpm 软件包。

Jira:RHELDOCS-17126[1]

9.4. 订阅管理

syspurpose addonssubscription-manager attach --auto 输出没有影响

在 Red Hat Enterprise Linux 8 中,添加了 syspurpose 命令行工具的四个属性:roleusageservice_level_agreementaddons目前,只有 roleusageservice_level_agreement 会影响到运行 subscription-manager attach --auto 命令的输出。试图为 addons 参数设置值的用户不会观察到对自动附加的订阅有任何影响。

Bugzilla:1687900

9.5. 软件管理

即使日志记录服务不可用,YUM 功能或插件也可能记录消息

某些 YUM 功能或插件可能在日志记录服务不可用时将消息记录到标准输出或标准错误输出。日志消息的级别指示消息记录在哪里:

  • 信息消息记录到标准输出。
  • 错误和调试消息记录到标准错误输出。

因此,当编写 YUM 选项脚本时,标准输出或标准错误输出上的不需要的日志消息可能会影响脚本的功能。

要临时解决这个问题,使用 yum -q 命令抑制标准输出和标准错误输出上的日志消息。这抑制了日志消息,但不是在标准输出上预期的命令结果。

Jira:RHELPLAN-50409[1]

cr_compress_file_with_stat() 可能会导致内存泄漏

createrepo_c C 库包含 API cr_compress_file_with_stat() 函数。这个函数被声明为以 char **dst 作为第二个参数。根据其他参数,cr_compress_file_with_stat() 要么使用 dst 作为输入参数,要么使用它来返回一个分配的字符串。这种无法预测的行为可能会导致内存泄漏,因为它不会通知用户何时释放 dst内容。

要临时解决这个问题,增加了一个新的 API cr_compress_file_with_stat_v2 函数,它只使用 dst 参数作为输入。它被声明为 char *dst。这可防止内存泄漏。

请注意,cr_compress_file_with_stat_v2 函数为临时的,仅存在于 RHEL 8 中。之后,cr_compress_file_with_stat() 将会被修复。

Bugzilla:1973588[1]

当 scriptlet 失败时,YUM 事务被报告为成功

从 RPM 版本 4.6 开始,允许安装后 scriptlet 失败,而不会对事务造成致命影响。这个行为也被传播到 YUM。这导致 scriptlets 可能会偶尔失败,而整个软件包事务报告为成功。

目前还没有可用的临时解决方案。

请注意,这是预期行为,其在 RPM 和 YUM 之间保持一致。scriptlet 中的任何问题都应在软件包层面上解决。

Bugzilla:1986657

9.6. Shell 和命令行工具

ipmitool 与某些服务器平台不兼容

ipmitool 工具为监控、配置和管理支持智能平台管理接口(IPMI)的设备提供服务。ipmitool 的当前版本默认使用 Cipher Suite 17,而不是之前的 Cipher Suite 3。因此,ipmitool 无法与在协商过程中与声称支持 Cipher Suite 17 的某些裸机节点通信,但实际上不支持这个加密套件。因此,ipmitool 会停止,并显示 no matching cipher suite 错误消息。

如需了解更多详细信息,请参阅相关的 知识库文章

要解决这个问题,请更新您的基板管理控制器(BMC)固件以使用 Cipher Suite 17。

另外,如果 BMC 固件更新不可用,您可以通过强制 ipmitool 使用特定加密套件来临时解决这个问题。当使用 ipmitool 调用管理任务时,向 ipmitool 命令添加 -C 选项,以及您要使用的加密套件的 编号。请参见以下示例:

# ipmitool -I lanplus -H myserver.example.com -P mypass -C 3 chassis power status

Jira:RHEL-6846

当您不使用清理磁盘进行恢复时,ReaR 无法重新创建卷组

当您要恢复到包含现有数据的磁盘时,ReaR 无法执行恢复。

要临时解决这个问题,如果磁盘之前使用过,请在恢复之前手动擦除磁盘。要在救援环境中擦除磁盘,请在运行 rear recover 命令前使用以下命令之一:

  • 使用 dd 命令覆盖磁盘。
  • 使用带有 -a 标志的 wipefs 命令来清除所有可用的元数据。

请参见以下擦除 /dev/sda 磁盘的元数据的示例:

# wipefs -a /dev/sda[1-9] /dev/sda

此命令首先从 /dev/sda 上的分区擦除元数据,然后是分区表本身。

Bugzilla:1925531

启用了安全引导机制的 UEFI 系统上的 ReaR 救援镜像无法使用默认设置引导

使用 rear mkrescuerear mkbackup 命令创建 ReaR 镜像失败,并显示以下信息:

grub2-mkstandalone might fail to make a bootable EFI image of GRUB2 (no /usr/*/grub*/x86_64-efi/moddep.lst file)
(...)
grub2-mkstandalone: error: /usr/lib/grub/x86_64-efi/modinfo.sh doesn't exist. Please specify --target or --directory.

缺少的文件是 grub2-efi-x64-modules 软件包的一部分。如果您安装此软件包,则会成功创建救援镜像,且没有任何错误。当启用了 UEFI 安全引导时,救援镜像无法引导,因为它使用未签名的引导装载程序。

要临时解决这个问题,请在 /etc/rear/local.conf/etc/rear/site.conf (ReaR 配置文件)中添加以下变量:

UEFI_BOOTLOADER=/boot/efi/EFI/redhat/grubx64.efi
SECURE_BOOT_BOOTLOADER=/boot/efi/EFI/redhat/shimx64.efi

使用推荐的临时解决方案,即使在没有 grub2-efi-x64-modules 软件包的系统上也可以成功生成镜像,它可在启用了安全引导的系统上启动。另外,在系统恢复过程中,恢复的系统的引导加载程序被设置为 EFI shim 引导装载程序。

有关 UEFI安全引导shim 引导装载程序 的更多信息,请参阅 UEFI:引导系统时会发生什么 知识库文章。

Jira:RHELDOCS-18064[1]

coreutils 可能会报告误导性的 EPERM 错误代码

GNU Core 工具(coreutils)使用 statx() 系统调用启动了。如果 seccomp 过滤器为未知系统调用返回 EPERM 错误代码,则 coreutils 可能会报告误导 EPERM 错误代码,因为 EPERM 无法与正常工作的 statx () syscall 返回的实际 Operation not permitted 错误区分开。

要临时解决这个问题,请更新 seccomp 过滤器,使其要么允许 statx() 系统调用,要么对其它不知道的系统调用返回 ENOSYS 错误代码。

Bugzilla:2030661

sysstat 软件包中的 %vmeff 指标显示不正确的值

sysstat 软件包提供 %vmeff 指标来测量页面回收效率。sar -B 命令返回的 %vmeff 列的值不正确,因为 sysstat 不会解析后续内核版本提供的所有相关的 /proc/vmstat 值。要临时解决这个问题,您可以从 /proc/vmstat 文件中手动计算 %vmeff 值。详情请查看 为什么在 RHEL 8 和 RHEL 9 中 sar (1) 工具报告 %vmeff 值超过 100 % ?

Jira:RHEL-12008

sariostat 工具生成的 %utilsvctm 列无效

当您在内核版本 4.18.0-55.el8 或更高版本的系统上使用 sariostat 工具收集系统使用情况统计数据时,sariostat 生成的 %utilsvctm 列可能包含无效的数据。

Jira:RHEL-23074[1]

9.7. 基础架构服务

FIPS 模式中的 postfix TLS 指纹算法需要改为 SHA-256

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

如需了解更多详细信息,请参阅 Fix postfix TLS in the FIPS mode by switching to SHA-256 instead of MD5

Bugzilla:1711885

brltty 软件包与 multilib 不兼容

不可能同时安装 32 位和 64 位版本的 brltty 软件包。您要么安装 32 位(brltty.i686),要么安装 64 位(brltty.x86_64)版本的软件包。建议使用 64 位版本。

Bugzilla:2008197

9.8. 网络

使用 negative_advice () 函数的过时的第三方模块可能会导致内核崩溃

核心网络操作 negative_advice () 调用内联 dst_negative_advice ()__dst_negative_advice () 函数。RHEL 8.10 中的内核修补了这些内联功能中的安全问题(CVE-2024-36971)。如果在修复前编译了第三方模块,则此模块可能会错误地调用 negative_advice ()。因此,第三方模块可能会使内核崩溃。要解决这个问题,请使用正确调用 negative_advice () 函数的更新模块。

Jira:RHELDOCS-18748

RoCE 接口因为网络接口名称的意外更改而丢失了其 IP 设置

如果两个条件都满足,则 RDMA over Converged Ethernet (RoCE)接口会因为网络接口名称的意外更改而丢失其 IP 设置:

  • 用户从 RHEL 8.6 系统或更早的版本升级。
  • RoCE 卡按 UID 枚举。

要临时解决这个问题:

  1. 使用以下内容创建 /etc/systemd/network/98-rhel87-s390x.link 文件:

    [Match]
    Architecture=s390x
    KernelCommandLine=!net.naming-scheme=rhel-8.7
    
    [Link]
    NamePolicy=kernel database slot path
    AlternativeNamesPolicy=database slot path
    MACAddressPolicy=persistent
  2. 重启系统以使更改生效。
  3. 升级到 RHEL 8.7 或更高版本。

请注意,按功能 ID (FID)枚举且不是唯一的 RoCE 接口仍然会使用无法预测的接口名称,除非您设置了 net.naming-scheme=rhel-8.7 内核参数。在这种情况下,RoCE 接口将切换到具有 ens 前缀的可预测的名称。

Jira:RHEL-11398[1]

启用了 IPv6_rpfilter 选项的系统的网络吞吐量较低

firewalld.conf 文件中启用了 IPv6_rpfilter 选项的系统目前在高流量场景(如 100 Gbps 链接)中遇到次优性能和低网络吞吐量。要临时解决这个问题,请禁用 IPv6_rpfilter 选项。为此,请在 /etc/firewalld/firewalld.conf 文件中添加以下行:

IPv6_rpfilter=no

因此,系统性能更好,但安全性也有所降低。

Bugzilla:1871860[1]

9.9. 内核

内核 ACPI 驱动程序报告无法访问 PCIe ECAM 内存区域

固件提供的高级配置和电源接口(ACPI)表没有在 PCI 总线设备中定义内存区域。因此,在系统引导时会出现以下警告信息:

[    2.817152] acpi PNP0A08:00: [Firmware Bug]: ECAM area [mem 0x30000000-0x31ffffff] not reserved in ACPI namespace
[    2.827911] acpi PNP0A08:00: ECAM at [mem 0x30000000-0x31ffffff] for [bus 00-1f]

但是,内核仍然可以访问 0x30000000-0x31ffff 内存区域,并可以正确地将该内存区域分配给 PCI 增强配置访问机制(ECAM)。您可以通过以下输出通过 256 字节偏移访问 PCIe 配置空间来验证 PCI 是正常工作的:

03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD (prog-if 02 [NVM Express])
 ...
        Capabilities: [900 v1] L1 PM Substates
                L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2+ ASPM_L1.1- L1_PM_Substates+
                          PortCommonModeRestoreTime=255us PortTPowerOnTime=10us
                L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
                           T_CommonMode=0us LTR1.2_Threshold=0ns
                L1SubCtl2: T_PwrOn=10us

因此,您可以忽略警告信息。

有关此问题的详情,请参阅 "Firmware Bug: ECAM area mem 0x30000000-0x31ffffff not reserved in ACPI namespace" appears during system boot

Bugzilla:1868526[1]

tuned-adm profile powerave 命令会导致系统变得无响应

执行 tuned-adm profile powersave 命令会导致使用旧的Thunderx(CN88x)处理器的Penguin Valkyrie 2000 2-socket 系统处于无响应状态。因此,需要重启系统以便恢复工作。要临时解决这个问题,如果您的系统符合上述说明,请避免使用 powersave 配置集。

Bugzilla:1609288[1]

HP NMI 监视器并不总是生成崩溃转储

在某些情况下,HP NMI watchdog 的 hpwdt 驱动无法声明一个由 HPE watchdog timer 生成的不可屏蔽中断(NMI),因为 NMI 被 perfmon 驱动所消耗。

缺少的 NMI 是由以下两个条件之一引发的:

  1. Integrated Lights-Out (iLO) 服务器管理软件中的 Generate NMI 按钮。这个按钮由用户触发。
  2. hpwdt watchdog。默认过期会向服务器发送一个 NMI。

在系统无响应时通常会出现这两个序列。在一般情况下,用于这两种情况的 NMI 处理程序调用 kernel panic() 功能,如果配置了, kdump 服务会生成 vmcore 文件。

由于缺少 NMI,没有调用 kernel panic() 且不收集 vmcore

第一种情况(1.),如果系统不响应,它会一直处于这个状态。要临时解决这种情况,请使用虚拟 Power 按钮来重置或者启用服务器。

在第二个示例中(2.),缺少的 NMI 之后会在 9 秒后被自动系统恢复(ASR)重置。

HPE Gen9 服务器行以单位数字显示这个问题。Gen10 频率更小。

Bugzilla:1602962[1]

重新加载相同的崩溃扩展可能会导致分段错误

当您加载已加载的崩溃扩展文件的副本时,可能会触发分段错误。目前,crash 工具会检测原始文件是否已被加载。因此,由于两个完全相同的文件在 crash 工具中并存,因此会发生命名空间冲突,这会触发 crash 工具,从而导致分段错误。

您可以通过只加载 crash 扩展文件一次来临时解决此问题。因此,在描述的场景中不再会出现分段错误。

Bugzilla:1906482

将虚拟功能附加到虚拟机时连接会失败

使用传奇 ionic设备驱动程序的 Pensando 网卡会默默地接受 VLAN 标签配置请求,并在将网络虚拟功能(VF)附加到虚拟机(VM)上时尝试配置网络连接。这些网络连接会失败,因为卡的固件还没有支持这个功能。

Bugzilla:1930576[1]

OPEN MPI 库可能会使用默认 PML 触发运行时失败

在 OPEN 消息密码界面(OPEN MPI)实现 4.0.x 系列中,Unified communicating X(UCX)是默认的点到点通信器(PML)。OPEN MPI 4.0.x 系列的后续版本弃用了 openib Byte Transfer Layer(BTL)。

但是,当OPEN MPI 在 同构 集群(与硬件和软件配置相同)上运行时,UCX 仍然使用openib BTL进行 MPI 单边操作。因此,这可能会触发执行错误。要临时解决这个问题:

  • 使用以下参数运行 mpirun 命令:
-mca btl openib -mca pml ucx -x UCX_NET_DEVICES=mlx5_ib0

其中,

  • -mca btl openib 参数禁用 openib BTL
  • -mca pml ucx 参数将 OPEN MPI 配置为使用 ucx PML。
  • x UCX_NET_DEVICES= 参数限制 UCX 使用指定的设备

OPEN MPI 在使用 异构 集群(不同硬件和软件配置)中运行时,使用 UCX 作为默认的 PML。因此,这可能会导致 OPEN MPI 任务以错误的性能、无响应行为或崩溃失败运行。要临时解决这个问题,将 UCX 优先级设置为:

  • 使用以下参数运行 mpirun 命令:
-mca pml_ucx_priority 5

因此,OPEN MPI 库可以选择使用 UCX 的可替代传输层。

Bugzilla:1866402[1]

在内存热插拔操作后,vmcore 捕获失败

执行内存热插拔操作后,会更新包含内存布局信息的设备树。因此,makedumpfile 实用程序会尝试访问不存在的物理地址。如果以下条件都满足,就会出现问题:

  • IBM Power System 的 little-endian 变体运行 RHEL 8。
  • 在系统中启用了 kdump 或者 fadump 服务。

因此,如果在内存 hot-plug 或 hot-unplug 操作后触发了内核崩溃,捕获内核将无法保存 vmcore

要临时解决这个问题,在 hot-plug 或 hot-unplug 后重启 kdump 服务:

# systemctl restart kdump.service

因此,vmcore 在上述场景中被成功保存。

Bugzilla:1793389[1]

使用 irqpoll 会导致 vmcore 生成失败

由于在 Amazon Web Services Graviton 1 处理器上运行的 64 位 ARM 架构上的 nvme 驱动程序存在问题,因此导致在给第一个内核提供 irqpoll 内核命令行参数时 vmcore 生成失败。因此,当内核崩溃时,vmcore 文件不会在 /var/crash/ 目录中转储 。要临时解决这个问题:

  1. /etc/sysconfig/kdump 文件中,将 irqpoll 追加到 KDUMP_COMMANDLINE_REMOVE 变量中。

    # KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swiotlb"
  2. 删除 /etc/sysconfig/kdump 文件中 KDUMP_COMMANDLINE_APPEND 变量中的 irqpoll

    # KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd"
  3. 重启 kdump 服务:

    # systemctl restart kdump

因此,第一个内核会正确引导,在内核崩溃时可以捕获 vmcore 文件。

请注意,Amazon Web Services Graviton 2 和 Amazon Web Services Graviton 3 处理器不需要手动删除 /etc/sysconfig/kdump 文件中的 irqpoll 参数。

kdump 服务可能会使用大量崩溃内核内存来转储 vmcore 文件。确定捕获内核有足够的内存可用于 kdump 服务。

有关此已知问题的详情,请查看 irqpoll 内核命令行参数可能会导致 vmcore 生成失败 的文章。

Bugzilla:1654962[1]

具有大核数的系统上实时内核的硬件认证可能需要传递 skew-tick=1 引导参数

具有大量插槽和大核数的大型或中型系统可能会因为对 xtime_lock(其在计时系统中使用)的锁争用而遇到延迟峰值。因此,硬件认证中的延迟峰值和延迟可能会在多处理系统上发生。作为临时解决方案,您可以通过添加 skew_tick=1 引导参数,偏移每个 CPU 的计时器刻度,来在不同的时间启动。

要避免锁冲突,请启用 skew_tick=1

  1. 使用 grubby 启用 skew_tick=1 参数。

    # grubby --update-kernel=ALL --args="skew_tick=1"
  2. 重启以使更改生效。
  3. 通过显示您在启动过程中传递的内核参数来验证新设置。

    cat /proc/cmdline

请注意,启用 skew_tick=1 会导致功耗的大量增加,因此只有在运行延迟敏感实时工作负载时才必须启用它。

Jira:RHEL-9318[1]

在 RHEL 8 上,调试内核无法在崩溃捕获环境中引导

由于 调试内核的内存密集型特性,当调试内核在使用,且触发了内核 panic 时会出现问题。因此,调试内核无法作为捕获内核启动,而是生成堆栈跟踪。要临时解决这个问题,请根据需要增大崩溃内核内存。因此,调试内核会在崩溃捕获环境中成功引导。

Bugzilla:1659609[1]

在引导时分配崩溃内核内存失败

在某些 Ampere Altra 系统上,当 BIOS 设置中禁用了 32 位区域时,在引导过程中分配崩溃内核内存会失败。因此,kdump 服务无法启动。这是因为 4 GB 以下的内存碎片导致,没有足够大的碎片来包含崩溃内核内存。

要临时解决这个问题,请在 BIOS 中启用 32 位内存区域,如下所示:

  1. 在您的系统中打开 BIOS 设置。
  2. 打开 Chipset 菜单。
  3. Memory Configuration 下,启用 SSlave 32-bit 选项。

因此,在 32 位区域中的崩溃内核内存分配会成功,kdump 服务可以按预期工作。

Bugzilla:1940674[1]

QAT 管理器没有为 LKCF 保留备用设备

Intel® QuickAssist Technology (QAT)管理器(qatmgr)是一个用户空间进程,默认情况下会使用系统中的所有 QAT 设备。因此,没有为 Linux 内核加密框架(LKCF)保留任何 QAT 设备。不需要临时解决这种情况,因为此行为是预期的,大多数用户都将使用来自用户空间的加速。

Bugzilla:1920086[1]

Solarflare 无法创建最大数量的虚拟函数(VF)

因为资源不足,Solarflare NIC 无法创建最大数量的 VF 。您可以检查 PCIe 设备可以在 /sys/bus/pci/devices/PCI_ID/sriov_totalvfs 文件中创建的 VF 的最大数量。要临时解决这个问题,您可以将 VF 的数量或 VF MSI 中断值调整为较低的值,可以在启动时从 Solarflare Boot Manager 调整或使用 Solarflare sfboot 工具调整。默认的 VF MSI 中断值为 8

  • 要使用 sfboot 调整 VF MSI 中断值:
# sfboot vf-msix-limit=2
注意

调整 VF MSI 中断值会影响 VF 性能。

有关调整的参数的更多信息,请参阅 Solarflare 服务器适配器用户指南

Bugzilla:1971506[1]

使用 page_poison=1 可能会导致内核崩溃

当在带有错误 EFI 实现的固件上使用 page_poison=1 作为内核参数时,操作系统可能会导致内核崩溃。默认情况下,这个选项被禁用,不推荐启用它,特别是在生产系统中。

Bugzilla:2050411[1]

iwl7260-firmware 破坏了 Intel Wi-Fi 6 AX200、AX210 和 Lenovo ThinkPad P1 Gen 4 上的 Wi-Fi

在将 iwl7260-firmwareiwl7260-wifi 驱动程序更新到 RHEL 8.7 及更新版本提供的版本后,硬件会进入不正确的内部状态。错误地报告其状态。因此,Intel Wifi 6 卡可能无法正常工作,并显示错误信息:

kernel: iwlwifi 0000:09:00.0: Failed to start RT ucode: -110
kernel: iwlwifi 0000:09:00.0: WRT: Collecting data: ini trigger 13 fired (delay=0ms)
kernel: iwlwifi 0000:09:00.0: Failed to run INIT ucode: -110

一个没有确认的临时解决方法是关闭并再次打开系统。不要重启。

Bugzilla:2106341[1]

IBM Power 系统上的安全引导不支持迁移

目前在 IBM Power 系统上,在成功迁移物理卷(PV)后不会引导逻辑分区(LPAR)。因此,在分区上启用了安全引导的任何类型的自动迁移都会失败。

Bugzilla:2126777[1]

kmod 中的 weak-modules 不能与模块间依赖一起工作

kmod 软件包提供的 weak-modules 脚本决定了哪些模块与安装的内核 kABI 兼容。但是,在检查模块的内核兼容性时,weak-modules 按照构建它们的内核的从高到低版本来处理模块符号依赖项。因此,针对不同内核版本构建的具有相互依赖关系的模块可能会被解释为不兼容,因此 weak-modules 脚本不能在此场景下工作。

要临时解决这个问题,请在安装新内核前针对最新的库存内核构建或放置额外的模块。

Bugzilla:2103605[1]

Ampere Altra 服务器中的 kdump 进入 OOM 状态

Ampere Altra 和 Altra Max 服务器中的固件当前会导致内核分配太多事件、中断和命令队列,这消耗了太多内存。因此,kdump 内核进入内存不足(OOM)状态。

要临时解决这个问题,请通过将 crashkernel= 内核选项的值增加到 640M,来为 kdump 保留额外的内存。

Bugzilla:2111855[1]

9.10. 文件系统和存储

保存一个 LUKS 卷的 LVM mirror 设备有时将变为无响应

在某些情况下,保存 LUKS 卷的片段类型的 mirror LVM 设备可能会变得无响应。无响应设备会拒绝所有 I/O 操作。

要解决这个问题,红帽建议在有弹性软件定义的存储之上使用带 raid1 的片段类型的 LVM RAID 1 设备而不是镜像( mirror )。

raid1 segment 类型是默认的 RAID 配置类型,它作为推荐的解决方案替换 mirror

要将 mirror 设备转换为 raid1,请参阅将镜像 LVM 设备转换为 RAID1 设备

Bugzilla:1730502[1]

无法将 /boot 文件系统放在 LVM 中

您不能将 /boot 文件系统放在 LVM 逻辑卷中。这种限制的原因如下:

  • 在 EFI 系统中,EFI 系统分区 通常充当 /boot 文件系统。uEFI 标准要求有特定的 GPT 分区类型和具体文件系统类型。
  • RHEL 8 在系统引导条目中使用 Boot Loader 规格 (BLS)。这个规格要求 /boot 文件系统可由平台固件可读。在 EFI 系统中,平台固件只能读取 uEFI 标准定义的 /boot 配置。
  • 在 GRUB 2 引导装载程序中不支持 LVM 逻辑卷。红帽没有计划进行改进,因为如 uEFI 和 BLS 的标准,这个功能的使用情况正在下降。

红帽不计划在 LVM 中支持 /boot。反之,红帽提供了管理系统快照和回滚的工具,这些工具不需要将 /boot 文件系统放在 LVM 逻辑卷中。

Bugzilla:1496229[1]

LVM 不再允许使用混合块大小创建卷组

LVM 工具(如 vgcreatevgextend)不再允许您创建有不同逻辑块大小的物理卷(PV)的卷组(VG)。LVM 启用了这个更改,因为如果您使用不同块大小的 PV 扩展了基本逻辑卷(LV),文件系统将无法挂载。

要重新创建带有混合块大小的 VG,在 lvm.conf 文件中设置 allow_mixed_block_sizes=1 选项。

Bugzilla:1768536

LVM writecache 的限制

writecache LVM 缓存方法有以下限制,这些限制不会出现在 cache 方法中:

  • 使用 pvmove 命令时您无法命名 writecache 逻辑卷。
  • 您不能将带有 writecache 的逻辑卷与精简池或 VDO 结合使用。

以下限制也适用于 cache 方法:

  • 您不能在将 cachewritecache 附加到逻辑卷时重新定义大小。

Jira:RHELPLAN-27987[1], Bugzilla:1798631, Bugzilla:1808012

启用 IOMMU 后系统 panic

通过将 intel_iommu 参数设置为 on,在内核命令行上启用输入输出内存管理单元(IOMMU)导致系统 panic ,显示 0x6b6b6b6b6b6b6b6b: 0000 非规范地址的一般保护故障

要临时解决这个问题,请确保将 intel_iommu 被设置为 off

Jira:RHEL-1765[1]

使用 NVMe/TCP 驱动程序时不支持设备映射器多路径。

在 NVMe/TCP 设备之上使用设备映射器多路径可能会导致性能降低和错误处理。要避免这个问题,请使用原生 NVMe 多路径而不是 DM 多路径工具。对于 RHEL 8,您可以向内核命令行中添加 nvme_core.multipath=Y 选项。

Bugzilla:2022359[1]

blk-availability systemd 服务停用了复杂的设备堆栈

systemd 中,默认的块停用代码并不总是正确处理虚拟块设备的复杂堆栈。在一些配置中,虚拟设备在关闭过程中可能无法被删除,这会导致记录错误信息。要临时解决这个问题,请执行以下命令来停用复杂块设备堆栈:

# systemctl enable --now blk-availability.service

因此,复杂虚拟设备堆栈会在关闭过程中被正确停用,且不会生成错误消息。

Bugzilla:2011699[1]

XFS 配额警告经常被触发

使用配额计时器会导致配额警告的触发过于频繁,这导致软配额的强制执行的速度比应该执行的速度更快。要临时解决这个问题,请不要使用软配额,这会防止触发警告。因此,警告信息量将不再强制软配额限制,会尊重配置的超时时间。

Bugzilla:2059262[1]

9.11. 动态编程语言、网页和数据库服务器

Git 无法从具有潜在不安全所有权的存储库克隆或获取

为了防止远程代码执行并缓解 CVE-2024-32004,在 Git 中引入了更严格的所有权检查以克隆本地存储库。由于 RHSA-2024:4084 公告中引入的更新,Git 将具有潜在不安全所有权的本地存储库视为可疑。

因此,如果您试图通过 git-daemon 从本地托管的存储库克隆,且您不是存储库的所有者,则 Git 返回一条有关可疑的所有者的安全警报,且无法从存储库克隆或获取。

要临时解决这个问题,请执行以下命令来将存储库明确标记为安全:

git config --global --add safe.directory /path/to/repository

Jira:RHELDOCS-18435[1]

当使用 virtualenv 工具时,创建虚拟 Python 3.11 环境会失败

RHEL 8 中由 python3-virtualenv 软件包提供的 virtualenv 工具与 Python 3.11 不兼容。尝试使用 virtualenv 创建虚拟环境将失败,并显示以下错误消息:

$ virtualenv -p python3.11 venv3.11
Running virtualenv with interpreter /usr/bin/python3.11
ERROR: Virtual environments created by virtualenv < 20 are not compatible with Python 3.11.
ERROR: Use `python3.11 -m venv` instead.

要创建 Python 3.11 虚拟环境,请使用 python3.11 -m venv 命令,它使用标准库的 venv 模块。

Bugzilla:2165702

python3.11-lxml 不提供 lxml.isoschematron 子模块

python3.11-lxml 软件包不与 lxml.isoschematron 子模块一起分发,因为它不是开源许可证。子模块实现 ISO 架构支持。作为替代方案,lxml.etree.Schematron 类种提供了 pre-ISO-Schematron 验证。python3.11-lxml 软件包的其余内容不受影响。

Bugzilla:2157673

PAM 插件版本 1.0 在 MariaDB中无法正常工作

MariaDB 10.3 提供了可插拔验证模块(PAM)插件版本1.0 。MariaDB 10.5 提供插件版本 1.0 和 2.0,版本 2.0 是默认版本。

MariaDB PAM 插件版本 1.0 在 RHEL 8 中无法正常工作。要临时解决这个问题,请使用 mariadb:10.5 模块流提供的 PAM 插件版本 2.0。

Bugzilla:1942330

OpenLDAP 库之间的符号冲突可能会导致 httpd崩溃

当 OpenLDAP 提供的 libldaplibldap_r 库被加载并在单个进程中使用时,这些库之间可能会发生符号冲突。因此,如果 httpd 配置也加载 mod_securitymod_auth_openidc 模块,则使用 PHP ldap 扩展的 Apache httpd 子进程可能会意外终止。

从因为RHEL 8.3 更新到 Apache Portable Runtime(APR)库,您可以通过设置 APR_DEEPBIND 环境变量来临时解决这个问题,该变量在载入 httpd 模块时,允许使用 RTLD_DEEPBIND 动态链接器选项。当 APR_DEEPBIND 环境变量启用时,在加载冲突库的 httpd 配置中不再崩溃。

Bugzilla:1819607[1]

当有 32 位应用程序调用 getpwnam() 时,可能会失败

当 NIS 用户使用32 位应用程序调用 getpwnam() 函数时,如果没有 nss_nis.i686 软件包,则调用会失败。要临时解决这个问题,使用 yum install nss_nis.i686 手动安装缺少的软件包。

Bugzilla:1803161

9.12. 身份管理

将 Samba 作为打印服务器运行,并从 RHEL 8.4 或更早版本更新时所需的操作

有了这个更新,samba 软件包不再创建 /var/spool/samba/ 目录。如果您将 Samba 用作打印服务器,并将 [printers] 共享中的 /var/spool/samba/ 用于假脱机打印作业,则SELinux 会阻止 Samba 用户在此目录中创建文件。因此,打印作业失败,auditd 服务会在 /var/log/audit/audit.log 中记录一跳 denied 消息。要在更新 8.4 及更早版本的系统后避免此问题:

  1. /etc/samba/smb.conf 文件中搜索 [printers] 共享。
  2. 如果共享定义包含 path = /var/spool/samba/,请更新设置,并将 path 参数设为 /var/tmp/
  3. 重启 smbd 服务:

    # systemctl restart smbd

如果在 RHEL 8.5 或更高版本上新安装了 Samba,则不需要任何操作。在本例中,samba-common 软件包提供的默认 /etc/samba/smb.conf 文件已将 /var/tmp/ 目录用于假脱机打印作业。

Bugzilla:2009213[1]

cert-fix 程序与 --agent-uid pkidbuser 选项一同使用会破坏证书系统

使用带有 --agent-uid pkidbuser 选项的 cert-fix 工具可破坏证书系统的 LDAP 配置。因此,,证系统可能会变得不稳定,需要手动步骤才能恢复该系统。

Bugzilla:1729215

FIPS 模式不支持使用共享 secret 建立跨林信任

在 FIPS 模式中使用共享 secret 建立跨林信任会失败,因为 NTLMSSP 身份验证不兼容 FIPS。要临时解决这个问题,在启用了 FIPS 模式的 IdM 域和 AD 域间建立信任时,使用 Active Directory(AD)管理帐户进行身份验证。

Jira:RHEL-4847

在 rebase 到版本 1.2.2 后,降级authselect会破坏系统身份验证

authselect 软件包已 rebase 到最新的上游版本 1.2.2。不支持降级 authselect,这会中断所有用户的系统身份验证,包括root用户。

如果您将authselect 软件包降级到 1.2.1 或更早版本,请执行以下步骤来解决这个问题:

  1. 在 GRUB 引导屏幕中,选择带有您要引导的内核版本的 Red Hat Enterprise Linux,然后按 e 编辑该条目。
  2. 在以 linux 开头的行的末尾输入 single 作为单独的单词,然后按 Ctrl+X 启动引导过程。
  3. 以单用户模式引导时,输入 root 密码。
  4. 使用以下命令恢复 authselect 配置:

    # authselect select sssd --force

Bugzilla:1892761

IdM 到 AD 跨域 TGS 请求失败

IdM Kerberos 票据中的 Privilege Attribute 证书(PAC) 信息现在使用 AES SHA-2 HMAC 加密进行签名,这是 Active Directory (AD) 不支持的。

因此,IdM 到 AD 跨域 TGS 请求(即双向信任设置)失败,并显示以下错误:

Generic error (see e-text) while getting credentials for <service principal>

Jira:RHEL-4910

ldap_id_use_start_tls 选项使用默认值时的潜在风险

当使用没有 TLS 的 ldap:// 进行身份查找时,可能会对攻击向量构成风险。特别是中间人(MITM)攻击,例如,攻击者可以通过更改 LDAP 搜索中返回的对象的 UID 或 GID 来冒充用户。

目前,强制 TLS 的 SSSD 配置选项 ldap_id_use_start_tls 默认为 false。确保您的设置在可信环境中操作,并决定对 id_provider = ldap 使用未加密的通信是否是安全的。注意 id_provider = adid_provider = ipa 不受影响,因为它们使用 SASL 和 GSSAPI 保护的加密连接。

如果使用未加密的通信不安全,请在 /etc/sssd/sssd.conf 文件中将 ldap_id_use_start_tls 选项设置为 true 来强制使用 TLS。计划在以后的 RHEL 版本中更改的默认行为。

Jira:RHELPLAN-155168[1]

从 RHEL 8.6 到 RHEL 8.7 或更高版本的 pki-core-debuginfo 更新会失败

pki-core-debuginfo 软件包从 RHEL 8.6 更新至 RHEL 8.7 或更高版本会失败。要临时解决这个问题,请运行以下命令:

  1. yum remove pki-core-debuginfo
  2. yum update -y
  3. yum install pki-core-debuginfo
  4. yum install idm-pki-symkey-debuginfo idm-pki-tools-debuginfo

Jira:RHEL-13125[1]

迁移的 IdM 用户可能会因为不匹的域 SID 而无法登录

如果您使用 ipa migrate-ds 脚本将用户从一个 IdM 部署迁移到另一个,则这些用户可能会在使用 IdM 服务时有问题,因为它们之前存在的安全标识符(SID)没有当前 IdM 环境的域 SID。例如,这些用户可以使用 kinit 工具检索 Kerberos 票据,但不能登录。要临时解决这个问题,请参阅以下知识库文章: Migrated IdM 用户因为不匹配的域 SID 而无法登录

Jira:RHELPLAN-109613[1]

FIPS 模式下的 IdM 不支持使用 NTLMSSP 协议来建立双向跨林信任

在活动目录(AD)和启用了 FIPS 模式的身份管理(IdM)之间建立双向跨林信任会失败,因为新技术局域网管理器安全支持提供程序 (NTLMSSP)身份验证不符合 FIPS。FIPS 模式下的 IdM 不接受在尝试验证时 AD 域控制器使用的 RC4 NTLM 哈希。

Jira:RHEL-4898

为 Kerberos 主体设置过期日期时不正确的警告

如果您为 Kerberos 主体设置了密码过期日期,则使用 32 位签名的整数变量将当前的时间戳与过期时间戳进行比较。如果过期日期在将来超过 68 年,则会导致整数变量溢出,从而导致显示以下警告信息:

Warning: Your password will expire in less than one hour on [expiration date]

您可以忽略此消息,密码将在配置的日期和时间正确过期。

Bugzilla:2125318

在 RHEL 8 上,NIS 映射中大量条目的枚举较慢

当您在 RHEL 8 上安装 nis_nss 软件包时,会缺少 /etc/default/NSS 配置文件,因为 glibc-common 软件包不再提供该文件。因此,在 RHEL 8 上,NIS 映射中大量条目的枚举比在 RHEL 7 上花费更长的时间,因为每个请求默认被单独处理,而不是批量处理。

要临时解决这个问题,请使用以下内容创建 /etc/default/nss 文件,并确保将 SETENT_BATCH_READ 变量设置为 TRUE

# /etc/default/nss
# This file can theoretically contain a bunch of customization variables
# for Name Service Switch in the GNU C library. For now there are only
# four variables:
#
# NETID_AUTHORITATIVE
# If set to TRUE, the initgroups() function will accept the information
# from the netid.byname NIS map as authoritative. This can speed up the
# function significantly if the group.byname map is large. The content
# of the netid.byname map is used AS IS. The system administrator has
# to make sure it is correctly generated.
#NETID_AUTHORITATIVE=TRUE
#
# SERVICES_AUTHORITATIVE
# If set to TRUE, the getservbyname{,_r}() function will assume
# services.byservicename NIS map exists and is authoritative, particularly
# that it contains both keys with /proto and without /proto for both
# primary service names and service aliases. The system administrator
# has to make sure it is correctly generated.
#SERVICES_AUTHORITATIVE=TRUE
#
# SETENT_BATCH_READ
# If set to TRUE, various setXXent() functions will read the entire
# database at once and then hand out the requests one by one from
# memory with every getXXent() call. Otherwise each getXXent() call
# might result into a network communication with the server to get
# the next entry.
SETENT_BATCH_READ=TRUE
#
# ADJUNCT_AS_SHADOW
# If set to TRUE, the passwd routines in the NIS NSS module will not
# use the passwd.adjunct.byname tables to fill in the password data
# in the passwd structure. This is a security problem if the NIS
# server cannot be trusted to send the passwd.adjuct table only to
# privileged clients. Instead the passwd.adjunct.byname table is
# used to synthesize the shadow.byname table if it does not exist.
#ADJUNCT_AS_SHADOW=TRUE

Jira:RHEL-34075[1]

在引入新选项 local_auth_policy后,智能卡验证可能需要更新配置

升级到 RHEL 8.10 后,因为 local_auth_policy 选项引入的更改,智能卡验证可能会失败。当 local_auth_policy 设置为默认值时,会匹配,SSSD 会限制在线可用的离线验证方法。因此,如果配置的后端没有提供智能卡验证,例如使用 auth_provider = ldap 时,它将不适用于用户。要临时解决这个问题,请通过将 local_auth_policy = enable:smartcard 添加到 sssd.conf 文件的 domain 部分来显式启用 Smartcard 验证方法,然后重新启动 SSSD。

Jira:RHELDOCS-18777

9.13. 桌面

无法从软件仓库中禁用 flatpak 程序库

目前,在 GNOME 软件工具中的软件程序库工具中无法禁用或删除 flatpak 程序库。

Bugzilla:1668760

第二代 RHEL 8 虚拟机有时无法在 Hyper-V Server 2016 主机上引导

当使用 RHEL 8 作为在 Microsoft Hyper-V Server 2016 主机上运行的虚拟机(VM)中的客户机操作系统时,虚拟机在某些情况下无法引导,并返回到 GRUB 引导菜单。另外,会在 Hyper-V 事件日志中记录以下错误:

The guest operating system reported that it failed with the following error code: 0x1E

这个错误是由 Hyper-V 主机上的 UEFI 固件错误造成的。要临时解决这个问题,请将 Hyper-V Server 2019 或更高版本用作主机。

Bugzilla:1583445[1]

在桌面和应用程序间进行拖放操作无法正常工作

由于 gnome-shell-extensions 软件包中的一个 bug,drag-and-drop 功能目前在桌面和应用程序间无法正常工作。以后的发行版本中将重新添加对这个功能的支持。

Bugzilla:1717947

WebKitGTK 无法在 IBM Z 上显示网页

当尝试在 IBM Z 架构上显示网页时,WebKitGTK 网页浏览器引擎会失败。网页将保持空白,WebKitGTK 进程意外停止。

因此,您无法使用那些使用 WebKitGTK 的应用程序的某些功能来显示网页,如下所示:

  • Evolution 邮件客户端
  • GNOME 在线帐户设置
  • GNOME 帮助应用程序

Jira:RHEL-4158

9.14. 图形基础结构

radeon 驱动程序无法正确重置硬件

radeon 内核驱动程序目前没有在 kexec 上下文中正确重置硬件。相反,radeon 无法工作,从而导致剩余的 kdump 服务失败。

要临时解决这个问题,在 kdump 中禁用 radeon,方法是在 /etc/kdump.conf 文件中添加以下行:

dracut_args --omit-drivers "radeon"
force_rebuild 1

重启系统和 kdump。启动 kdump 后,可能会从配置文件中删除 force_rebuild 1 行。

请注意,在这种情况下,转储过程中没有可用的图形,但 kdump 可以正常工作。

Bugzilla:1694705[1]

多个 HDR 显示在单个 MST 拓扑上可能无法打开

在使用带有 nouveau 驱动程序的 NVIDIA Turing GPU 的系统上,使用带有多个监控器的 DisplayPort hub (如笔记本电脑 dock))可能会导致它无法打开。这是因为系统错误地认为 hub 中没有足够的带宽来支持所有显示器。

Bugzilla:1812577[1]

ESXi 中的 GUI 可能会因为视频内存较低而崩溃

VMware ESXi 7.0.1 带有 vCenter Server 7.0.1 的 RHEL 虚拟机上的图形用户界面(GUI)需要一定的视频内存。如果您将多个控制台或高分辨率监控器连接到虚拟机,则 GUI 至少需要 16 MB 的视频内存。如果您使用较少的视频内存启动 GUI,则 GUI 可能会意外终止。

要临时解决这个问题,请配置虚拟机监控程序为虚拟机分配至少 16MB 视频内存。因此,虚拟机上的 GUI 不会崩溃。

如果您遇到这个问题,红帽建议您将其报告给 VMware。

另请参阅以下 VMware 文章: 具有高分辨率 VM 控制台的虚拟机可能会在 ESXi 7.0.1 (83194)上遇到崩溃

Bugzilla:1910358[1]

VNC Viewer 显示在 IBM Z 中带有 16 位颜色深度的错误颜色

当您连接到带有 16 位色彩深度的 IBM Z 服务器上的 VNC 会话时,VNC Viewer 应用程序会显示错误的颜色。

要临时解决这个问题,请在 VNC 服务器中设置 24 位颜色深度。使用 Xvnc 服务器将 -depth 16 选项替换为 -depth 24 (在 Xvnc 配置中)。

因此,VNC 客户端会显示正确的颜色,但在服务器中使用更多的网络带宽。

Bugzilla:1886147

无法使用 sudo 命令运行图形应用程序

当试图以具有更高权限的用户运行图形应用程序时,应用程序无法打开并带有一个出错信息。发生故障的原因是 XwaylandXauthority 文件限制,为使用常规用户凭证进行验证。

要临时解决这个问题,使用 sudo -E 命令以 root 用户运行图形程序。

Bugzilla:1673073

ARM 不支持硬件加速

内置图形驱动程序不支持 64 位 ARM 架构中的硬件加速或 Vulkan API。

要启用硬件加速或者 ARM 上的 Vulkan,安装专有 Nvidia 驱动程序。

Jira:RHELPLAN-57914[1]

9.15. Red Hat Enterprise Linux 系统角色

将 RHEL 系统角色与 Ansible 2.9 一起使用可以显示一条有关将 dnfcommand 模块一起使用的警告

从 RHEL 8.8 开始,RHEL 系统角色不再在 dnf 模块中使用 warn 参数,因为此参数已在 Ansible Core 2.14 中删除。但是,如果您仍然将最新的 rhel-system-roles 软件包与 Ansible 2.9 一起使用,且角色安装软件包,则会显示以下警告之一:

[WARNING]: Consider using the dnf module rather than running 'dnf'. If you need to use command because dnf is insufficient you can add 'warn: false' to
this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.
[WARNING]: Consider using the yum, dnf or zypper module rather than running 'rpm'. If you need to use command because yum, dnf or zypper is insufficient
you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.

如果要隐藏这些警告,请将 command_warnings = False 设置添加到 ansible.cfg 文件的 [Defaults] 部分。但请注意,此设置禁用了 Ansible 中的所有警告。

Jira:RHELDOCS-17954

使用 playbook 或清单中的 localhost 主机名无法管理 localhost

RHEL 中包含了 ansible-core 2.13 软件包,如果您在您管理节点的同一台主机上运行 Ansible,则无法通过在 playbook 或清单中使用 localhost 主机名来实现它。这是因为 ansible-core 2.13 使用 python38 模块,并且缺少许多库,例如,用于 storage 角色的 blivet,用于 network 角色的 gobject。要临时解决这个问题,如果您已在 playbook 或清单中使用了 localhost 主机名,您可以使用 ansible_connection=local 来添加一个连接,或者使用 ansible_connection=local 选项创建一个列出 localhost 的清单文件。使用这种方式,您可以管理 localhost 上的资源。如需了解更多详细信息,请参阅文章 在 localhost 上运行时,RHEL 系统角色 playbook 失败

Bugzilla:2041997

rhc_auth 包含激活密钥时,rhc 系统角色在已注册的系统上会失败

如果为 rhc_auth 参数指定了激活密钥,在在已经注册的系统上执行 playbook 文件会失败。要临时解决这个问题,在已经注册的系统上执行 playbook 文件时不要指定激活密钥。

Bugzilla:2186908

配置 imuxsock 输入基本类型导致一个问题

通过 logging RHEL 系统角色和 use_imuxsock 选项配置"imuxsock"输入基本类型导致受管节点上生成的配置出现问题。此角色设置 name 参数,但 "imuxsock" 输入类型不支持 name 参数。因此,rsyslog 日志记录工具打印 parameter 'name' not known – typo in config file? 错误。

Jira:RHELDOCS-18326

对于 RHEL 9 UEFI 受管节点,bootloader RHEL 系统角色的 bootloader_password 变量无法工作

在以前的版本中,bootloader_password 变量错误地将密码信息放在 /boot/efi/EFI/redhat/user.cfg 文件中。正确的位置是 /boot/grub2/user.cfg 文件。因此,当重启受管节点来修改任何引导装载程序条目时,GRUB2 不提示您输入密码。要临时解决这个问题,您可以手动将 user.cfg 文件从不正确的 /boot/efi/EFI/redhat/ 目录中移到正确的 /boot/grub2/ 目录中,以实现预期的行为。

Jira:RHEL-45711

9.16. 虚拟化

使用大量队列可能会导致 Windows 虚拟机失败

当启用了虚拟可信平台模块(vTPM)设备,且将 multi-queue virtio-net 功能配置为使用超过 250 个队列时,Windows 虚拟机(VM)可能会失败。

这个问题是由 vTPM 设备的限制造成的。vTPM 设备对打开的文件描述符的最大数有一个硬编码的限制。因为会为每个新队列打开多个文件描述符,因此可能会超过内部 vTPM 的限值,从而导致虚拟机失败。

要临时解决这个问题,请选择以下两个选项之一:

  • 保持 vTPM 设备启用,但使用少于 250 个队列。
  • 禁用 vTPM 设备以使用超过 250 个队列。

Jira:RHEL-13336[1]

在 AMD Milan 系统上有时无法提供 Milan VM CPU 类型

在某些 AMD Milan 系统上,默认在 BIOS 中禁用了增强 REP MOVSB(erms)和 Fast Short REP MOVSB(fsrm)功能标记。因此,在这些系统上可能无法使用 Milan CPU 类型。另外,在具有不同功能标志设置的 Milan 主机之间的虚拟机实时迁移可能会失败。要临时解决这个问题,在主机的 BIOS 中手动打开 ermsfsrm

Bugzilla:2077770[1]

当在 AMD EPYC 上使用主机透传模式时,虚拟机不会检测到 SMT CPU 拓扑

当在AMD EPYC 主机上以CPU主机直通模式引导虚拟机(VM)时,不会显示TOPOEXT CPU 功能标志。因此,虚拟机无法检测到每个内核有多个线程的虚拟 CPU 拓扑。要临时解决这个问题,使用 EPYC CPU 模型而不是主机透传引导虚拟机。

Bugzilla:1740002

使用 virtio-blk 将 LUN 设备附加到虚拟机中无法正常工作

q35 机器类型不支持 virtio 1.0 设备,因此 RHEL 8 不支持 virtio 1.0 中弃用的功能。特别是,RHEL 8 主机无法从 virtio-blk 设备发送 SCSI 命令。因此,使用 virtio-blk 控制器时,将物理磁盘作为 LUN 设备附加到虚拟机会失败。

请注意,物理磁盘仍可被传递给客户端操作系统,但应该使用 device='disk' 选项而不是 device='lun' 选项进行配置。

Bugzilla:1777138[1]

当使用很多 virtio-blk 磁盘时,虚拟机有时无法启动

在虚拟机(VM)中添加大量 virtio-blk 设备可能会耗尽平台中可用的中断向量。如果发生了这种情况,VM 的客户机操作系统无法引导,并显示 dracut-initqueue[392]: Warning: Could not boot 错误。

Bugzilla:1719687

带有 iommu_platform=on 的虚拟机无法在 IBM POWER 上启动

RHEL 8 目前不支持 IBM POWER 系统上的虚拟机(VM)的 iommu_platform=on 参数。因此,在 IBM POWER 硬件上启动使用这个参数的虚拟机会导致虚拟机在引导过程中变得无响应。

Bugzilla:1910848

在使用 ibmvfc 驱动程序时,IBM POWER 主机现在可以正常工作

当在 PowerVM 逻辑分区(LPAR)上运行 RHEL 8 时,以前可能会因为 ibmvfc 驱动程序的问题而发生各种错误。因此,在某些情况下,主机上会触发内核 panic,例如:

  • 使用 Live Partition Mobility(LPM)功能
  • 重置主机适配器
  • 使用 SCSI 错误处理(SCSI EH)功能

有了此更新,ibmvfc 的处理已被修复,上面描述的内核 panics 不再发生。

Bugzilla:1961722[1]

在 IBM POWER 系统中使用 perf kvm record 可能会导致虚拟机崩溃

当在 IBM POWER 硬件的 little-endian 变体中使用 RHEL 8 主机时,使用 perf kvm record 命令为 KVM 虚拟机(VM)收集追踪事件样本会导致虚拟机变得没有响应。在以下情况下发生这种情况:

  • perf工具由非特权用户使用,-p 选项用来标识虚拟机 - 例如 perf kvm record -e trace_cycles -p 12345
  • 虚拟机是使用 virsh shell 启动的。

要临时解决这个问题,请使用带有-i选项的 perf kvm 工具来监控使用 virsh shell 创建的虚拟机。例如:

# perf kvm record -e trace_imc/trace_cycles/  -p <guest pid> -i

请注意,在使用 -i 选项时,子任务不会继承计数器,因此线程不会被监控。

Bugzilla:1924016[1]

带有启用 Hyper-V 的 Windows Server 2016 虚拟机无法引导

目前,无法引导使用 Windows Server 2016 作为客户端操作系统的虚拟机,它启用了 Hyper-V 角色,并使用以下 CPU 模型之一:

  • EPYC-IBPB
  • EPYC

要临时解决这个问题,使用 EPYC-v3 CPU 模型,或者为虚拟机手动启用 xsaves CPU 标记。

Bugzilla:1942888[1]

将 POWER9 客户端从 RHEL 7-ALT 主机迁移到 RHEL 8 会失败

目前,将 POWER9 虚拟机从 RHEL 7-ALT 主机系统迁移到 RHEL 8 会变得没有响应,显示Migration status: active状态)。

要临时解决这个问题,在 RHEL 7-ALT 主机上禁用 Transparent Huge Pages(THP),这样可使迁移成功完成。

Bugzilla:1741436[1]

使用 virt-customize 有时会导致 guestfs-firstboot 失败

使用 virt-customize 工具修改了虚拟机(VM)磁盘镜像后,guestfs-firstboot 服务在某些情况下会因为 SELinux 权限不正确而失败。这会导致虚拟机启动过程中出现各种问题,如创建用户失败或系统注册失败。

要避免这个问题,请使用带有 --selinux-relabel 选项的 virt-customize 命令。

Bugzilla:1554735

从 macvtap 虚拟网络中删除转发接口会重置这个网络的所有连接计数

目前,从带有多个转发接口的 macvtap 虚拟网络中删除一个转发接口也会重置网络的其他转发接口的连接状态。因此,实时网络 XML 中的连接信息是不正确的。但请注意,这不会影响虚拟网络的功能。要临时解决这个问题,请重启主机上的 libvirtd 服务。

Bugzilla:1332758

带有 SLOF 的虚拟机无法在 netcat 界面中引导

当使用 netcat(nc)接口来访问当前在 Slimline Open Firmware(SLOF)提示符下等待的虚拟机控制台时,用户输入会被忽略,虚拟机仍无响应。要临时解决这个问题,请在连接虚拟机时使用 nc -C 选项,或者使用 telnet 接口。

Bugzilla:1974622[1]

在某些情况下,在 virt-manager 中将中介设备附加到虚拟机会失败

virt-manager 应用程序目前能够检测中介设备,但不能识别该设备是否处于活跃状态。因此,尝试使用 virt-manager 将不活跃的中介设备附加到正在运行的虚拟机(VM)会失败。同样,尝试使用不活跃的中介设备创建新虚拟机会失败,并显示 device not found 错误。

要临时解决这个问题,请使用 virsh nodedev-startmdevctl start 命令来激活中介设备,然后再在 virt-manager 中使用它。

Bugzilla:2026985

RHEL 9 虚拟机无法在 POWER8 兼容模式下启动

目前,如果虚拟机也使用类似如下的 CPU 配置,启动将 RHEL 9 作为客户机操作系统来运行的虚拟机(VM)会失败:

  <cpu mode="host-model">
    <model>power8</model>
  </cpu>

要临时解决这个问题,请不要在 RHEL 9 虚拟机中使用 POWER8 兼容性模式。

另外,请注意,在 POWER8 主机上无法运行 RHEL 9 虚拟机。

Bugzilla:2035158

virtiofs 上不会自动清除 SUID 和 SGID

当您使用 killpriv_v2 功能运行 virtiofsd 服务时,您的系统在执行某些文件系统操作后可能无法自动清除 SUID 和HMC 权限。因此,不能清除权限可能会导致潜在的安全威胁。要临时解决这个问题,请输入以下命令禁用 killpriv_v2 功能:

# virtiofsd -o no_killpriv_v2

Bugzilla:1966475[1]

在主机上重启 OVS 服务可能会阻止在其上运行的虚拟机的网络连接

当 Open vSwitch (OVS)服务在主机上重启时或崩溃时,在此主机上运行的虚拟机(VM)无法恢复网络设备的状态。因此,虚拟机可能无法完全接收数据包。

此问题只会影响在 virtio 网络堆栈中使用压缩 virtqueue 格式的系统。

要临时解决这个问题,使用 virtio 网络设备定义中的 packed=off 参数来禁用压缩的 virtqueue。当禁用压缩的 virtqueue 时,网络设备的状态在某些情况下可以从 RAM 中恢复。

Bugzilla:1792683

nodedev-dumpxml 无法正确列出某些介质设备的属性

目前,nodedev-dumpxml 无法正确列出使用 nodedev-create 命令创建的介质设备的属性。要临时解决这个问题,请使用 nodedev-definenodedev-start 命令。

Bugzilla:2143160

启动带有 NVIDIA A16 GPU 的虚拟机有时会导致主机 GPU 停止工作

目前,如果您启动了一个使用 NVIDIA A16 GPU 直通设备的虚拟机,在某些情况下,主机系统上的 NVIDIA A16 GPU 物理设备会停止工作。

要临时解决这个问题,请重新 hypervisor ,并将 GPU 设备的 reset_method 设置为 bus

# echo bus > /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
# cat /sys/bus/pci/devices/<DEVICE-PCI-ADDRESS>/reset_method
bus

详情请查看 红帽知识库

Jira:RHEL-2451[1]

9.17. 云环境中的 RHEL

在 VMware 主机上的 RHEL 虚拟机中设置静态 IP 无法正常工作

目前,当使用 RHEL 作为 VMware 主机上虚拟机(VM)的客户机操作系统时,DatasourceOVF 功能无法正常工作。因此,如果您使用 cloud-init 实用程序将虚拟机的网络设置为静态 IP,然后重启虚拟机,则虚拟机的网络将更改为 DHCP。

要临时解决这个问题,请参阅 VMware 知识库

Jira:RHEL-12122

kdump 有时不会在 Azure 和 Hyper-V 上启动

在托管在 Microsoft Azure 或 Hyper-V hypervisor 上的 RHEL 8 客户机操作系统中,启动 kdump 内核在某些情况下会在启用执行后通知程序时失败。

要临时解决这个问题,请禁用 crash kexec post notifiers:

# echo N > /sys/module/kernel/parameters/crash_kexec_post_notifiers

Bugzilla:1865745[1]

当使用多个客户机磁盘引导 Hyper-V 虚拟机时,SCSI 主机地址有时会改变

目前,当在 Hyper-V hypervisor 上引导 RHEL 8 虚拟机时,主机部分的主机 、Bus、Target、Lun(HBTL)SCSI 地址在某些情况下发生了变化。因此,使用虚拟机中的 HBTL SCSI 识别或者设备节点设置的自动任务无法持续工作。如果虚拟机有多个磁盘,或者磁盘大小不同,会出现这种情况。

要临时解决这个问题,使用以下方法之一修改 kickstart 文件:

方法 1:对 SCSI 设备使用持久性标识符。

您可以使用以下 powershell 脚本来确定具体设备标识符:

# Output what the /dev/disk/by-id/<value> for the specified hyper-v virtual disk.
# Takes a single parameter which is the virtual disk file.
# Note: kickstart syntax works with and without the /dev/ prefix.
param (
    [Parameter(Mandatory=$true)][string]$virtualdisk
)

$what = Get-VHD -Path $virtualdisk
$part = $what.DiskIdentifier.ToLower().split('-')

$p = $part[0]
$s0 = $p[6] + $p[7] + $p[4] + $p[5] + $p[2] + $p[3] + $p[0] + $p[1]

$p = $part[1]
$s1 =  $p[2] + $p[3] + $p[0] + $p[1]

[string]::format("/dev/disk/by-id/wwn-0x60022480{0}{1}{2}", $s0, $s1, $part[4])

您可以在 hyper-v 主机上使用此脚本,如下所示:

PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_8.vhdx
/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4
PS C:\Users\Public\Documents\Hyper-V\Virtual hard disks> .\by-id.ps1 .\Testing_8\disk_3_9.vhdx
/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2

之后,可在 kickstart 文件中使用磁盘值,如下所示:

part / --fstype=xfs --grow --asprimary --size=8192 --ondisk=/dev/disk/by-id/wwn-0x600224807270e09717645b1890f8a9a2
part /home --fstype="xfs" --grow --ondisk=/dev/disk/by-id/wwn-0x60022480e00bc367d7fd902e8bf0d3b4

因为这些值特定于每个虚拟磁盘,因此需要为每个虚拟机实例进行配置。因此,使用 %include 语法将磁盘信息放在单独的文件中可能很有用。

方法 2:按大小设置设备选择。

根据大小配置磁盘选择的 kickstart 文件必须包含类似如下的行:

...

# Disk partitioning information is supplied in a file to kick start
%include /tmp/disks

...

# Partition information is created during install using the %pre section
%pre --interpreter /bin/bash --log /tmp/ks_pre.log

	# Dump whole SCSI/IDE disks out sorted from smallest to largest ouputting
	# just the name
	disks=(`lsblk -n -o NAME -l -b -x SIZE -d -I 8,3`) || exit 1

	# We are assuming we have 3 disks which will be used
	# and we will create some variables to represent
	d0=${disks[0]}
	d1=${disks[1]}
	d2=${disks[2]}

	echo "part /home --fstype="xfs" --ondisk=$d2 --grow" >> /tmp/disks
	echo "part swap --fstype="swap" --ondisk=$d0 --size=4096" >> /tmp/disks
	echo "part / --fstype="xfs" --ondisk=$d1 --grow" >> /tmp/disks
	echo "part /boot --fstype="xfs" --ondisk=$d1 --size=1024" >> /tmp/disks

%end

Bugzilla:1906870[1]

如果 RHEL 实例是由 cloud-init 提供的,且使用 NFSv3 挂载条目配置的,则其在 Azure 上无法引导

目前,如果 VM 是由 cloud-init 工具提供的,且虚拟机的客户机操作系统在 /etc/fstab 文件中有 NFSv3 挂载条目,则在 Microsoft Azure 云平台上引导 RHEL 虚拟机(VM)会失败。

Bugzilla:2081114[1]

9.18. 支持性

getattachment 命令无法一次下载多个附件

redhat-support-tool 命令提供了用于下载附件的 getattachment 子命令。但是,getattachment 目前只能下载单个附件,无法下载多个附件。

作为临时解决方案,您可以通过在 getattachment 子命令中一个一个地传递每个附件的问题单号和 UUID 来下载多个附件。

Bugzilla:2064575

redhat-support-tool 无法用于 FUTURE 加密策略

因为客户门户网站 API 中的证书使用的加密密钥不满足 FUTURE 系统范围的加密策略的要求,所以 redhat-support-tool 程序目前无法使用这个策略级别。

要临时解决这个问题,在连接到客户门户网站 API 时使用 DEFAULT 加密策略。

Jira:RHEL-2345

在 IBM Power Systems Little Endian 上运行 sos report 时超时

当在具有带有数百或数千个 CPU 的 IBM Power Systems,Little Endian 上运行 sos report 命令时,处理器插件会在收集 /sys/devices/system/cpu 目录的大量内容时达到默认的 300 秒超时时间。作为临时解决方案,请相应地增加插件的超时时间:

  • 对于一次性设置,请运行:
# sos report -k processor.timeout=1800
  • 对于永久性更改,请编辑 /etc/sos/sos.conf 文件的 [plugin_options] 部分:
[plugin_options]
# Specify any plugin options and their values here. These options take the form
# plugin_name.option_name = value
#rpm.rpmva = off
processor.timeout = 1800

示例值设为 1800。特定的超时值高度依赖于特定的系统。要适当地设置插件超时,您可以首先通过运行以下命令来估算收集一个没有超时的插件所需的时间:

# time sos report -o processor -k processor.timeout=0 --batch --build

Bugzilla:2011413[1]

9.19. 容器

在较旧的容器镜像中运行 systemd 无法正常工作

在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:

$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
 Storing signatures
 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
 [!!!!!!] Failed to mount API filesystems, freezing.

要临时解决这个问题,请使用以下命令:

# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd

Jira:RHELPLAN-96940[1]

第 10 章 国际化

10.1. Red Hat Enterprise Linux 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, libhangul

10.2. RHEL 8 中国际化的显著变化

RHEL 8 与 RHEL 7 相比,对国际化进行了以下更改:

  • 添加了对 Unicode 11 计算行业标准的支持。
  • 国际化发布在多个软件包中,这样就可以进行较小的内存占用安装。如需更多信息,请参阅 使用 langpacks
  • 一些 glibc 区域已与 Unicode Common Locale Data Repository (CLDR)同步。

附录 A. 按组件划分的问题单列表

在本文档中列出了 Bugzilla 和 JIRA 问题单以供参考。这些链接会指向本文档中描述问题单的发行注记。

组件票证

389-ds-base

JIRA:RHEL-19028,JIRA:RHEL-19240,JIRA:RHEL-5390,JIRA:RHEL-5143,JIRA:RHEL-5107,JIRA:RHEL-16338,JIRA:RHEL-14025,JIRA:RHEL-5135

Release Notes

Jira:RHELDOCS-17954, Jira:RHELDOCS-18326, Jira:RHELDOCS-16861, Jira:RHELDOCS-16755, Jira:RHELDOCS-16612, Jira:RHELDOCS-17102, Jira:RHELDOCS-17518

SLOF

Bugzilla:1910848

accel-config

Bugzilla:1843266

anaconda

Jira:RHEL-13151, Bugzilla:2050140, Jira:RHEL-4707, Jira:RHEL-4711, Jira:RHEL-4744

ansible-collection-microsoft-sql

Jira:RHEL-19204, Jira:RHEL-19202, Jira:RHEL-19203

ansible-freeipa

Jira:RHEL-16938, Jira:RHEL-16933, Jira:RHEL-19133, Jira:RHEL-4963, Jira:RHEL-19129

ant

Jira:RHEL-5365

apr

Bugzilla:1819607

audit

Jira:RHEL-15001

authselect

Bugzilla:1892761

bacula

Jira:RHEL-6859

brltty

Bugzilla:2008197

chrony

Jira:RHEL-21069

clang

Jira:RHEL-9299

cloud-init

Jira:RHEL-7312, Jira:RHEL-7278, Jira:RHEL-12122

cmake

Jira:RHEL-7396

cockpit

Bugzilla:1666722

coreutils

Bugzilla:2030661

corosync-qdevice

Bugzilla:1784200

crash

Jira:RHEL-9010, Bugzilla:1906482

crash-ptdump-command

Bugzilla:1838927

createrepo_c

Bugzilla:1973588

crypto-policies

Jira:RHEL-2345, Bugzilla:1919155, Bugzilla:1660839

device-mapper-multipath

JIRA:RHEL-6677,JIRA:RHEL-16563,Bugzilla:2022359,Bugzilla:2011699

distribution

Jira:RHEL-17090, Bugzilla:1657927

dnf

Bugzilla:1986657

dnf-plugins-core

Jira:RHEL-17356, Jira:RHELPLAN-50409

edk2

Bugzilla:1741615, Bugzilla:1935497

elfutils

Jira:RHEL-15924

fapolicyd

Jira:RHEL-520, Bugzilla:2054741

fence-agents

Bugzilla:1775847

firewalld

Bugzilla:1871860

gcc-toolset-13-binutils

Jira:RHEL-25405

gdb

Bugzilla:1853140

git

Jira:RHEL-17103

git-lfs

Jira:RHEL-17102

glibc

Jira:RHEL-13720, Jira:RHEL-10481, Jira:RHEL-19824

gnome-shell-extensions

Bugzilla:1717947

gnome-software

Bugzilla:1668760

gnutls

Bugzilla:1628553

golang

Jira:RHEL-11872

grafana

Jira:RHEL-7503

grub2

Jira:RHEL-15856, Jira:RHEL-15583, Bugzilla:1583445

initscripts

Bugzilla:1875485

ipa

Jira:RHEL-16936, Jira:RHEL-12153, Jira:RHEL-4964, Jira:RHEL-10495, Jira:RHEL-4847, Jira:RHEL-4898, Bugzilla:1664719, Bugzilla:1664718

ipmitool

Jira:RHEL-6846

kernel

Bugzilla:2041881, Jira:RHEL-11597, Bugzilla:1868526, Bugzilla:1694705, Bugzilla:1730502, Bugzilla:1609288, Bugzilla:1602962, Bugzilla:1865745, Bugzilla:1906870, Bugzilla:1924016, Bugzilla:1942888, Bugzilla:1812577, Bugzilla:1910358, Bugzilla:1930576, Bugzilla:1793389, Bugzilla:1654962, Bugzilla:1940674, Bugzilla:1920086, Bugzilla:1971506, Bugzilla:2059262, Bugzilla:2050411, Bugzilla:2106341, Bugzilla:1605216, Bugzilla:1519039, Bugzilla:1627455, Bugzilla:1501618, Bugzilla:1633143, Bugzilla:1814836, Bugzilla:1839311, Bugzilla:1696451, Bugzilla:1348508, Bugzilla:1836977, Bugzilla:1878207, Bugzilla:1665295, Bugzilla:1871863, Bugzilla:1569610, Bugzilla:1794513

kernel / DMA Engine

Jira:RHEL-10097

kernel / Networking / NIC Drivers

Jira:RHEL-11398

kernel / Networking / Protocol / tcp

Jira:RHEL-6113

kernel / Storage / Device Mapper / Crypt

Jira:RHEL-22232

kernel / Storage / Storage Drivers

Jira:RHEL-1765

内核/虚拟化/KVM

Jira:RHEL-2451

kernel-rt/其它

Jira:RHEL-9318

kexec-tools

Bugzilla:2111855

kmod

Bugzilla:2103605

krb5

Jira:RHEL-4910, Bugzilla:2125318, Bugzilla:1877991

libdnf

Jira:RHEL-6421

libgnome-keyring

Bugzilla:1607766

libguestfs

Bugzilla:1554735

libkcapi

Jira:RHEL-5366, Jira:RHEL-15300

librdkafka

Jira:RHEL-12892

librepo

Jira:RHEL-10720

libreswan

Bugzilla:1989050

libselinux-python-2.8-module

Bugzilla:1666328

libvirt

Bugzilla:1664592,Bugzilla:1332758,Bugzilla:2143160,Bugzilla:1528684

linuxptp

Jira:RHEL-21326

llvm-toolset

Jira:RHEL-9028

lvm2

Bugzilla:1496229, Bugzilla:1768536

mariadb

Jira:RHEL-3637, Bugzilla:1942330

maven

Jira:RHEL-17126

mesa

Bugzilla:1886147

nfs-utils

Bugzilla:2081114, Bugzilla:1592011

nginx

Jira:RHEL-14714

nispor

Bugzilla:2153166

nss

Bugzilla:1817533, Bugzilla:1645153

nss_nis

Bugzilla:1803161

opencryptoki

Jira:RHEL-11413

opencv

Bugzilla:1886310

openmpi

Bugzilla:1866402

opensc

jira:RHEL-4077,Bugzilla:1947025

openscap

Bugzilla:2161499

openssh

Jira:RHEL-1684, Jira:RHEL-5279, Bugzilla:2044354

openssl

Jira:RHEL-17689, Bugzilla:1810911

osbuild-composer

Jira:RHEL-4649

oscap-anaconda-addon

JIRA:RHEL-1826,Bugzilla:1843932,Bugzilla:1834716,Bugzilla:1665082,JIRA:RHEL-1810

papi

Jira:RHEL-9336

pcs

JIRA:RHEL-7584,JIRA:RHEL-7668,JIRA:RHEL-7731,JIRA:RHEL-7745,Bugzilla:1619620,Bugzilla:1851335

perl-DateTime-TimeZone

Jira:RHEL-35685

php

Jira:RHEL-14705

pki-core

Bugzilla:1729215, Jira:RHEL-13125, Bugzilla:1628987

podman

Jira:RHELPLAN-167794, Jira:RHELPLAN-167830, Jira:RHELPLAN-167822, Jira:RHELPLAN-168179, Jira:RHELPLAN-168184, Jira:RHELPLAN-154435, Jira:RHELPLAN-168223

policycoreutils

Jira:RHEL-24461

polkit

Jira:RHEL-34022

postfix

Bugzilla:1711885

postgresql

Jira:RHEL-3636

pykickstart

Bugzilla:1637872

python3.11-lxml

Bugzilla:2157673

python36-3.6-module

Bugzilla:2165702

qemu-kvm

JIRA:RHEL-11597, JIRA:RHEL-16696,JIRA:RHEL-13336,Bugzilla:1740002,Bugzilla:1719687,Bugzilla:1966475,Bugzilla:1792683,Bugzilla:1651994

rear

JIRA:RHEL-24729, JIRA:RHEL-17354,JIRA:RHEL-17353,Bugzilla:1925531,Bugzilla:2083301

redhat-support-tool

Bugzilla:2064575

restore

Bugzilla:1997366

rhel-system-roles

Jira:RHEL-18170, Jira:RHEL-3241, Jira:RHEL-15440, Jira:RHEL-4624, Jira:RHEL-16542, Jira:RHEL-21491, Jira:RHEL-16965, Jira:RHEL-16553, Jira:RHEL-18963, Jira:RHEL-16975, Jira:RHEL-21123, Jira:RHEL-19047, Jira:RHEL-15038, Jira:RHEL-21134, Jira:RHEL-14022, Jira:RHEL-17667, Jira:RHEL-15933, Jira:RHEL-16213, Jira:RHEL-16977, Jira:RHEL-5985, Jira:RHEL-4684, Jira:RHEL-16501, Jira:RHEL-17874, Jira:RHEL-21946, Jira:RHEL-21400, Jira:RHEL-15871, Jira:RHEL-22228, Jira:RHEL-22229, Jira:RHEL-3354, Jira:RHEL-19042, Jira:RHEL-19044, Jira:RHEL-19242, Jira:RHEL-21402, Jira:RHEL-25509, Bugzilla:2186908, Bugzilla:2021685, Bugzilla:2006081

rpm

Bugzilla:1688849

rsyslog

Bugzilla:1679512, Jira:RHELPLAN-10431

rteval

Jira:RHEL-8967, Jira:RHEL-21926

rtla

Jira:RHEL-10081

rust-toolset

Jira:RHEL-12964

samba

JIRA:RHEL-16483,Bugzilla:2009213,JIRA:RHELPLAN-13195

scap-security-guide

JIRA:RHEL-25250,Bugzilla:2028428,Bugzilla:2118758,JIRA:RHEL-1804,JIRA:RHEL-1897

selinux-policy

Jira:RHEL-9981, Jira:RHEL-1388, Jira:RHEL-15398, Jira:RHEL-1628, Jira:RHEL-10087, Bugzilla:2166153, Bugzilla:1461914

scs

Bugzilla:2011413

spice

Bugzilla:1849563

sssd

JIRA:SSSD-7015,Bugzilla:2065692,Bugzilla:2056483,Bugzilla:1947671

sssd_kcm

JIRA:SSSD-7015

stunnel

Jira:RHEL-2340

subscription-manager

Bugzilla:2170082

sysstat

Jira:RHEL-12008, Jira:RHEL-23074

tuna

Jira:RHEL-19179

tuned

Bugzilla:2113900

udica

Bugzilla:1763210

valgrind

Jira:RHEL-15926

vdo

Bugzilla:1949163

virt-manager

Bugzilla:2026985

wayland

Bugzilla:1673073

webkit2gtk3

Jira:RHEL-4158

xorg-x11-server

Bugzilla:1698565

其他

Jira:RHELDOCS-17369, Jira:RHELDOCS-17372, Jira:RHELDOCS-16955, Jira:RHELDOCS-16241, Jira:RHELDOCS-16970, Jira:RHELDOCS-17060, Jira:RHELDOCS-17056, Jira:RHELDOCS-16337, Jira:RHELDOCS-17261, Jira:RHELPLAN-123140, Jira:RHELDOCS-18289, Jira:RHELDOCS-18323, Jira:SSSD-6184, Bugzilla:2025814, Bugzilla:2077770, Bugzilla:1777138, Bugzilla:1640697, Bugzilla:1697896, Bugzilla:1961722, Jira:RHELDOCS-18064, Jira:RHELDOCS-18049, Bugzilla:1659609, Bugzilla:1687900, Bugzilla:1757877, Bugzilla:1741436, Jira:RHELPLAN-27987, Jira:RHELPLAN-34199, Jira:RHELPLAN-57914, Jira:RHELPLAN-96940, Bugzilla:1974622, Bugzilla:2028361, Bugzilla:2041997, Bugzilla:2035158, Jira:RHELPLAN-109613, Bugzilla:2126777, Jira:RHELDOCS-17126, Bugzilla:1690207, Bugzilla:1559616, Bugzilla:1889737, Bugzilla:1906489, Bugzilla:1769727, Jira:RHELPLAN-27394, Jira:RHELPLAN-27737, Jira:RHELDOCS-16861, Bugzilla:1642765, Bugzilla:1646541, Bugzilla:1647725, Bugzilla:1932222, Bugzilla:1686057, Bugzilla:1748980, Jira:RHELPLAN-71200, Jira:RHELPLAN-45858, Bugzilla:1871025, Bugzilla:1871953, Bugzilla:1874892, Bugzilla:1916296, Jira:RHELDOCS-17573, Jira:RHELPLAN-100400, Bugzilla:1926114, Bugzilla:1904251, Bugzilla:2011208, Jira:RHELPLAN-59825, Bugzilla:1920624, Jira:RHELPLAN-70700, Bugzilla:1929173, Jira:RHELPLAN-85066, Jira:RHELPLAN-98983, Bugzilla:2009113, Bugzilla:1958250, Bugzilla:2038929, Bugzilla:2006665, Bugzilla:2029338, Bugzilla:2061288, Bugzilla:2060759, Bugzilla:2055826, Bugzilla:2059626, Jira:RHELPLAN-133171, Bugzilla:2142499, Jira:RHELDOCS-16755, Jira:RHELPLAN-146398, Jira:RHELDOCS-18107, Jira:RHELPLAN-153267, Bugzilla:2225332, Jira:RHELPLAN-147538, Jira:RHELDOCS-16612, Jira:RHELDOCS-17102, Jira:RHELDOCS-16300, Jira:RHELDOCS-17038, Jira:RHELDOCS-17461, Jira:RHELDOCS-17518, Jira:RHELDOCS-17623

附录 B. 修订历史

0.0-18

2021 年 11 月 5 日星期二,Lulaka netobserv (lspackova@redhat.com)

  • Compilers 和开发工具 中添加了多个新功能,即:新的 GCC Toolset 14、GCC Toolset 13 GCC 更新、LLVM、R Rust 和 Go Toolsets 的重基。
0.0-17

2024 年 10 月 23 日星期四,Gabriela Fialová(gfialova@redhat.com)

0.0-16

2024 年 10 月 17 日星期四,Brian Angelica (bangelic@redhat.com)

  • 添加了已弃用的功能 RHELDOCS-19027 (文件系统和存储)
0.0-15

2024 年 10 月 9 日星期三,Brian Angelica (bangelic@redhat.com)

  • 添加了已弃用的功能 RHEL-18958 (容器)
0.0-14

2024 年 10 月 9 日星期三,Brian Angelica (bangelic@redhat.com)

  • 添加了一个程序错误修复 RHEL-45908 (身份管理)
0.0-13

Tue 年 9 月 24 2024 日星期二,Manxonka5-6 (lspackova@redhat.com)

  • 添加了一个增强 RHEL-49614 (动态编程语言、Web 和数据库服务器)
0.0-12

Tue Aug 27 2024, swigkaxetex (lspackova@redhat.com)

  • 添加了一个程序错误修复 RHEL-39994 (编译器和开发工具)
0.0-11

2024 年 8 月 14 日星期三,Brian Angelica (bangelic@redhat.com)

0.0-10

2024 年 8 月 14 日星期三,Brian Angelica (bangelic@redhat.com)

0.0-9

Fri Aug 09 2024,Brian Angelica (bangelic@redhat.com)

  • 添加了一个已知问题 RHEL-11397 (安装程序和镜像创建)
0.0-8

2024 年 7 月 18 日星期四, Gabriela Fialová(gfialova@redhat.com)

0.0-7

2024 年 7 月 11 日星期四,Lenka Špačková (lspackova@redhat.com)

  • 添加了一个已知问题 RHEL-45711 (系统角色)
0.0-6

2024 年 7 月 8 日星期一, Lenka Špačková (lspackova@redhat.com)

  • 修复了 RHEL-25405 中的格式化和参考(编译器和开发工具)
0.0-5

2024 年 7 月 3 日星期三, Lenka Špačková (lspackova@redhat.com)

  • 添加了一个已知问题 RHEL-34075 (身份管理)
0.0-4

2024 年 6 月 25 日星期二, Lenka Špačková (lspackova@redhat.com)

  • 添加了一个已知问题 RHELDOCS-18435(动态编程语言、Web 和数据库服务器)
0.0-3

2024 年 6 月 12 日星期三,Brian Angelica (bangelic@redhat.com)

0.0-2

2024 年 6 月 7 日星期五,Brian Angelica (bangelic@redhat.com)

0.0-1

2024 年 5 月 23 日星期四,Brian Angelica (bangelic@redhat.com)

  • Red Hat Enterprise Linux 8.10 发行注记发布。
0.0-0

2024 年 3 月 27 日星期三, Lucie Vařáková (lvarakova@redhat.com)

  • Red Hat Enterprise Linux 8.10 Beta 发行注记发布。

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.