6.5. RPM のビルド
rpmbuild ユーティリティーを使用して、サンプルプログラムである bello、pello、cello の RPM パッケージをビルドします。
rpmbuild コマンドでは、ユースケースや期待する結果によって組み合わせる引数が異なります。主な使用例は次のとおりです。
- ソース RPM をビルドします。
バイナリー RPM をビルドします。
- ソース RPM からバイナリー RPM を再ビルドします。
-
specファイルからバイナリー RPM をビルドします。
rpmbuild コマンドを使用する場合、特定のディレクトリー構造とファイル構造を使用する必要があります。これは rpmdev-setuptree ユーティリティーによって設定された構造と同じです。
6.5.1. ソース RPM のビルド リンクのコピーリンクがクリップボードにコピーされました!
rpmbuild ユーティリティーを使用して、bello、pello、cello サンプルプログラムのソースコードを Source RPM(SRPM) パッケージに格納します。
SRPM をビルドすることで、以下の利点があります。
-
環境にデプロイされた特定の
Name-Version-Release(NVR) を持つ RPM ファイルの正確なソースを保持できます。これには、正確なspecファイル、ソースコード、および関連するすべてのパッチが含まれます。これは追跡とデバッグに役立ちます。 - 異なるハードウェアプラットフォームまたはアーキテクチャー上でバイナリー RPM をビルドできます。
前提条件
システムに
rpmbuildユーティリティーがインストールされている。# dnf install rpm-build次の
Hello World!実装が~/rpmbuild/SOURCES/ディレクトリーに配置されている。-
パッケージ化するプログラムの
specファイルが存在する。
手順
作成した
specファイルが含まれている~/rpmbuild/SPECS/ディレクトリーに移動します。$ cd ~/rpmbuild/SPECS/rpmbuildコマンドを入力し、specファイルを指定して、ソース RPM をビルドします。$ rpmbuild -bs <specfile>-bsオプションは ビルドソース を表します。たとえば、
bello、pello、celloプログラムのソース RPM をビルドするには、以下の手順を実行します。belloプログラムのソース RPM をビルドします。$ rpmbuild -bs bello.specWrote: /home/admiller/rpmbuild/SRPMS/bello-0.1-1.el8.src.rpmpelloプログラムのソース RPM パッケージをビルドします。$ rpmbuild -bs pello.specWrote: /home/admiller/rpmbuild/SRPMS/pello-0.1.2-1.el8.src.rpmcelloプログラムのソース RPM をビルドします。$ rpmbuild -bs cello.specWrote: /home/admiller/rpmbuild/SRPMS/cello-1.0-1.el8.src.rpm
検証
-
rpmbuild/SRPMSディレクトリーに、生成されたソース RPM が含まれていることを確認します。ディレクトリーは、rpmbuildで必要な構造の一部です。