Red Hat Enterprise Linux 8 で 10年維持されるパッケージはどれ?

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

Red Hat Enterprise Linux 8.2もでて、「そろそろRHEL8を使ってみようかな」という人も増えてきたのではないかと思います。 RHEL 8 ではアプリケーションストリームが導入されていますから、一部パッケージは10年の標準的なライフサイクルではなく、2年から5年程度の短い期間だけ維持されます。

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

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

Compatibility Level

Red Hat Enterprise Linux では、RHEL5の頃から Application Compatibility Guideを公開し、各パッケージについての互換性維持を4段階のレベルに分けています。

RHEL 7までは、以下のようになっていました。

  • Compatibility Level (以下CL) 1は3つのメジャーバージョンに渡ってAPI/ABIの互換性を維持
  • CL 2では1つのメジャーバージョン内でAPI/ABIの互換性を維持
  • CL 3は将来のため未使用
  • CL 4は互換性を維持しません。

RHEL 8では、CL 3が新しく登場し、以下のように変わります。

  • CL 1は3つのメジャーバージョンに渡ってAPI/ABIの互換性を維持
  • CL 2では1つのメジャーバージョン内でAPI/ABIの互換性を維持
  • CL 3は各コンポーネントについてあらかじめ定義された期間維持し、期間が終了する前に新しいバージョンを継続的に提供
  • CL 4は互換性を維持しません

CLが記載されていないものはCL 2です。

CL4であってもパッケージの提供はRHELのメジャーバージョン中維持されますが、API/ABIの互換性が失われる更新が行われる可能性があります。

厳密な定義や、CL 1, CL 2, CL 4のパッケージ一覧はガイドに記載されています。 access.redhat.com

Application Streams Lifecycle

RHEL 8で新しく導入された CL 3に該当するのが Application Streams Lifecycleです。

access.redhat.com

この表に記載されたコンポーネントはライフサイクルがRHEL 8の10年(2019年5月から2029年5月まで)とは独立したものになります。

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

注意が必要な点として、Application Streams Lifecycleが定義されたパッケージはEUSおよびELSのいずれの対象にもなりません。

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

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

つまりhttps://access.redhat.com/articles/rhel8-abi-compatibility#Appendix にあるCL 4の表と、 https://access.redhat.com/support/policy/updates/rhel8-app-streams-life-cycleにあるApplication Streams Lifecycleの表を参照して、これらに掲載されていないことを確認すると、RHEL 8と同じライフサイクルの間、API/ABIが維持される形でメンテナンスされることがわかります。

例1: Python

RHEL 8.2には Python 2.7, 3.6, 3.8が含まれています。 これらについて以下2つの表を確認すると、以下のことが言えます。

  • Python 2.7 → CL 3。2024年6月までサポート
  • Python 3.6 → どこにも記載がないのでCL 2。RHEL 8と同一期間サポート
  • Python 3.8 → CL 3。2023年5月までサポート

Pythonについては 3.6がRHEL 8と同じ期間維持されることがわかります。

f:id:mrwk:20200525172923p:plain
Compatibility Level 4のパッケージ群

f:id:mrwk:20200525170843p:plain
Application Streams Lifecycleの一覧

例2: PHP

RHEL 8.2には PHP 7.2, 7.3が含まれています。同様に確認すると、以下のことがわかります。

  • PHP 7.2 → CL 3。2021年5月までサポート
  • PHP 7.3 → CL 3。2021年11月までサポート

前述のとおりEUSもELSもApplication Streams Lifecycleが設定されているものは対象になりません。そのためPHPの処理系について 「利用開始してからのバージョン変更が不可能」 でかつ 「2021年12月以降もサポートが必要」 な場合には、RHEL同梱のものを利用するのではなく別途長期間のサポートを提供している企業を探すか、運用計画を変更して途中でのバージョン更新を盛り込むなどの対応が必要なことがわかります。

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