6.4. ソフトウェア管理
dnf autoremove
コマンドの動作が man ページのドキュメントと整合するようになり、コマンドがパッケージのインストール理由を考慮するようになる
以前は、dnf autoremove
コマンドを使用して不要なパッケージを削除すると、installonly
とマークされたインストール済みパッケージが削除されていました。しかし、dnf(8)
man ページのドキュメントには、installonly
パッケージは dnf autoremove
操作から除外されるという情報が記載されていました。
この更新により、次の修正が提供されました。
-
dnf(8)
man ページのドキュメントに、installonly
パッケージはdnf autoremove
から除外されない旨が記載されました。 -
複数の
installonly
パッケージがdnf autoremove
操作に含まれている場合、DNF はインストール履歴からパッケージのインストール理由を正しく推測するようになりました。
その結果、dnf autoremove
コマンドの動作が man ページのドキュメントと整合するようになり、コマンドがパッケージのインストール理由を考慮するようになりました。
dnf autoremove
が必要なパッケージを削除することを要求する場合は、これらのパッケージを dnf mark install <package>
とマークします。
dnf-automatic
systemd
サービスがセキュリティー更新の適用に失敗しなくなる
以前は、dnf-automatic-install
systemd
サービスを使用してセキュリティー修正だけを適用すると、samba-client-libs
パッケージの自動アップグレードが失敗していました。この更新により、dnf-automatic
は、DNF ツールと同じ方法でセキュリティー更新を適用します。その結果、dnf-automatic
サービスがセキュリティー更新の適用に失敗しなくなりました。
dnf remove --duplicates
がゼロ以外の終了コードとエラーメッセージで終了しなくなる
以前は、重複パッケージがシステムに存在しないときに dnf remove --duplicates
コマンドを実行すると、dnf
はゼロ以外の終了コードで終了し、標準エラー出力 (stderr
) に No duplicated packages found for removal.
というエラーが表示されていました。この更新により、dnf
は 0
で終了し、stderr
に何も書き込まれなくなりました。古いバージョンの installonly
パッケージがインストールされていなければ、dnf remove --oldinstallonly
コマンドでも同じ問題が修正されます。
dnf remove-n
は、一致する RPM 名を持つパッケージのみを削除するようになる
以前は、あるパッケージをインストールし、RPM Provides ディレクティブでそのパッケージの名前を持つ別のパッケージをインストールした場合、dnf remove-n
コマンドの一度目の呼び出しで前者のパッケージが削除されていました。このコマンドをもう一度呼び出すと、後者のパッケージが削除されていました。
この更新により、dnf remove-n
コマンドが一致する RPM 名を持つパッケージのみを削除するようになり、RPM Provides を考慮しなくなりました。その結果、dnf remove-n
を 1 回呼び出すだけで、一致するすべてのパッケージを削除できるようになりました。
dnf reinstall
は、パッケージを再インストールする際にリポジトリーのコストを考慮するようになる
以前は、複数のリポジトリーで利用可能なパッケージを再インストールする場合に、コストが最も低いリポジトリーからパッケージが再インストールされませんでした。この更新により、パッケージの name-epoch-version-release-architecture
識別子が同じである場合、DNF ツールがすべてのリポジトリーのパッケージを依存関係ソルバーに提供するようになりました。その結果、dnf reinstall
コマンドはリポジトリーのコストを考慮するようになりました。
dnf-system-upgrade
は、セキュアな HTTPS リンクを使用してドキュメントを指すようになりました。
以前は、dnf-system-upgrade
サービスのドキュメントでは、安全ではない HTTP リンクを使用してドキュメントにアクセスしていました。今回の更新により、URL がセキュアな HTTPS スキーマを使用するようになりました。
Jira:RHEL-13053[1]
同じパッケージのインストールおよびアップグレードを含む RPM トランザクションの繰り返しのロールバックで、dnf history rollback
が正しく実行されるようになりました。
以前は、同じパッケージのインストールとアップグレードを含む RPM トランザクションに対して繰り返しのロールバックを実行すると、dnf history rollback
コマンドが偽のトランザクションを実行しようとしていました。最新のトランザクションへのロールバックではロールバックするものがないため、このトランザクションは何も実行されず失敗していました。
今回の更新により、同じバージョンの 2 つの RPM トランザクション間の差異計算が、libdnf
ライブラリーで修正されました。その結果、現時点で最新の RPM トランザクションを指す dnf history rollback
が正しく Nothing to do.
を出力するようになりました。
microdnf
が、提供する RPM シンボルと競合するパッケージの再インストールに失敗しなくなりました
以前は、microdnf
パッケージマネージャーを使用してパッケージを再インストールすると、RPM トランザクションが失敗していました。今回の更新により、再インストールされるパッケージが、そのパッケージも競合する RPM シンボルを提供する RPM トランザクションを、libdnf
が作成するようになりました。その結果、microdnf
は、提供する RPM シンボルと競合するパッケージを再インストールできるようになりました。
Jira:RHEL-1454[1]
システムのインストール時に、Anaconda キックスタートスクリプトの解釈がハングしなくなりました
以前は、Anaconda キックスタートスクリプトを使用してシステムをインストールすると、そのスクリプトの解釈がランダムにハングしていました。今回の更新により、libdnf
メモリー管理を行うことで、利用可能なパッケージの数を増やした後にクエリーを適用できるようになりました。その結果、リポジトリーを有効化した後に libdnf
ライブラリーは例外を出力しないため、システムのインストールはハングしなくなりました。
Jira:RHEL-27657[1]
DNF(8) に、最初のミラーリングが失敗した場合に dnf makecache --timer
がミラーリングをそれ以上試行しないことに関する情報が記載される
以前は、DNF(8) man ページに、最初のミラーリングが失敗した場合に dnf makecache --timer
コマンドがリポジトリーミラーリスト内のミラーリングをそれ以上試行しないという情報が記載されていませんでした。この更新により、ドキュメントが更新され、この情報が記載されるようになりました。