CentOS 8 が2021年末に終了し、それ以降も使うなら CentOS Stream に切り替える必要があるとのことなので、適当なサーバを CentOS 8 から CentOS Stream に切り替えてみました。
まずは元の CentOS 8 を最新に更新しておきます。セットアップ後にしばらく放置していたのと、丁度 8.2 から 8.3 へのアップデートも入っていたので、結構な量の更新がありました。
cat /etc/centos-release #=> CentOS Linux release 8.2.2004 (Core) dnf check-update dnf update -y #=> : #=> Install 15 Packages #=> Upgrade 223 Packages #=> : cat /etc/centos-release #=> CentOS Linux release 8.3.2011 reboot
次に、このへんに書かれている手順の通りに作業します。
dnf install centos-release-stream dnf swap centos-{linux,stream}-repos dnf distro-sync #=> : #=> Install 12 Packages #=> Upgrade 88 Packages #=> Downgrade 3 Packages #=> :
更新されるパッケージの数は 8.2 から 8.3 の数よりも少ないようですが・・Downgrade が 3 つあるのが気になる・・以下のパッケージでした。
kernel-tools 4.18.0-240.el8 kernel-tools-libs 4.18.0-240.el8 python3-perf 4.18.0-240.el8
dnf distro-sync
する前は次の通りだったので確かにダウングレードのようですけど、
kernel-tools 4.18.0-240.1.1.el8_3 kernel-tools-libs 4.18.0-240.1.1.el8_3 python3-perf 4.18.0-240.1.1.el8_3
よく見ると Install で以下のカーネルが入っていました。
kernel 4.18.0-240.el8 kernel-core 4.18.0-240.el8 kernel-modules 4.18.0-240.el8
これも dnf distro-sync
の前は 4.18.0.240.1.1.el8_3
だったので実質ダウングレード?
CentOS 8.3 のと CentOS Stream 8 のとでカーネルのバージョン自体は同じですけど・・うーん、どういうことなの。
何が違うのかを調べてみます。
wget https://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/kernel-4.18.0-240.el8.src.rpm wget https://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/kernel-4.18.0-240.1.1.el8_3.src.rpm rpm -ivh kernel-4.18.0-240.el8.src.rpm mv rpmbuild kernel-4.18.0-240.el8 rpm -ivh kernel-4.18.0-240.1.1.el8_3.src.rpm mv rpmbuild kernel-4.18.0-240.1.1.el8_3 diff -ru kernel-4.18.0-240.el8 kernel-4.18.0-240.1.1.el8_3
下記のパッチの有無の差があるようです。
- debrand-rh-i686-cpu.patch
- debrand-rh_taint.patch
- debrand-single-cpu.patch
パッチの内容を見てみると・・RHEL や Red Hat という文言を CentOS Linux に書き換えてるだけのパッチでした。例えば debrand-rh-i686-cpu.patch は次のような内容でした。
--- a/arch/x86/boot/main.c 2019-03-13 04:04:53.000000000 -0700 +++ b/arch/x86/boot/main.c 2019-05-25 14:31:21.043272496 -0700 @@ -147,7 +147,7 @@ void main(void) /* Make sure we have all the proper CPU support */ if (validate_cpu()) { - puts("This processor is not supported in this version of RHEL.\n"); + puts("This processor is not supported in this version of CentOS Linux.\n"); die(); }
CentOS では RHEL 用に作られた kernel のソースから Red Hat の痕跡を消す必要があるのに対して、CentOS Stream ではその必要はない、ということでしょうかね。