6.3. 软件管理
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 .*
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
在 dnf 事务过程中报告系统时钟偏移
在系统和授权服务器之间显著时钟偏移会使内容存储库不可用,即使在正确注册的系统上也是如此。很难进行故障排除,特别是当负偏移在以后启动权利时。
在这个版本中,当 subscription-manager 检测到时钟偏移大于 2 秒时,在 dnf 事务过程中将以下信息输出到 stdout:
The system clock is skewed. There is a time difference of X.Y seconds with the entitlement server. Please check your clock settings to ensure access to all entitled content.
The system clock is skewed. There is a time difference of X.Y seconds with the entitlement server. Please check your clock settings to ensure access to all entitled content.
当 skew 超过 2 秒时,额外的 DEBUG 日志记录被写入 /var/log/rhsm/rhsm.log 文件,如果超过 15 分钟,则改为 WARNING。
有关如何使 RHEL 10 系统时钟与 NTP 服务器同步的说明,请参阅 配置时间同步。
Jira:RHEL-13374[1]