Linuxのdnfで指定したパッケージを更新対象から除外する方法

Linuxのdnfで指定したパッケージを更新対象から除外する方法

RHEL系のLinuxでは、カーネルやパッケージを更新する際にdnfコマンドを使用しますが、利用環境によっては、カーネルや特定のパッケージだけは更新せずに特定のバージョンのまま使用したい場合があります。

そこでここではRHEL互換のAlmaLinuxを例に、dnfコマンドでカーネルや指定したパッケージを更新対象から除外する方法を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
AlmaLinux9.4

dnfコマンドでパッケージを除外する

dnfコマンドでパッケージを更新するときに、特定のパッケージを更新対象から除外したいときは「--exclude=」オプションを使って、除外するパッケージを指定します。

たとえば、カーネル関連のパッケージを更新対象から除外したいときは、以下のようにコマンドを実行します。

# dnf update -–exclude=kernel*

複数のパッケージを除外したいときは、以下のようにコマンドを実行します。

# dnf update -–exclude=kernel* --exclude=mariadb*

dnfの設定ファイルでパッケージを除外する

dnfの設定ファイル「/etc/dnf/dnf.conf」で、特定のパッケージを更新対象から除外するときは、設定ファイルのmainセクションに「excludepkgs=」でパッケージ名を追記します。

たとえば、カーネル関連のパッケージを更新対象から除外したいときは、以下のように設定ファイルに追記します。

# vim /etc/dnf/dnf.conf

[main]
excludepkgs=kernel*

複数のパッケージを除外したいときは、半角の空白で区切って指定します。

# vim /etc/dnf/dnf.conf

[main]
exclude=kernel* mariadb*

除外設定を無視して更新するときは

dnf.confファイルの除外設定を無視して更新したいときは、dnfコマンドに「--disableexcludes=all」オプションを指定して実行します。

# dnf update --disableexcludes=all

あとがき

カーネルやパッケージの更新は、まれにシステムに思わぬトラブルを引き起こすことがあるため、カーネルや特定のパッケージの更新はそのほかのパッケージと分けて行いたい場合があります。そのようなときにここで紹介した方法が役立つでしょう。