Rocky Linux の現状把握(2022年12月版)

Rocky Linux の現状把握(2022年12月版)

Rocky Linux リリース状況

本投稿は、さくらインターネットアドベントカレンダー2022の4日目の投稿です。5日目は@naominix@github さんの記事です、楽しみですね。

さて、私からは先日オープンソースカンファレンス2022/Onlineで発表した「忙しい人のための Rocky Linux 入門」を、現状にあわせてご紹介します。

Rocky Linux とは?

Rocky Linux(ロッキーリナックス)は CentOS Linux の後継を目指す Linux ディストリビューションの1つです。公式サイト https://rockylinux.org の説明では「Rocky Linux is an open-source enterprise operating system designated to be 100% bug-for-bug compatible with Red Hat Enterprise Linux」(RHELとバグまで含めて100%互換性を意図するオープンソースのエンタープライズオペレーティングシステム)とあります。

私が Rocky Linux を知ったきっかけは 2020 年 12 月 8 日の「RHEL 8 の再構築としての CentOS 8 」開発終了アナウンス1CentOS Project shifts focus to CentOS Stream https://blog.centos.org/2020/12/future-is-centos-stream/です。これは CentOS Stream に今後注力するという内容でしたが、事実上 RHEL と1対1で対応してきた CentOS 8 系の終了であり、(当時)以降に出るであろう CentOS 9 以降のシリーズが提供されなくなるのを意味しました(実際、その後に提供された RHEL 9.0 は CentOS Stream 9 をベースとする位置づけであり、CentOS 9.0 は存在していません)。

そして、単に従来型 CentOS 開発が終わるだけでなく、CentOS 8 の EoL が 2029 年 5 月 31 日から 2021 年 12 月 31 日へと変更になったのです。CentOS 8.x 利用者は、ほぼ1年以内に CentOS Stream 8 など他のディストリビューションへの転換を迫られることになりました。

https://wiki.centos.org/About/Product のリリース情報

私の個人的な利用環境では CentOS Stream への移行でも問題なかったのですが、長年ディストリビューションの隆盛をウォッチしてきた身としては、行く末が気になっていました。当初気にかけていたのは AlmaLinux です。CloudLinux 社がオープンソースの「魂」を意味する「alma」を掲げたディストリビューション構想を発表し、 CentOS の後継者に名乗りを挙げました 2Announcing Open-sourced & Community-Driven RHEL Fork by CloudLinux https://blog.cloudlinux.com/announcing-open-sourced-community-driven-rhel-fork-by-cloudlinux

その後、私が AlmaLinux と似たようなプロジェクトとして Rocky Linux が動いていると明確に認識したのは、2021 年 4 月 30 日の Rocky Linux 8.3 RC1 版のリリースでした。しかし、オリジナルの CentOS 創設者であるカーツァー氏(Gregory M. Kurtzer)は、CentOS の開発終了アナウンス記事に対し、12 月 8 日の当日のうちに「他の RHEL の再構築を考えている」とコメントを残されていた3カーツァー氏のコメント https://blog.centos.org/2020/12/future-is-centos-stream/#comment-183642のです。

https://blog.centos.org/2020/12/future-is-centos-stream/#comment-183642

その後、Rocky Linux のサイトが公開され、RC (リリース候補)版を経て、2021 年 6 月 21 日に Rocky Linux 8.4 が GA (一般提供開始)となります。 Rocky Linux の開発は Rocky Enterprise Software Foundation(RESF)という非営利法人を土台とした、個人と企業によるオープンなコミュニティ主導の開発体制となり、RESF を支援するスポンサーやパートナー企業によるサポートも行われています。2022年12月の現時点では、Rocky Linux 8.7 および 9.1 がリリースされています。

CentOS Stream は RHEL に先行する存在

Rocky Linux の立ち位置を知るには、CentOS とCentOS Stream が別々のディストリビューションであるという、その関係性の理解が大切です。

CentOS Stream は、CentOS 8 の EoL によって登場したかのようにも見えますが、実は 2019 年 9 月 24 日から存在していました。 CentOS 8.0 (1905) がリリースされると同時に、RHEL 開発用ディストリビューションとして CentOS Stream 1905(現在 CentOS Stream 8 と呼ばれる系統)が同時にリリースされていたのです(参考:[CentOS-announce] Release for CentOS Linux 8 and CentOS Streams)。

CentOS 8.x は従来の CentOS シリーズと同様、Red Hat 社が提供するソースコードを元に構築されたものです。そのため、RHEL 8.x と RHEL 8.x の各バージョンごとにポイントリリース(point-release)があり、各バージョン番号が一対一で対応していました。

一方の CentOS Stream はローリングリリース(rolling-release)のため、常にパッケージの更新が行われ日々リリースされている状況となりました。CentOS と異なり明確なポイントリリースがありません。

そして重要なのは、関係するディストリビューション間の関係性が変わった点です。従来は、Fedora がアップストリーム(上流)であり、そこから RHEL → CentOS という流れがありました。CentOS Stream が登場したことにより、Fedora がアップストリームに変わりませんが、CentOS Stream がミッドストリーム(中流)→ RHEL がダウンストリーム(下流)であると明確に位置づけられた4https://docs.fedoraproject.org/en-US/quick-docs/fedora-and-red-hat-enterprise-linux/のです。

https://lists.centos.org/pipermail/centos-announce/2019-September/023449.html を元に図式化

このように、CentOS 8 が Stream に集中すると宣言する以前から、CentOS Stream 8 の登場によって、CentOS 7 までのリリース形態と、 RHEL の関係性は既に変わっていたのでした。

https://access.redhat.com/support/policy/updates/errata を参考に図式化

このようにバージョンごとの対応付けを見ると、CentOS 8.x と CentOS Stream 8 が双子のような存在に見えますが、位置づけ・役割は明確に異なっていたのです。

そして、その後に提供されている RHEL 9 も、同様に CentOS Stream 9 をミッドストリームとして利用するスタイルを踏襲しています。

https://blog.centos.org/2021/12/introducing-centos-stream-9/ を参考に図式化

このように、CentOS シリーズとしては CentOS Stream が残り続けることとなりました。CentOS 8 から CentOS Steram へ変更するにはパッケージ更新をする方法が提供されていますので、改めてディストリビューションをインストールし直す必要はありません。

しかしながら、ポイントリリースという概念がなくなるため「RHEL の各バージョンに対応する CentOS」という概念が消滅することとなりました。なお、 CentOS 8 は 2021 年 12 月 31 日で EoL となりましたが、CentOS 7 は 2024 年 6 月 30 日までのサポート(更新は 2020 年で終了し、現在メンテナンスアップデートのみ)が続いています。

Rocky Linux の始動

2020 年 12 月 8 日の発表直後から、CentOS 共同創業者のカーツァー氏はリポジトリを作成し、 GItHub に初めてのコミットをします。その README.md には「# centosng」という見出しが1行あるだけ。

https://github.com/rocky-linux/rocky/commit/1958b6bba2ab2b63b286599959769504ff7229cf

私が初めて見たとき、「centos」が「ng」=「no good」(良くないね)的な深い意図を感じてしまいましたが、もしかしたら「next generation」(次世代)なのかもしれませんねと、OSC でセッション参加者の方に指摘され、なるほどと感じました。いずれにしろ、CentOS を変える意思を感じる見出しです。

そして、翌 9 日には「Rocky Linux」の文字が登場します。そして、かつての CentOS がそうだったように、コミュニティによるエンタープライズ OS として、バグをも含む RHEL 100% 互換性を持つディストリビューションを目指すプロジェクトが始動します。

https://github.com/rocky-linux/rocky/commit/8f7c3ae369e20d9557cb177b1171c281f6f6cb68

「Rocky」の由来・意味は?

ところで、Rocky の名前とは、CentOS 共同創設者の Jason Dale Rocky McGaugh (ジェイソン・デイル・ロッキー・マクガフ)氏の名前に由来すると公式サイトに説明があります。ロッキー氏はカーツァー氏と一緒に CentOS を立ち上げていたのです5https://arstechnica.com/gadgets/2021/01/rocky-linux-gets-a-parent-company-with-4m-series-a-funding/。ロッキー氏は、カーツァー氏にとっては同僚でありメンターでしたが、2004年12月、CentOS の完成を前に30歳で亡くなられていたとのことです。かつての師の名前をディストリビューションに刻むことで、また CentOS のようなコミュニティ主導のディストリビューションを作るのだという、カーツァー氏の並々ならぬ想いが馳せられます。

Rocky Linux の独立性を担保するための RESF 設立

カーツァー氏はディストリビューション開発準備を進めるにあたり、GitHub 上で開発およびユーザーのコミュニティとしての「Rocky Linux Project」 https://github.com/rocky-linux/ を始動します。中心となるソースコードのライセンスは BSD 3-Clause License です。

これと並行してカーツァー氏は、2020年12月、 Rocky Enterprise Software Foundation (RESF) を設立します。米国デラウェア州で公益法人(PBC=Public Benefit Corporation)です。このあたりの説明は公式 FAQ にもありますように、真にコミュニティのエンタープライズOSを維持するためとあります。組織構造もしっかりしており、コミュニティに対する説明責任、透明性や、持続性を担保する事務局的な機能だけではありません。加えて、Rocky Linux という名前を保護するための法務面のほか、財務やスポンサー対応も RESF が担います。

これは、Linux カーネルと Linux Foundation の関係に近いと言えるのではないでしょうか。Linus Torvalds 氏らが Linux カーネルを開発する一方、Linux Foundation は資金援助や知的財産の保護や啓蒙などを担って6https://www.linuxfoundation.jp/about/いますが、Linux を支配しているわけではありません。

Rocky Linux Project はディストリビューションの開発プロジェクトであり、RESF は Linux Foundation のように資金や知財などを管理していると考えると、関係性をイメージしやすいでしょう。

このように、Rocky Linux の組織体制をカーツァー氏は構築していきますが、第三者からすると本当に信じて良いだろうかという疑念は当然生まれるでしょう。様々なインタビュー記事や Reddit の投稿に対する返信でも、繰り返し Rocky Linux の独立性を担保するためとカーツァー氏は主張しています。

Why did Greg Kurtzer leave the CentOS project in the first place? : CentOS

Rocky Linux 商用サポートを担う CIQ 社

カーツァー氏は RESF を準備する一方、CIQ 社 ( https://ciq.co ) を設立、 2021 年 1 月 28 日に資金調達をしています。

CIQ はRocky Linux の商用サポートを担い、Rocky Linux 専任開発者を雇うためです。CIQ 社は Rocky Linux や RESF の親会社でもなければ、支配している状況でもありません。あくまでも RESF のパートナーであり、資金援助している企業の1つです。

このように、あくまでも Rocky Linux はコミュニティによるものですが、プロジェクトの継続性という意味で、パートナーやスポンサーを拡大しつつ、カーツァー氏が自らも Rocky Linux を支援・サポートできる体制が整えられてきています。

Rocky Linux 8 の初動が遅かった理由

AlmaLinux が非常に早い初期リリースをしたのに比べると、Rocky Linux は動きが遅かったように見えます。動き出してから Rocky Linux 8.4 の GA まで半年を要しました。これは、取材記事7https://www.hpcwire.com/2021/06/21/centos-replacement-rocky-linux-is-now-in-ga-and-under-independent-control/によると、完全にゼロからのスタートだったからとあります。開発者や貢献者が安全に参加できるインフラを構築するために4ヶ月。OSの構築に2ヶ月、そして、RC 版を出しつつ検証しての1ヶ月。全く何も無いところから、人も環境も整えたのです。

Rocky Linux 9 には独自のビルドシステム Peridot を構築した

Rocky Linux の Reddit フォーラムには、一時期「do it right, don’t just do it fast」というキーワードがよく出てきていました。早くやるんじゃない、正しくやるんだと。

RHEL 9.0 が 2022 年 5 月 17 日にリリースされましたが、対応する Rocky Linux 9.0 の提供は 6 月 14 日と一ヶ月近くを要しました。これは Peridot と呼ばれるクラウドネイティブなディストリビューション構築およびリリース用のツールの開発に時間がかかったからです。

Rocky Linux 8 までは CentOS と同じ koji を採用していましたが、Rocky Linux 9 からは Peridot をベースとしたビルドシステム https://peridot.build.resf.org/ に移行しています。ドキュメントによりますと、Kubernetes + Istio の環境で、2,500 以上のパッケージを並列ビルド可能とあります。そのため、Peridot さえ動作がうまくいけば、従来よりも素早いリリースができるようになることを目指していました。

実際、RHEL 9.1 は 2022 年 11 月 15 日にリリースされ、Rocky Linux 9.1 は 11 月 26 日と、ほんの 11 日遅れでリリースできるようになってきています。

バージョンとサポート期間の考えが RHEL と Rocky Linux は少し異なる

Rocky Linux は従来の CentOS のようにポイントリリースですが、サポート期間(EoL)の考え方は RHEL とは異なるので、少し注意が必要です。RHEL はポイントリリースごとに、Extended Update Support や Update Service for SAP Solutions が提供されている場合があります。そのため、マイナーバージョンをサポートが続く限り利用できる体制があります。

一方、Rocky Linux は、基本的に新しいポイントリリースが提供されると、古いバージョンは直ちに EoL となります8ttps://forums.rockylinux.org/t/what-is-eol-of-rl8/3316/10。そのため、古いバージョンの Rocky Linux を使い続けられません。「dnf update」コマンドを実行するたけで、新しいポイントリリースがあれば、自動的にバージョンアップするからです。

もし、カーネルのバージョンなどを固定する必要があれば、パッケージの更新を除外するなど対策を打てますが、サポート外となる可能性もあります。この点は RHEL とは異なりますので、利用開始前に長期的な運用方針の検討や、パッケージ更新のルール作り、影響範囲の事前確認は欠かせなくなります。

このように、見かけ上の RHEL 9 と Rocky Linux 9 はバージョンが対応しますが、ポイントリリースごとにメンテナンスが続く RHEL と、継続的な更新が続く Rocky Linux では、考え方が少し違うのだと理解が必要です。

Rocky Linux の今後

以上が 2022 年 12 月現在の Rocky Linux を取り巻く現状です。前述の通り、Rocky Linux は開発体制がコミュニティ主導であり、かつ、 CentOS 協働創設者が立ち上げたディストリビューションという位置づけから、当初の CentOS の思想を受け継ぐ後継者の1つと言えるでしょう。

懸念点を敢えて挙げるのであれば、リリースの遅さとやサポート面や継続性でした。

当初は AlmaLinux に比較すると反応が遅かったため(むしろ逆で、AlmaLinux のリリースがとてつもなく早いと認識すべき)、かつての CentOS がそうだったように、Rocky Linux もリリース間隔が遅れる懸念はありました。ですが、現在の Rocky Linux は開発体制が整っています。さらに、独自開発のパッケージビルドシステム Peridot の稼働が功を奏した模様で、Rocky Linux 9.1 のリリースは、RHEL 9.1 に遅れること11日でのリリースとなりました。

また、オープンなコミュニティ主導の場合は、サポート体制や組織・資金面での懸念も出てきます。その点も、RESF という公益法人がプロジェクトの法務・財務・資金面を支援し、CIQ 社などがサポートを提供できる体制も整いつつあります。CIQ を通してクラウド事業者の支援も広がりつつあり、Rocky Linux を選べるようになったクラウドも増えました。

一方、独自のビルドシステム Peridot は Rocky Linux プロジェクトのみならず、誰もが自由にディストリビューションを構築できうる土台として開発されているとされています。そのため、 Peridot のソースコードは GitHub で公開されていますが、まだ使い方のドキュメントは提供されていないため、Rocky Linux をベースとして、誰でも自分用のディストリビューションが作れる環境には至っていないのが気になる点はあります。しかし、これまでの Rocky Linux の真摯な開発体制をみれば、いずれはドキュメントも整うものと期待しています。

このように Rocky Linux を取り巻く状況は動き続けています。引き続き、Rocky Linux の動きを追っていきたいと思います。

2 thoughts on “Rocky Linux の現状把握(2022年12月版)

  1. George

    こんにちは、私は外国人です、日本語が下手ですみません、なぜ日本ではAlmaLinuxが好まれているのか聞いてもいいですか?

    2020年、CloudLinuxの作者が新しいディストリビューションを作ろうとした意図はあまり明確ではありませんでした。そのため、RockyLinuxに行く人もいたようです。幸いにも彼は辞職し、コミュニケーションの方法も改善されたそうです。

    https://www.webhostingtalk.com/showthread.php?t=1831284&p=10279696#post10279696

    1. Zembutsu Masahito (@zembutsu) Post author

      Georgeさん、コメントありがとうございます。
      私の印象では AlmaLinux が Rocky Linux よりも早くリリースされたからです。1年で EoL を迎える CentOS 8 に対して、速やかに環境を移行したかった方に対して、AlmaLinux が動くものを出した影響は大きかったです。また「1つの会社組織がディストリビューションを支配するのではないのか?」という懸念に対し、彼らはオープンな姿勢で、動画配信やブログの記事掲載が多かったから(当初の Rocky Linux に比べれば)とも思います。
      技術的な面では、移行スクリプトが提供されていたこと。さらに、ミラーサイトの受付もオープンで GitHub 上で行なわれる点も、普及を後押ししたのではと考えます。2021年4月の時点で、日本国内のAlmaLinux公式ミラーサイトが9つありました。私自身も日本国内ミラーサイトの1つの提供に関わりました。

Zembutsu Masahito (@zembutsu) へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。