6.3. ソフトウェア管理
RPM が spec ファイルローカルなファイル属性と依存関係ジェネレーターをサポートするようになりました
ファイル属性とその依存関係ジェネレーターは、通常、別々のパッケージに同梱されるため、これらの属性を使用するパッケージをビルドする前にインストールする必要があります。しかし、場合によっては、ファイル属性を同梱するパッケージのビルド中にこの属性を有効にする必要があります。また、パッケージをビルドするためだけにファイル属性が必要で、属性をパッケージに同梱せずに済ませたいという場合もあります。
この更新により、次の手順を実行することで、spec ファイルローカルなファイル属性とジェネレーターを登録できるようになりました。
-
%_local_file_attrsマクロを定義します。%_local_file_attrsは、specファイルに直接登録する新しい属性名のコロン区切りリストを受け入れます。 -
各属性に対して、
%__NAME_providesや%__NAME_pathなどの 1 つ以上の依存関係ジェネレーターマクロを定義します。NAMEはローカルファイル属性の名前です。
これにより、RPM が、spec ファイルのビルド時に、依存関係の生成にファイル属性を使用するようになります。その結果、必ずしもインストール用ではないビルド時のファイル属性を作成することが可能になります。
たとえば、次の spec ファイルスニペットは、パッケージのソースにバンドルされている foobar.sh スクリプトを使用して、パッケージ化される各ファイルの provides を生成します。
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 ファイルに対応していることを確認できます。その結果、インストールされたパッケージセットが、DNF リポジトリーで使用可能なパッケージなど、既知の .rpm パッケージセットとビット単位で一致することを遡及的に検証することで、RHEL システムの整合性を向上させることができます。
インストールされたパッケージのパッケージダイジェストを出力するには、次のコマンドを使用します。
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.
ずれが 2 秒を超えると、追加の DEBUG ロギングが /var/log/rhsm/rhsm.log ファイルに書き込まれます。ずれが 15 分を超えると、ロギングが WARNING に変わります。
RHEL 10 のシステムクロックを NTP サーバーと同期させる方法は、時刻同期の設定 を参照してください。
Jira:RHEL-13374[1]