第6章 RHEL 9 の新機能
本セクションでは、Red Hat Enterprise Linux 8 および 9 における RPM パッケージ化の主な変更点を説明します。
6.1. 動的ビルドの依存関係
Red Hat Enterprise Linux 9 では、動的ビルド依存関係の生成を可能にする %generate_buildrequires
セクションが導入されています。
追加のビルド依存関係は、RPM のビルド時に、新しく利用可能になった %generate_buildrequires
スクリプトを使用してプログラムで生成できるようになりました。これは、特殊なユーティリティーが、Rust、Golang、Node.js、Ruby、Python、Haskell などのランタイム依存関係またはビルド時依存関係を判断するために、一般的に使用される言語で記述されたソフトウェアをパッケージ化する場合に役立ちます。
%generate_buildrequires
スクリプトを使用して、ビルド時に SPEC ファイルに追加される BuildRequires
ディレクティブを動的に判別できます。存在する場合、%generate_buildrequires
は %prep
セクションの後に実行され、解凍およびパッチされたソースファイルにアクセスできます。スクリプトは、通常の BuildRequires
ディレクティブと同じ構文を使用して、見つかったビルドの依存関係を標準出力に出力する必要があります。
次に、rpmbuild
ユーティリティーは、ビルドを続行する前に、依存関係が満たされているかどうかを確認します。
一部の依存関係が欠落している場合は、.buildreqs.nosrc.rpm
接尾辞が付いたパッケージが作成されます。このパッケージには、見つかった BuildRequires
が含まれ、ソースファイルは含まれていません。このパッケージを使用して、ビルドを再開する前に、dnf builddep
コマンドで不足しているビルドの依存関係をインストールできます。
詳細は、rpmbuild(8)
の man ページの DYNAMIC BUILD DEPENDENCIES
セクションを参照してください。
関連情報
-
rpmbuild(8)
man ページ -
yum-builddep(1)
の man ページ