3.16. Red Hat Enterprise Linux 6 と 7 の相違点

Red Hat Enterprise Linux 7 の RPM Package Manager には、Red Hat Enterprise Linux 6 に含まれる旧バージョンの RPM Package Manager では提供されない多くの機能変更が含まれています。
本セクションでは、両方のシステムに Software Collection パッケージを構築する際に影響を受ける可能性のある変更の詳細を説明します。
ライブラリーサポートの相違点は、「Red Hat Enterprise Linux 7 での Software Collection Library のサポート」を参照してください。SELinux サポートの相違点は、「Red Hat Enterprise Linux 7 での SELinux サポート」に記載されています。

3.16.1. %license マクロ

%license マクロを使用すると、パッケージにインストールするライセンスファイルを指定できます。このマクロは、Red Hat Enterprise Linux 7 の RPM Package Manager でのみサポートされます。Red Hat Enterprise Linux 6 および 7 の両方で Software Collection パッケージを構築する場合は、以下のように Red Hat Enterprise Linux 6 の %license マクロを宣言します。
%{!?_licensedir:%global license %%doc}

3.16.2. ランタイムのサブパッケージ依存関係がない

Red Hat Enterprise Linux 7 では、scl ツールは、Software Collection runtime サブパッケージに必要な Requires を自動的に生成します。これは、Red Hat Enterprise Linux 6 では機能しません。Software Collection をそのシステム用に構築する場合は、各 Software Collection パッケージの runtime サブパッケージの依存関係を明示的に指定する必要があります。
Requires: %{?scl_prefix}runtime

3.16.3. scl-package() の Provides

Software Collection パッケージを構築すると、多くの Provide: scl-package() タグが生成されます。この目的は、構築されたパッケージを特定の Software Collection に属するものとして内部的に特定することです。タグの詳細を以下の表に示します。

表3.2 Red Hat Enterprise Linux 7 の Provides

Software Collection パッケージ
Provides
${software_collection_1}
scl-package(software_collection_1)
${software_collection_1}-build
scl-package(software_collection_1)
${software_collection_1}-runtime
scl-package(software_collection_1)
Red Hat Enterprise Linux 6 には旧バージョンの RPM Package Manager が同梱されているため、Red Hat Enterprise Linux 6 で同じパッケージを構築すると、以下の表で説明する Provide: scl-package() タグは 1 つだけです。これは予想される動作であり、違いは scl ツールによって内部的に処理されます。

表3.3 Red Hat Enterprise Linux 6 の Provide

Software Collection パッケージ
Provides
${software_collection_1}
scl-package(software_collection_1)
このような内部生成された依存関係を使用して、特定の Software Collection に属するパッケージを一覧表示しないでください。Software Collection パッケージを適切に一覧表示する方法は「インストールされた Software Collections の一覧表示」を参照してください。