Fedoraで特定のパッケージを「アップデート対象外」にする方法

Fedoraで、「特定パッケージをアップデート対象外にする」方法を、例をあげて分かりやすく解説します。

dnfコマンドのオプションに指定する方法

dnfコマンドを実行する時、以下のように「--exclude パッケージ名」を指定して実行することで、アップデート対象外にすることができます。

sudo dnf update --exclude=パッケージ名

以下は、「microcode_ctl」を対象外としてアップデートを実行する例です。

sudo dnf update --exclude=microcode_ctl

*」や「?」などのワイルドカードを用いたグロブパターンでパッケージ名を指定することもできます。以下は、「kernel*」にマッチするパッケージを対象外としてアップデートを実行する例です。

sudo dnf update --exclude='kernel*'

/etc/dnf/dnf.confに記述する方法

常に対象外としたいパッケージがあるなら、「/etc/dnf/dnf.conf」の「[main]」セクションに以下の行を記述することで設定できます。

excludepkgs=パッケージ名 [...]

パッケージ名は、スペースで区切って複数指定できます。また、コマンドオプションで指定する場合と同様、「*」や「?」などのワイルドカードを用いたグロブパターンでパッケージ名を指定することもできます。

以下は、「microcode_ctl」と「kernel*」にマッチするパッケージを対象外とする例です。

excludepkgs=microcode_ctl kernel*

これで、コマンドオプションを指定しなくても任意のパッケージをアップデート対象外とすることができます。

# /etc/dnf/dnf.confで「excludepkgs」に設定したパッケージを対象外にしてアップデート
sudo dnf update

/etc/dnf/dnf.confexclude設定を無視する場合は、以下のように「--disableexcludes=all」を指定して実行します。

# /etc/dnf/dnf.confの「excludepkgs」設定を無視してアップデート
sudo dnf update --disableexcludes=all

all」ではなく、「main」などのレポジトリIDを指定することもできます。その場合、指定したレポジトリについてのみ、exclude設定が無視されます。

関連記事