第 21 章 软件管理
下面的章节包含 RHEL 9 和 RHEL 10 之间软件管理的最显著更改。
21.1. DNF 的显著变化 复制链接链接已复制到粘贴板!
现在默认不会下载存储库元数据
在以前的版本中,当您下载存储库的元数据时,文件列表元数据会被默认下载。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)
(try to add '--skip-broken' to skip uninstallable packages or '--setopt=optional_metadata_types=filelists' to load additional filelists metadata)
如果要重新启用默认的 filelist 元数据下载,您可以将 filelists
值添加到 /etc/dnf/dnf.conf
配置文件中的 optional_metadata_types
选项中。
DNF debug
插件已被删除
包含 dnf
和 debug
-dumpdnf debug-restore
命令的 DNF debug 插件已从 dnf-plugins-core
软件包中删除。根据您的场景,您可以使用以下命令:
-
dnf list --installed
或dnf repoquery --installed
列出系统上安装的软件包。 -
dnf repolist -v
列出系统上启用的存储库。 dnf install $(</tmp/list)
,将源系统上安装的软件包复制到目标系统。例如:将源系统上安装的软件包列表保存到
/tmp/list
文件中:dnf repoquery --installed >/tmp/list
$ dnf repoquery --installed >/tmp/list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
将
/tmp/list
文件复制到目标系统。 在目标系统中复制软件包:
dnf install $(</tmp/list)"
$ dnf install $(</tmp/list)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
删除了对 libreport
库的支持
对 libreport
库的支持已从 DNF 中删除。如果要将 DNF 日志附加到错误报告中,您需要手动或使用不同的机制。
dnf-plugins-core
rebase 到版本 4.7.0
dnf-plugins-core
软件包已更新至版本 4.7.0,它提供新的 python3-dnf-plugin-pre-transaction-actions
软件包。这个软件包包括一个新的 pre-transaction-actions
DNF 插件,允许您在启动 RPM 事务时执行命令。如需更多信息,请参阅系统中的 dnf-pre-transaction-actions (8)
手册页。