CentOS 8 Stream パッケージ調査
前置き
2020年12月に CentOS Project は CentOS 8 のメンテナンス終了日(EoL: End of Life)を2021年の年末迄に前倒し、CentOS Linux 8 のユーザーに対して CentOS 8 Stream への移行を勧めることをアナウンスしました。
このアナウンスについての解説は 当社ブログ CentOS 8 EoL 変更と CentOS 8 Stream との違い、影響について の記事をご覧ください。
当記事では、CentOS 8 Stream のパッケージが CentOS Linux 8 と実際にどのくらい違うのか(先行して変更が行われるのか) について、2021年1月時点で一般に公開されている情報を元にして、個々のパッケージのコミットレベルでの変更フローの違いを解説します。(パッチファイルの追加などの、具体的な変更内容については解説しません)
調査対象
CentOS-8.3.2011-x86_64-dvd1.iso と CentOS-Stream-8-x86_64-20201211-dvd1.iso で提供されているパッケージ群から、それぞれのOSディストリビューションでインストールされるパッケージの中でバージョン差分のあるものから、重要なコアパッケージをピックアップし Gitリポジトリ(git.centos.org)の変更を調査しました。
具体的には glibc, zlib, systemd の3つのコアパッケージのバージョンの違いに着目して調査をしましたので、紹介します。
glibc
glibc(The GNU C Library) とは GNUプロジェクトによって開発されている標準Cライブラリの実装です。
ユーザー空間で動作する非常に多くのプログラム(少数の例外もあります)が標準Cライブラリ(glibc)を
利用して、システムコールを呼び出すため、非常に重要なOSのコアパッケージの1つとして挙げられます。
2021年1月の段階だと CentOS 8 Streamは、無印(CentOS Linux 8)と比較して7つほどコミット(変更)が先んじてされています。
http://git.centos.org/rpms/glibc/commits/c8
http://git.centos.org/rpms/glibc/commits/c8s
また パッケージバージョンに着目すると、4つほどバージョンがいきなりインクリメントされているコミットがあることがわかります。
これはRed Hat社の内部でテストされた後、pushされたからだと思われます。
zlib
zlib とはデータの圧縮・展開に使用するライブラリです。ディストリビューションから最小のパッケージしか、インストールしないケースでも、圧縮・展開はできないと様々な操作が不可能なため、この種のライブラリもコアなパッケージとして位置づけられるでしょう。
http://git.centos.org/rpms/zlib/commits/c8
http://git.centos.org/rpms/zlib/commits/c8s
"1.2.11-16.el8_2" というバージョンが無印しか入っておらず、c8s のブランチにはコミットされていません。
そのため、CentOS Streamを抜かして、RHEL に"独自に"フィックスが入るケースも存在すると思われます。
(その後 Streamにも同じ修正が入るかもしれません)
systemd
systemd とは initプログラムの実装の1つです。
init(/sbin/init) は OS(オペレーティングシステム)が起動したあと最初に起動し、
他のすべてのプロセスの親プロセスとなり、起動順などを管理する非常に重要なコアパッケージです。
(これに限らず他にも様々な役割があります)
http://git.centos.org/rpms/systemd/commits/c8
http://git.centos.org/rpms/systemd/commits/c8s
"239-41.el8_3" と "239-41.el8_3.1" というバージョンが無印にのみ入っており、
CentOS 8 Stream では、"239-40.el8" から "239-42.el8" へ、"239-41.el8" を"スキップ"してコミットが入っています。
また、distタグ("el8_3" のような末尾のタグを指します)を見る限り、"239-41.el8_3" と "239-41.el8_3.1" は RHEL 8.3 向けの変更がCentOS 8 へ反映されたコミットだと思われます。
まとめ
現在、いくつかのパッケージのGitリポジトリへの変更を調査する限り、CentOS 8 Streamは 実際に RHEL より先にパッケージが更新されるアップストリームディストリビューション(※1)であることを裏付けており、さらにRHELでも独自に修正を行うことがあるため、RHELにあるパッケージと同等の物(ソースパッケージ、バイナリパッケージの両方)が Stream では利用可能ではありません(保証されていません)。(2022年 CentOS Linux 8 EoL 以降は特にそうなるでしょう)
※1: アップストリームディストリビューション とは パッケージの作成、修正元となるディストリビューションを言います。対の用語はダウンストリームディストリビューションです。(そのパッケージを元に追加要素や商用サポート、商標変更などの改変・変更を入れて開発されるディストリビューションで、この場合はRHELがダウンストリーム側です。旧来のCentOS Linux はさらにRHELからのダウンストリームディストリビューションとなります。)
CentOS Stream は ISOイメージをRHELのマイナーバージョンに合わせてリリースするようなことも行っておらず、最新のイメージのみが利用可能なようです。(古い ISOイメージはほとんどのミラーから入手できなくなっています)
もしも CentOS Stream へ移行する場合は、今までのCentOSと同じようには運用できないことに注意してください、また CentOS 8 Stream は 2024年5月31日 に EoL を迎えるため、今後リリースされるであろう CentOS 9 Stream への再移行計画も3年以内に実行する必要があるでしょう。CentOS Stream への移行前にアップデート計画を熟慮することを勧めます。
変更履歴