RedHat系のLinuxでは、カーネルやパッケージを更新する際にdnfコマンドを使用しますが、利用環境によっては、カーネルや特定のパッケージだけは更新せずに特定のバージョンのまま使用したい場合があります。
そこでここではRedHat互換のAlmaLinuxを例に、dnfコマンドでカーネルや指定したパッケージを更新対象から除外する方法を紹介します。
目次
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
あとがき
カーネルやパッケージの更新は、まれにシステムに思わぬトラブルを引き起こすことがあるため、カーネルや特定のパッケージの更新はそのほかのパッケージと分けて行いたい場合があります。そのようなときにここで紹介した方法が役立つでしょう。