12.3. ソフトウェア管理
Red Hat Enterprise Linux 10.2 のソフトウェア管理に関して修正された問題点を確認してください。
dnf-automaticは、デフォルトの/usr/bin/mailを使用して、複数の受信者にメールを送信できます今回のアップデート以前は、
dnf-automaticユーティリティーがcommand_emailエミッターを使用して複数の受信者にメールを送信し、かつs-nailパッケージでインストールされた/usr/bin/mailユーティリティーも使用した場合、/usr/bin/mailによるメール送信に失敗していました。今回のアップデートにより、dnf-automaticユーティリティーは、command_formatフォーマット文字列内のemail_toキーワードを、単一の引数から複数の引数に拡張します。その結果、dnf-automaticはデフォルトの/usr/bin/mailユーティリティーを使用して、複数の受信者にメールを送信します。
- RPM は、パッケージに一部の
NOTTRUSTED署名が含まれている場合でも、複数の署名を持つパッケージのインストールまたは検証に失敗しなくなりました 今回のアップデート以前は、複数の署名を持つパッケージをインストールまたは検証した際に、
rpmkeys(8)ユーティリティーがパッケージ署名の一部をNOTTRUSTEDと報告した場合、RPM は全体の検証結果を正しく判断できませんでした。署名は、たとえば、証明書の有効期限が切れたり失効したりした場合、あるいはシステム全体の暗号化ポリシーによってアルゴリズムが無効になった場合などに、NOTTRUSTEDになることがあります。その結果、パッケージに少なくとも 1 つの有効かつ信頼できる署名があったとしても、RPM はパッケージのインストールまたは検証に失敗しました。今回のアップデートでは、RPM の検証ロジックを修正し、
NOTTRUSTED署名を持つパッケージを正しく処理できるようにします。今回のアップデートでは、この機能に関するエラー報告も改善されています。その結果、RPM は
NOTTRUSTEDパッケージ署名を無視し、パッケージに少なくとも 1 つの有効な署名があり、無効な署名がない場合、複数の署名を持つパッケージのインストールまたは検証を正常に実行します。検証が実際に失敗した際のエラーメッセージも、より明確かつ正確になりました。
- DNF は、サポート対象およびサポート対象外の署名アルゴリズムの両方を使用するパッケージのインストールに失敗しなくなりました
今回のアップデート以前は、サポート対象およびサポート対象外のパッケージ署名アルゴリズムの両方を使用して署名されたパッケージをインストールすることはできませんでした。その結果、DNF は署名の検証時にサポート対象外のアルゴリズムを検出すると、そのようなパッケージを拒絶していました。今回のアップデートにより、DNF は
rpmkeysコマンドの出力でNOTTRUSTEDと分類された署名を無視するようになりました。これにより、DNF は、サポート対象およびサポート対象外の署名アルゴリズムの両方を使用するパッケージをインストールできるようになりました。
- RPM は、パッケージのインストールまたは検証時に、ローカル以外のユーザーとグループを正しく解決します
今回のアップデート以前は、たとえば Lightweight Directory Access Protocol (LDAP) を介した集約型アイデンティティー管理を利用して、対応するユーザーまたはグループが所有するファイルを含むカスタムパッケージをビルドできました。その結果、このカスタムパッケージをインストールした際、RPM はローカル以外のユーザー名とグループ名を解決できず、どちらの場合もデフォルトで
rootとして設定されていました。これにより、ローカル以外のユーザーまたはグループが所有するファイルが、ディスクへのインストール時にrootの所有となってしまう問題が発生していました。今回のアップデートにより、RPM はユーザー名とグループ名の解決時に Name Service Switch (NSS) ファイルを参照するようになりました。その結果、システム上の NSS 設定が正しければ、RPM はこのようなローカル以外のユーザーとグループを正しく解決し、ディスクにインストールされたファイルは、正しいユーザー識別子 (UID) とグループ識別子 (GID) によって所有されます。
注記NSS を使用しない場合は、
%_passwd_pathまたは%_group_pathマクロを設定できます。RPM は名前解決時に、指定されたローカルのpasswd(5)ファイルとgroup(5)ファイルのみを使用します。注記--rootオプションで指定された代替ルートディレクトリーに対してパッケージのインストールや検証を行う際、RPM はターゲットとなるrootディレクトリー内のpasswd(5)およびgroup(5)ファイル、または%_passwd_pathおよび%_group_pathマクロで設定されたパスのみを使用します。このとき、NSS への問い合わせは一切行われません。詳細は、
rpm(8)man ページにある--rootの説明を参照してください。
- DNF はアップグレードトランザクションの
epoch-version-releaseの比較を正しく実行します 今回のアップデート以前は、DNF は RPM パッケージの情報である
epoch-version-release(EVR) の比較を正しく行っていませんでした。その結果、同じepoch-versionを持ちreleaseのみが異なるパッケージに対して、2 回連続してアップグレード操作を実行した場合、DNF はその一連の処理をダウングレードとして認識していました。今回のアップデートでEVRの比較に関する不具合が修正されました。これにより、異なるリリースバージョンを持つパッケージを 2 回続けてアップグレードした場合、DNF はアップグレードとして認識するようになりました。Jira:RHEL-128443[1]
- DNF は、依存関係としてインストールされた保護対象パッケージの自動削除を試みなくなりました
今回のアップデート以前は、ある保護対象パッケージが他の 1 つのパッケージのみから必要とされる依存関係としてインストールされており、かつ
clean_requirements_on_remove設定オプションが有効になっていた場合、その保護対象パッケージが使用されていない依存関係となった際に、DNF はそれを削除しようとするいかなるトランザクションも実行できなくなりました。これにより、そのパッケージに依存していた元のパッケージ自体の削除も妨げられました。これは、DNF が保護対象の依存パッケージも自動的に削除しようと試みるためです。今回のアップデートにより、DNF は保護されたすべてのパッケージを、ユーザーによって明示的にインストールされたものとして扱うようになりました。その結果、DNF は保護対象パッケージを自動削除しようとしなくなり、そのパッケージに依存していた元のパッケージを正常に削除できるようになりました。Jira:RHEL-128445[1]