Skip to content

Linux でカーネルを自動アップデートの対象から除外する

Linux でパッケージのアップデート時、カーネルが自動更新されないように固定するにはディストリビューション毎に以下のようにします。

RedHat / CentOS 系

一時的にカーネルを更新対象から除外する

一時的にアップデート対象からカーネルを除外するには以下のように実行します。 7.x 系までであれば yum を、8.x 系以降であれば dnf を利用します。

1
dnf update --exclude='kernel*'
1
yum update --exclude='kernel*'

恒久的にカーネルを更新対象から除外する

恒久的にアップデート対象からカーネルを除外するには /etc/yum.conf の最下行へ以下を追加します。

1
exclude=kernel*

Debian/Ubuntu 系

一時的にカーネルを更新対象から除外する

一時的にアップデート対象からカーネルを除外するには以下のように実行します。 apt-mark hold [PACKAGE] で hold 指定されたパッケージは apt upgrade による自動アップデートの対象から除外されます。 但し、apt update [PACKAGE] のようにパッケージ名を個別に指定した手動アップデートは可能です (アップデートされてしまいます)。

1
apt-mark hold 'linux-generic*' 'linux-headers*' 'linux-image*' 'linux-modules*'

hold を解除し、自動アップデート対象に戻すには以下のように apt-mark unhold [PACKAGE] を実行します。

1
apt-mark unhold 'linux-generic*' 'linux-headers*' 'linux-image*' 'linux-modules*'

hold されているパッケージ一覧を表示するには apt-mark showhold を実行します。

1
apt-mark showhold

恒久的にカーネルを更新対象から除外する

恒久的にアップデート対象からカーネルを除外するには /etc/apt/apt.conf.d/50unattended-upgrades へ以下を追加します。

1
2
3
4
5
6
Unattended-Upgrade::Package-Blacklist {
      "linux-headers*";
      "linux-image*";
      "linux-generic*";
      "linux-modules*";
};