4.4. 软件管理
dnf4 可以用来运行 DNF 命令
在这个版本中,您可以输入 dnf 或 dnf4 来运行 DNF 命令。
DNF 可以在 RPM 软件包中验证 RPMv6 签名
量级加密保证了软件的完整性和来源。但是,在量子计算中,标准非对称加密算法(如 RSA)不再相关。在这个版本中,除了标准 RPMv4 签名外,您还可以使用新的 multisig DNF 插件在 RPM 软件包上验证 RPMv6 签名。RPMv6 签名可以基于 quantum-safe 算法,如 ML-DSA。
要验证 RPMv6 签名,您可以通过 python3-dnf-plugin- 插件。
multisig RPM 软件包安装 multisig
成功验证是从将 gpgcheck 选项设置为 True 的仓库中安装、重新安装、升级或降级软件包的先决条件。
createrepo_c 支持 zstd
此功能增强添加了对 createrepo_c 命令的 Zstandard (zstd)压缩算法的支持。因此,createrepo_c 可以读取和生成使用 zstd 压缩的元数据。
dnf 标记 DNF 历史记录中的临时事务
dnf history info 命令显示事务是持久的还是临时的。因此,可以更轻松地跟踪软件包更改,特别是对于有很多临时软件包的系统。
RPM 在安装过程中记录原始软件包的校验和
在这个版本中,RPM 会在安装过程中记录整个 .rpm 软件包的 SHA256 和 SHA512 摘要。然后,您可以从 RPM 数据库检索这些摘要,以验证安装的软件包是否与特定的 .rpm 文件对应。因此,您可以通过重新验证安装的软件包集是否与位位(位位,一组已知 .rpm 软件包的集合)来改进 RHEL 系统的完整性,如 DNF 存储库中可用的软件包。
要输出安装的软件包摘要,请使用以下命令:
rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>
$ rpm -q --qf "[%{packagedigestalgos:hashalgo} %{packagedigests}\n]" <package_name>
您还可以通过配置新的 %_pkgverify_digests 宏来自定义数据库中记录哪些摘要类型,例如:
%_pkgverify_digests 8:10
%_pkgverify_digests 8:10
RPM 支持 spec-local 文件属性和依赖项生成器
文件属性及其依赖项生成器通常在构建使用这些属性的软件包之前必须安装的独立软件包中提供。但是,您可能需要 file 属性在构建附带此属性的软件包期间生效。您可能还需要只用于构建软件包的 file 属性,而无需提供属性。
在这个版本中,您可以通过执行以下操作注册 spec-local 文件属性和生成器:
-
定义
%_local_file_attrs宏。%_local_file_attrs接受以冒号分隔的新属性名称列表,以直接在spec文件中注册。 -
为每个属性定义一个或多个依赖项生成器宏,如
%__NAME_provides或%__NAME_path,其中NAME是本地文件属性的名称。
RPM 随后在构建 spec 文件时将文件属性用于依赖项生成。因此,您可以创建不一定要安装的构建时文件属性。
例如,以下 spec 文件片段使用与您的软件包源捆绑的 foobar.sh 脚本为每个打包文件生成提供:
Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*
Source1: foobar.sh
[...]
%define _local_file_attrs foobar
%define __foobar_provides %{SOURCE1}
%define __foobar_path .*
新的 $releasever_major 和 $releasever_minor 变量
提供了新的 $releasever_major 和 $releasever_minor 变量,以更好地支持 Extra Packages for Enterprise Linux (EPEL)存储库和其他按 RHEL 主版本发布内容的软件仓库,而不是每个次版本。这些变量会自动来自 $releasever 变量或 system-release (releasever_major) 和 system-release (releasever_minor) 虚拟提供。因此,您可以使用 $releasever_major 和 $releasever_minor 来创建在多个 RHEL 主版本或次版本间工作的存储库配置文件。