yum updateで kernel を除外する

商用でサーバーを動かす場合、滅多なことでは再起動してはいけないが、yum update に kernel のアップデートなどが含まれた場合は再起動が必要になる(kernel は Linuxのコア部分だから)。

というわけで、yum update はかけるが、kernel アップデートは除外したい場合はどうするか。

yum update --exclude=PACKAGENAME と書けばよい。具体的には

# yum update --exclude=kernel* とする。

または/etc/yum.confファイルを編集する。

[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
 ~(中略)~
exclude=kernel*  ← 追記

注:除外するパッケージが複数ある場合は、それらを単一のスペースまたはコンマを使用して区切る。また、exclude=構成ファイルに複数行を追加してはいけない。yum最後のexcludeエントリだけが考慮される。

例:32bit パッケージを除外する場合
exclude=*.i?86 *.i686

参考 ↓ 日本語のFAQはサブスクリプションが必要なようだが、なぜか英語版は閲覧できた。

access.redhat.com

access.redhat.com

そもそもどのようなアップデートがあった場合再起動が必要になるか。

qiita.com

access.redhat.com

再起動が必要なプロセスを見つけたり、OS再起動が必要かどうかアドバイスしてくれるコマンドがあります。
yum-utils」パッケージに入っている「needs-restarting」コマンドを使います。
いくつかのコアなライブラリやサービスを更新した場合は再起動を促すメッセージが表示されるようです。
ソースコード上では、以下の8パッケージの更新時に再起動するようメッセージが出るようになっています。
dbusglibc、gnutls、linux-firmware、kernel、openssl-libs、systemd、udev』

今度何かアップデートしたら試してみます。

/* -----codeの行番号----- */