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

2018年9月7日

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

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

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

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

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

sudo yum update --exclude=microcode_ctl

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

sudo yum update --exclude='kernel*'

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

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

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

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

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

exclude=microcode_ctl kernel*

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

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

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

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

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

関連記事