5.8. Perl スクリプトで RPM パッケージを処理する方法

RHEL 8 以降、Perl プログラミング言語はデフォルトの buildroot に含まれていません。そのため、Perl スクリプトを含む RPM パッケージは、RPM SPEC ファイルの BuildRequires: ディレクティブを使用して、Perl の依存関係を明示的に指定する必要があります。

5.8.2. 特定の Perl モジュールの使用

特定の Perl モジュールがビルド時に必要な場合は、以下の手順に従います。

手順

  • RPM SPEC ファイルに以下の構文を適用します。

    BuildRequires: perl(MODULE)
    注記

    この構文は Perl コアモジュールにも適用します。これは、perl パッケージを同時に移動し、タイムアウトするためです。

5.8.3. 特定の Perl バージョンへのパッケージの制限

パッケージを特定の Perl バージョンに限定するには、以下の手順に従います。

手順

  • RPM SPEC ファイルの希望のバージョン制約で perl (:VERSION) 依存関係を使用します。

    たとえば、パッケージを Perl バージョン 5.30 以上に制限するには、以下を使用します。

    BuildRequires: perl(:VERSION) >= 5.30
警告

perl パッケージのバージョンには、エポック番号が含まれるため、バージョンに対する比較は行わないでください。

5.8.4. パッケージが正しい Perl インタープリターを使用することを確認

Red Hat は、完全に互換性がない複数の Perl インタープリターを提供しています。そのため、Perl モジュールを提供するすべてのパッケージは、ビルド時に使用されたものと同じ Perl インタープリターをランタイムで使用する必要があります。

これを確認するには、以下の手順に従います。

手順

  • Perl モジュールを提供するすべてのパッケージについては、バージョン化された MODULE_compat Requires を RPM SPEC ファイルに含めます。

    Requires:  perl(:MODULE_COMPAT_%(eval `perl -V:version`; echo $version))