6.5. 软件管理


现在默认不会下载存储库元数据

在以前的版本中,当您下载了存储库的元数据时,filelists 元数据也会被默认下载。filelists 元数据较大,通常不需要。有了此更新,默认不会下载此元数据,这提高了响应速度,并节省了磁盘空间。filelists 元数据也不再从存储库下载或更新,在运行 dnf 命令时不会加载到 DNF 事务中。如果 dnf 命令需要 filelists 元数据或包含与文件相关的参数,则元数据会被自动载入。

注意

当软件包有需要处理 filelists 元数据的文件路径依赖项时,事务会失败,并显示依赖项解析错误及以下提示:

(try to add '--skip-broken' to skip uninstallable packages or '--setopt=optional_metadata_types=filelists' to load additional filelists metadata)
Copy to Clipboard Toggle word wrap
注意

如果要重新启用默认的 filelist 元数据下载,您可以将 filelists 值添加到 /etc/dnf/dnf.conf 配置文件中的 optional_metadata_types 选项中。

Jira:RHEL-12355[1]

DNF 现在使用 librpmio 处理 PGP 密钥

要验证 RPM 软件包签名,RPM 使用 rpm-sequoia 库,而不是之前使用的自定义 PGP 解析器。有了此更新,可以在 DNF 存储仓库上验证 PGP 签名的 librepo 库现在也通过 librpmio 库使用 rpm-sequoia。因此,为了提供一致的用户体验,dnflibrpmrpm 组件现在使用同样的 PGP 实现。

Jira:RHEL-47106

提供了 dnf-plugins-core 版本 4.7.0

RHEL 10 提供了 dnf-plugins-core 软件包版本 4.7.0 ,其包括一个新的 python3-dnf-plugin-pre-transaction-actions 软件包。这个软件包包括一个新的 pre-transaction-actions DNF 插件,允许您在启动 RPM 事务时运行命令。如需更多信息,请参阅系统上的 dnf-pre-transaction-actions (8) 手册页。

Jira:RHEL-38831

提供了 createrepo_c 版本 1.0.0

RHEL 10 提供了createrepo_c 软件包版本 1.0.0 。与以前版本相比的显著变化包括:

  • 默认压缩从 gz 切换到 zstd,其提供较小的可快速解压的元数据。请注意,gz 压缩仍被支持。
  • 要节省时间和磁盘空间,默认情况下不再生成 SQLite 数据库格式的元数据。请注意,您仍然可以使用 --database 开关或 sqliterepo_c 工具创建此元数据。
  • 管理 group.xml 元数据已经标准化。在以前的版本中,这个元数据出现两次,作为压缩的和未压缩的元数据。有了此更新,组元数据只作为压缩的元数据出现一次,并具有 元数据类型。

    注意

    group.xml 元数据与 RHEL 7 中的 YUM 不兼容。如果需要,您仍然可以使用 modifyrepo_c 命令创建带有旧布局的存储库。

Jira:RHELDOCS-18997[1]

DNF、PackageKit 和 microdnf 工具现在在升级过程中只安装新推荐的软件包

exclude_from_weak_autodetect 选项可以自动探测到安装的软件包的弱依赖项,并阻止安装满足已被无主题依赖项的软件包安装。在此次更新之前,这个选项默认被设置为 False。因此,在升级该软件包时,软件包的所有现有的弱依赖项都被安装了,即使一些弱依赖项之前没有安装。有了此更新,exclude_from_weak_autodetect 选项的默认值已被设置为 true。因此,在升级过程中,使用 DNF、PackageKit 或 microdnf 工具现在只安装了新推荐的软件包。

注意

您可以手动更改 /etc/dnf/dnf.conf 配置文件中的 exclude_from_weak_autodetect 的默认值。

Jira:RHELDOCS-19415[1]

RPM 数据库重定位到 /usr

有了此更新,RPM 数据库已从 /var/lib/rpm 目录移到 /usr/lib/sysimage/rpm 目录。将数据库存储在 /usr 中简化了系统快照的创建和回滚,因为不再需要考虑 /var 的内容。它还使 RHEL 与基于 rpm-ostree 的系统(如 RHEL CoreOS)保持一致,这些系统已在 /usr 目录下存储了 RPM 数据库。

注意

这个变化对大多数用户没有可见的影响,因为 RPM 在其功能上没有变化。但是,执行操作系统级别快照(通常包含 /usr 目录)的高级用户不再需要将位于 /var/lib/rpm 的 RPM 数据库包含在快照中,以便在回滚时保留系统状态。

Jira:RHELDOCS-19417[1]

新的 --exclude-services 标志,来从过时的进程列表中排除 systemd 服务

您可以使用 dnf needs-restarting --services 列出需要重启的 systemd 服务。有了此更新,一个新的 --exclude-services 已添加到 dnf needs-restarting 中。您可以使用此标志从过时的进程列表中排除 systemd 服务。

Jira:RHEL-56137

RHEL 用户的镜像模式现在可以使用 dnf --transient 执行在重启时重置的软件包事务

在以前的版本中,RHEL 用户的镜像模式可能会通过运行 bootc usr-overlay 命令临时安装、删除和升级软件包,来解锁系统,然后通过运行 DNF 命令来进行更改。如果您使用 bootc usr-overlay,当系统重启时,/usr 目录覆盖会消失,对其所做的所有更改都将重置。对其他目录的更改,包括 /etc 中的配置以及 /var 中的程序状态,在重启后保持不变。

有了此更新,已向 DNF 中添加了一个新的 --transient 标志和一个新的 persistence 配置选项,以提高 bootc 系统上的用户体验。您现在可以使用以下选项之一跳过 bootc usr-overlay 步骤:

  • 使用 dnf --transient 命令。
  • dnf.conf 文件中将 persistence 选项设置为 transient
注意

与使用 bootc usr-overlay 不同,,--transientpersistence=transient 确保 /usr 目录在事务之前、期间和之后仍然对其他进程保持只读。

例如,要临时安装 make 软件包,请输入:

# dnf install --transient make
Copy to Clipboard Toggle word wrap

Jira:RHEL-76849

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat