RHELではsubscription-managerの機能で、リリースを固定できます。 カーネルやリリースバージョンを厳密に指定されているようなソフトウェアを動かすときもこれなら安心ですね。
]# subscription-manager release --set=8.6
ソフトウェアによって、RHELのサポート期間が長いバージョン(通常は偶数バージョン。公式の情報 を確認)しかサポートしていないことがあるんですよ。そんな時助かります。
しかし、先日どうしてもRHEL8のクローンOSを使う必要がありました。 RHEL8のクローンOSは通常Stable版しかサポートされません(2022/12/20現在、8系なら8.7、9系なら9.1)。当然カーネルのベースバージョンも更新されます。そうするとうまく動かないソフトウェアがあるんですよね。
こんな時はgrubbyを使って、対応しようと思います。
]# dnf install grubby
リポジトリーに存在するkernelのパッケージを探して
]# dnf list kernel --showduplicates | sort -r
対象のバージョンのカーネルをインストールするときは、パッケージ名-バージョンのような感じで指定します。
]# dnf install kernel-4.18.0-372.32.1.el8_6
次のように実行すると、インストール済みのカーネルの一覧が出てきます。
]# grubby --info=ALL
その中から目的のカーネルをデフォルトに設定します。
]# grubby --set-default /boot/vmlinuz-4.18.0-372.32.1.el8_6.x86_64 ]# grubby --default-kernel #念のため確認
次の設定ファイルのUPDATEDEFAULT=no
設定をしておくと、新しいカーネルがインストールされてもデフォルトカーネルが書き換えられません。
]# cat /etc/sysconfig/kernel # UPDATEDEFAULT specifies if kernel-install should make # new kernels the default #UPDATEDEFAULT=yes UPDATEDEFAULT=no # DEFAULTKERNEL specifies the default kernel package type DEFAULTKERNEL=kernel-core
詳しくはこのドキュメント参照ですね。
ちなみにリリース番号までみるようなソフトウェアはこれだけではダメです。でもだいたい、カーネルさえ対応するバージョンにしておけば大抵動きます。