Red Hat Enterprise Linux 9 で 10年サポートされるパッケージはどれ?

レッドハットの森若です。

この記事は、RHEL 8むけの以下記事のRHEL9版です。

rheb.hatenablog.com

RHEL 9ではどのパッケージがいつまでサポートされるのでしょうか? この記事ではその調べ方をご紹介します。

(※注意: サポート期間等は変更される場合があります。スクリーンショット等は執筆時点のものです。)

その前にまず2点ほど前提知識をご紹介します。

Compatibility Level

Red Hat Enterprise Linux では、RHEL5の頃から Application Compatibility Guideを公開して、アプリケーションの互換性を維持するために 考慮する必要があるポイントをまとめています。この中で各パッケージについての互換性維持を4段階のレベル(Compatibility Level, 以下 CL)に分けています。

RHEL 9では、RHEL 8と同じく以下のようになっています。

  • CL 1は3つのメジャーバージョンに渡ってAPI/ABIの互換性を維持
  • CL 2では1つのメジャーバージョン内でAPI/ABIの互換性を維持
  • CL 3は各コンポーネントについてApplication Streams Lifecycleであらかじめ定義された期間維持。期間の終了前に新しいバージョンを提供 (ただしdeprecatedとなった場合は新しいバージョンを提供しません)
  • CL 4は互換性を維持しません

厳密な定義については以下に記載されています。

access.redhat.com

RHEL 9では、公式ドキュメント「Package Manifest」内に、パッケージ毎にCompatibility Levelが記載されるようになりました。

access.redhat.com

Application Streams Lifecycle

CL 3に該当するのが Application Streams Lifecycleです。

access.redhat.com

このページ内の表「RHEL 9 Application Streams Release Life Cycle」に記載されたコンポーネントはCL3で、ライフサイクルがRHEL 9の10年(2022年5月から2032年5月まで)とは独立したものになります。

Application Streamsはフルサポート中は新しいバージョンに対応したストリームが出てきますが、2027年5月にメンテナンスフェーズに入る前にいずれかのストリームが指定され、メンテナンスフェーズ中はそのストリームだけがメンテナンスされます。

注意が必要な点として、Application Streams Lifecycleが定義されたパッケージはRHELのEUSチャネルでもメンテナンス対象ですが、あらかじめ決められたライフサイクル終了するとEUS期間中であってもメンテナンスが終了し、EUS期間にあわせてメンテナンス期間が延長されるようなことはありません。

Full Life Application Streams

RHEL 9とタイミングをあわせて登場したのが「Full Life Application Streams」です。ここに掲載されているソフトウェアは通常のRHELのライフサイクル終了まで維持されます。 ただし同じソフトウェアの別バージョンがApplication Streamsとして登場することがありえます。

従来は「Application Streams Life Cycle」には 10年維持されないバージョンだけ を提示していたため、たとえばRHEL 8でPython 2.7や3.8が短期間しか維持されないことはわかっても、Python 3.6が10年維持されることを確認するには手間がかかっていました。 その手間を減らすための工夫です。

Rolling Application Streams

これらのコンポーネントはマイナーリリースのタイミングで新バージョンが提供され、最新のバージョンだけがサポート対象となります。RHEL 7でのExtrasリポジトリに相当します。

ただし container-tools については、EUSの間パッケージのメンテナンスが行われます。RHEL 8とはポリシーが異なりますのでご注意ください。 access.redhat.com

10年維持されるパッケージはどれ?

やっと標題の質問に戻ります。「10年維持されるパッケージはどれ?」という質問に答えるには、CL 1またはCL 2であること もしくは CL 3でFull Life Application Streamsであることを確認する必要があります。

Package Manifestは長いドキュメントですので以下の手順で確認するのがよいでしょう。

  1. Red Hat Enterprise Linux Application Streams Life Cycle - Red Hat Customer Portal 内で検索する。

    • 「RHEL 9 Full Life Application Streams Release Life Cycle」に記載がある(→10年)
    • 「RHEL 9 Application Streams Release Life Cycle」に記載がある(→短期)
    • 記載がない(→2へ)
  2. Package manifest Red Hat Enterprise Linux 9 | Red Hat Customer Portal 内で検索する。CLを確認して1か2である(→10年)

例1: OpenJDK

RHEL 9に含まれているOpenJDKのライフサイクルを確認します。

RHEL 9 Application Streams Release Life Cycle内に含まれており、それぞれ2〜5年ほどのサポート期間が定義されていることがわかります。

例2: PHP

RHEL 9に含まれているPHPのライフサイクルを確認します。

検索すると、Application Streams Release Liife Cycleには含まれず、Full Life Application Streams Life Cycleに php 8.0 が含まれていることがわかります。 PHP 8.0はRHEL 9の10年間のライフサイクルの間サポートされることがわかります。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。