レッドハットの森若です。
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です。
この表に記載されたコンポーネントはライフサイクルが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と同じ期間維持されることがわかります。
例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同梱のものを利用するのではなく別途長期間のサポートを提供している企業を探すか、運用計画を変更して途中でのバージョン更新を盛り込むなどの対応が必要なことがわかります。