5.5. RPM のビルド
rpmbuild コマンドを使用して RPM パッケージをビルドできます。このコマンドを使用する場合、rpmdev-setuptree ユーティリティーによって設定された構造と同じ特定のディレクトリーおよびファイル構造が求められます。
rpmbuild コマンドでは、ユースケースや期待する結果によって組み合わせる引数が異なります。主な使用例は次のとおりです。
- ソース RPM をビルドします。
バイナリー RPM をビルドします。
- ソース RPM からバイナリー RPM を再ビルドします。
-
specファイルからバイナリー RPM をビルドします。
5.5.1. ソース RPM のビルド リンクのコピーリンクがクリップボードにコピーされました!
ソース RPM (SRPM) をビルドすると、次の利点があります。
-
環境にデプロイされた特定の
Name-Version-Releaseを持つ 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 をビルドするには、次のように入力します。+
$ **rpmbuild -bs bello.spec**
Wrote: /home/admiller/rpmbuild/SRPMS/bello-0.1-1.el9.src.rpm
$ **rpmbuild -bs python-pello.spec**
Wrote: /home/admiller/rpmbuild/SRPMS/python-pello-1.0.2-1.el9.src.rpm
$ **rpmbuild -bs cello.spec**
Wrote: /home/admiller/rpmbuild/SRPMS/cello-1.0-1.el9.src.rpm
検証
-
rpmbuild/SRPMSディレクトリーに、生成されたソース RPM が含まれていることを確認します。ディレクトリーは、rpmbuildで必要な構造の一部です。