「CentOS Project shifts focus to CentOS Stream」の状況のまとめ

2020年12月8日、centos.orgのサイトにCentOS Project shifts focus to CentOS Stream (CentOSプロジェクトはCentOS Streamにフォーカスを移します) という記事が掲載されました。
FAQページ「FAQ - CentOS Project shifts focus to CentOS Stream」も掲載されました。

【RedHat社の発表】
RedHat社も同じ日にCTOのChris Wright氏が「CentOS Stream: Building an innovative future for enterprise Linux 」という記事をRedHat社の顧客向けのメッセージとして掲載しています。原文も含めた引用を [ こちら ] にまとめました。

【メディアの記事】
https://news.mynavi.jp/article/20201209-1573811/
https://mag.osdn.jp/20/12/10/091500
https://gihyo.jp/admin/clip/01/linux_dt/202012/24

【注】
12月16日に一旦まとめを掲載したのですが、その後、さらに調べた内容を追記し、もう少し読みやすいように、以下、全面的に書き換えました。
12月16日に書いた内容は、参考にそのまま [ こちら ] に残してあります。
- 記:2021年1月24日 -

関連するページも含めてまとめると、その内容は以下のようなものです。

リリースとサポートの日程について:

CentOS Linux 8は2021年12月に終了 (そこからユーザは直接 CentOS Stream 8 に切り替えることができる)
・CentOS Linux 8 のアップデート (セキュリティパッチ、バグフィックスなど)は 2021 年末まで
・CentOS Linux 9 はリリースしない。代わりに CentOS Stream 9 がその役割を果たす
・CentOS Stream 8 のアップデートはRHEL 8 の"フルサポート"フェーズの期間 (〜2024年5月31日) 続く
・CentOS Stream 9 は、RHEL 9 開発プロセスの一環として、2021 年第 2 四半期(6月~8月)にリリース予定

⇒上記の内容についての原文の引用は以下より。
FAQ - CentOS Project shifts focus to CentOS Stream
Q: What is being announced regarding the CentOS Project?
Minutes for CentOS Board of Directors for 2020-11-11

CentOS Stream についての説明とユーザへのメッセージなど:

・CentOS 8の終了後は、CentOS Stream 8 に移行するのが最善の選択になるだろう。
・CentOS Stream 8 はCentOS 8とは小さな差分(small delta)がある。
・CentOS Streamでは次のRHELのためのバグ修正と機能追加を行うことになる。
・CentOS Stream は新しいパッケージが入ってきた時点で、ケースバイケースで判断の上、リリースされる。
・CentOS 9はリリースしないが、CentOS Stream 9が代わりにその役割を果す。

⇒上記の内容についての原文の引用は [こちら]。

【RedHat社の2014年1月の支援発表と、今回の発表を振り返る】

約7年前のRedHatの支援発表と、今回の発表の内容のポイントを抜粋してみました。
RedHatがCentOSプロジェクトへの支援の目的をRHEL開発促進のためとしていることは7年前から今回まで一貫しています。
CentOSがRHELの代わりとなっていることは、RHELの知名度やフィードバックという点でプラス面もあるのでは、という気もしますがRedHatはそこにはまったく重きを置いていないようです。サブスクリプション契約する顧客を増やすという面ではやはりマイナスが大きいのでしょう。
CentOSプロジェクトとしての立場は、 以下のKarsten Wade氏による記事(原文はかなり長いのでポイントのみ抜粋。これまでの経緯が丁寧に書かれているので、ぜひ原文を確認すると良いです)によく表れていると思います。

⇒引用した原文の抜粋は [こちら] 。

January 7, 2014

Red Hat and the CentOS Project Join Forces to Speed Open Source Innovation
Brian Stevens (当時のRed Hat CTO):
CentOS プロジェクトと力を合わせて、OpenStack やビッグデータのような最先端の技術を何百万人もの開発者に届けるための媒体の構築を目指しています。

Karanbir Singh (CentOS プロジェクトリーダー):
RedHatがCentOSプロジェクトのコントリビュータに加わることで、CentOS コミュニティの視野や活動を広げるために必要なリソースと専門知識にアクセスすることができます。

January 16, 2014

CentOS Project Leader Karanbir Singh Opens Up on Red Hat Deal
Karanbir Singh (CentOS プロジェクトリーダー):
Red Hat はCentOSプロジェクトにリソースと組織構造を提供し、CentOSプロジェクトは新しい技術のための安定したテストの場を提供します。

December 8, 2020

CentOS Stream: Building an innovative future for enterprise Linux
Chris Wright (RedHat CTO):
私たちは、CentOSプロジェクト運営委員会に、CentOS LinuxからCentOS Streamに投資を全面的にシフトすることを通知しました。

CentOS StreamはRHEL開発者間のフィードバックループを短縮し、RHELの将来のバージョンを作成する際に、大規模なパートナーからも個人のコントリビュータからも意見を聞くことを容易にします。

19, December 2020

Balancing the needs around the CentOS platform
Karsten Wade (CentOS Project Governing Board設立時からのRedHat メンバー):
Red Hat がCentOSの支援を始める前、CentOSなどによるリビルドは可用性のギャップに対処していましたが、RHELユーザ(及びリビルドを使用するユーザ)はRHELに簡単にコントリビュートできないというオープン性のギャップがありました。
そこでRed HatとCentOSプロジェクトは力を合わせることに合意し、それからの6年間で私たちは目標に向けて順調に前進してきました。
プロジェクトの焦点を CentOS Stream に移すという動きは、いくつかの重要な点でオープン性のギャップを埋めることになります。
Red Hat はCentOS の位置を RHEL のdownstream(下流)から RHEL のupstream(上流)に移すことで、Fedora と RHEL の間に存在する開発とコントリビューションのギャップを埋めようとしています。

CentOS StreamはCentOS Linuxが解決できないオープン性のギャップを解決し、CentOS Streamの可用性のギャップに疑問を抱いているユーザのワークロードの約95%をカバーできると確信しています。

【CentOS Stream 8 はCentOS 8にくらべてstableか?】

https://blog.centos.org/2020/12/future-is-centos-stream/ には以下のような記載があり、
「your best option will be to migrate to CentOS Stream 8, which is a small delta from CentOS Linux 8」
https://centos.org/distro-faq/ には、
「the CentOS community will continue to bring the same features to our Linux distro. If you are a CentOS Linux user, don’t worry! There will be a CentOS distribution here in the future.」
と書かれています。

CentOS 8とCentos Stream 8でどのくらいの違いがあるのか、パッケージを比較してみました(後述)。
また、blog.centos.orgの以下の記事は、CentOS Stream がどのようなものかを判断する上で、特に重要だと思います。

CentOS Stream is Continuous Delivery (12/11/2020 Stef Walter) ⇒抜粋した引用は [こちら]
How RHEL is Made (12/11/2020 Brendan Conoboy) ⇒抜粋した引用は [こちら]
Balancing the needs around the CentOS platform (12/19/2020 Karsten Wade) ⇒抜粋した引用は [こちら] と [こちら]

さらに、Karsten Wade氏の以下の部分におおいに納得できるものがあり、
「It is hard to balance the needs and processes of making business decisions with the needs and processes of making open community decisions. Arguably, Red Hat has been among the best organizations at straddling this hard, thin line. If you trust our code enough to run it for this long, I ask you to trust us to make good decisions here.」

結論として、Stream 8は十分にstableと思われるので、CentOS 8の後はStream 8を使おうと思います。
※Stream 8以外の選択肢もこのページの末尾に挙げています。

【CentOS Streamのインストール手順】

インストール手順はCentOS 8と同じです。
CentOS のミラーサイトからStream 8のISOイメージをダウンロードして、インストールします。
https://www.centos.org/download/

【CentOS 8 からCentOS Stream 8への移行手順】

CentOS 8 からStream 8 への移行手順はcentos.orgのサイトに掲載されています。
https://www.centos.org/centos-stream/
手順はとてもシンプルで、/etc/yum.repos.dの下のリポジトリファイルをCentOS 8用からStream 8用に変更し、Stream 8のリポジトリを使ってパッケージを更新します。
CentOS 8.2 をStream 8に移行した例を [こちら] に書いたので参考にしてください。

【CentOS 8 とCentOS Stream 8のパッケージを比較】

CentOS 8.2とStream 8のパッケージの比較を [こちら]に、
CentOS 8.3とStream 8のパッケージの比較を [こちら] に、書いたので参考にしてください。
「CentOS Stream 8, which is a small delta from CentOS Linux 8」とあるように、差分は極めて小さいことがわかります。

【CentOS Streamはローリングリリースで配布される】

ローリングリリースではディストリビューションとしてのバージョン番号はなく、個々のパッケージごとにバージョンを管理し、パッケージは随時更新が行われます。
CentOS Stream 8 のリリース履歴は [こちら] 。
CentOS Stream 8 のリポジトリのミラーについては [こちら] 。

参考:
ローリングリリースを採用したディストリビューションによっては、インストール用ISOイメージが定期的に更新され、サイトからダウンロードできるようになっています。
ローリングリリースを採用した代表的はディストリビューションとしてはGentoo LinuxArch Linuxがあります。

・Gentoo Linux
RedHat系にもDebian/Ubuntu系にも属さない、Portageというパッケージ管理システムを持つ独自のディストリビューションです。
ソフトウェアパッケージは最新版のソースコードをebuildと呼ばれるgentooリポジトリからダウンロード/コンパイルしてビルドします。このためにemergeというコマンドが用意されています。

・Arch Linux
RedHat系にもDebian/Ubuntu系にも属さない、Packmanというパッケージ管理システムを持つ独自のディストリビューションです。
Arch Linuxの公式リポジトリ(core, extra, community, multilib)から、packmanコマンドで最新版のバイナリパッケージをインストールすることができます。

【CentOS Stream は継続的デリバリ】

以下はcentos.orgブログの引用です。
・CentOS Stream is Continuous Delivery : 「CentOS Stream は継続的デリバリです」
・How RHEL is Made : 「RHELはどのようにして作られるのか」

参考:
継続的インテグレーション(Continuous Integration, CI)/継続的デリバリ(Continuous Delivery, CD)はDevOpsで使われる、ソフトウェアのビルド、テスト、リリースを迅速かつ頻繁に行うための技術です。
CIでは開発者がコードを変更するとあらかじめ決められた手順で自動的にビルドを行い、その後、開発者やテスターが事前に用意したテストが自動的に実行されます。
CDではテストされたコードを常にリリース可能な状態にしておき、リリースは運用者の判断で行います。
これにより、短いサイクルでソフトウェアを生産し、いつでも確実にリリースできるようになります。
自動化のためのCI/CDツールとして、JenkinsCircleCIGitLab CIGitHub Actions、などがあります。

参考URL:
https://ja.wikipedia.org/wiki/継続的デリバリー
https://ja.wikipedia.org/wiki/継続的インテグレーション
https://www.redhat.com/ja/topics/devops/what-is-ci-cd
https://developers.redhat.com/blog/2017/09/06/continuous-integration-a-t...
https://www.redhat.com/ja/topics/devops/what-cicd-pipeline

【どのStreamリリースを使用するか】
以下の使い方が一般的だと思います。CentOS 8の場合と同じです。

・最新版を使う

上記の手順でミラーのISOイメージからインストールした場合、あるいはCentOS 8から移行した場合は最新版になります。その後はCentOS 8の場合と同じように、定期的に「dnf upgrade」コマンドで最新版に更新します。

・同じリリースを使い続ける

インストール時のリリースを、更新せずにそのまま使い続ける、という使い方もあります。(バージョンアップによるregression(退行)の回避、使用しているアプリとの整合性の維持、など)
その場合、ミラーサイトのリポジトリは最新版なので、インストール時に使用したISOイメージをローカルリポジトリとして使用します。
セキュリティ脆弱性などのバグが発見された場合は、関連パッケージを更新します。

【ISPの対応】

現時点(2021年1月25日)ではGoogleクラウド、アマゾン AWSなどではまだStream 8のVMイメージは用意されていません。
https://cloud.google.com/compute/docs/images?hl=ja#os-compute-support
https://docs.aws.amazon.com/ja_jp/vm-import/latest/userguide/vmie_prereq...
したがって、ユーザがカスタムイメージを用意するか、CentOS 8のVMイメージをインストールした後にStream 8に移行することになります。

日本の最大手のさくらインターネットではVMイメージとしてCentOS Stream 8 の「20201203」が用意されています。(CentOS 8の最新版8.3の後、最初にリリースされたStream 8 を選択したのではないかと推測します。妥当な対応ではないかと思います。)
https://cloud-news.sakura.ad.jp/2020/12/14/publiciso-update-54/

【外部リポジトリの状況】

EPELについてのcentos.orgのFAQの回答では、「The CentOS Project cannot and does not speak for Fedora: We encourage you to engage with the EPEL community instead. 」となっています。
https://centos.org/distro-faq/
EPELELRepoなどの外部リポジトリについては、各外部リポジトリの対応次第、ということだと思います。

なお、Stream 8の「extras」リポジトリには EPELとELRepoのリポジトリファイルのパッケージが掲載されています。
http://ftp.riken.jp/Linux/centos/8-stream/extras/x86_64/os/Packages/

【SIGの状況】

SIGs(CentOS Special Interest Groups)についてのcentos.orgのFAQの回答では、
「SIGs can start using CentOS Stream today. Each SIG should determine when they would like to begin the migration. The opportunity here is for the SIG communities to join the collaboration and contribute into improving processes and focusing resources leading up to the final migration in November 2021. 」
となっています。
https://centos.org/distro-faq/
SIGもCentOS Streamに対応することになると思われます。

なお、Stream 8の「extras」リポジトリにはCentOS ConfigManagement SIGで扱っているAnsibleのリポジトリファイルのパッケージが掲載されています。
http://ftp.riken.jp/Linux/centos/8-stream/extras/x86_64/os/Packages/

【Stream 8以外の選択肢】

Stream 8以外の選択肢としては、以下のディストリビューションがあるようです。
(私はStream 8を使う予定なので、以下についてはほとんど調べていません。)
Rocky Linux
AlmaLinux
Springdale Linux

⇒【次回に続く】