コンテンツにスキップ

RHELのSRPMが非公開になったことによるAlmaLinuxの対応

Red Hatは、ダウンストリームが Red Hat Enterprise Linux (RHEL) の1:1バイナリコピーであり続けるための手段を今後提供しないことを発表しました。(具体的には、git.centos.orgでSRPMの一般公開がされなくなり、Red Hatカスタマーサポートでの限定公開になりました)

AlmaLinux OS Foundation理事会はRHELと1:1を実現するという目標を中止することを決定、代わりにApplication Binary Interface (ABI)との互換性を目指すことになったようです。

Application Binary Interface (ABI)とは

ABIは、プログラムのコンパイルされたバイナリ表現と対話する一連の実行時規則です。 ABIは実行時に適用され、アプリケーションとオペレーティング環境の間の低レベルのインターフェイスを記述しています。

  • データ型、サイズ、およびアライメント
  • 集約型のレイアウト、C++ 実行時型情報、仮想テーブル
  • 呼び出し標準(関数の引数の受け渡し方法と戻り値の取得方法を定義)
  • オブジェクトファイルとプログラムライブラリのバイナリ形式
  • (非同期) アンワインド情報の存在と形式
  • 関数および/またはデータシンボルの名前とそのバージョン、およびシンボルサイズ(データシンボルの場合)
  • バイトコードまたは任意の中間表現と仮想マシンへのパブリックインターフェイス

コンパイラ、リンカー、ランタイムライブラリなどのツール、およびオペレーティングシステム自体がABIと連携して動作する必要があります。 コンパイラは、ABIで列挙されたすべての仕様に従うコードを生成する場合、ABIに準拠しています。ライブラリがABIに従って実装されている場合、ライブラリはABIに準拠しています。アプリケーションは、ABIに準拠するツールを使用して構築され、ABIで指定された動作を変更するソースコード、またはABIをバイパスするソースコードが含まれていない場合、ABIに準拠しているということになります。

今後懸念されること

Red Hat互換アプリケーションは今後も AlmaLinux上で実行でき、タイムリーなセキュリティアップデートが引き続き提供されることを謳っています。ただ、RHELと100%互換が実現されないとなると、AlmaLinuxのクセが現れる(Red Hatにはないバグに遭遇する、設定方法の違いが生まれるなど)可能性が想像されます。アプリケーションパッケージは、各Linuxディストリビューションのパッケージ管理者によって構築および保守されていますが、同じアプリケーションでも構成に違いがある場合(例えば設定ファイルの名前、ディレクトリ配置、デフォルト値など)や、変更されたソースコード(たとえば独自のパッチが当てられているなど)から構築されている場合があります。まだアップストリームで受け入れられていない、またはダウンストリームに出荷されていないバグのパッチを受け入れる場合もあります。まだ方針転換の発表から日が経っていないため、しばらくは状況の注視が必要でしょう。