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
# dnf install rpm-build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
Hello World!
実装が~/rpmbuild/SOURCES/
ディレクトリーに配置されている。-
パッケージ化するプログラムの
spec
ファイルが存在する。
手順
作成した
spec
ファイルが含まれている~/rpmbuild/SPECS/
ディレクトリーに移動します。cd ~/rpmbuild/SPECS/
$ cd ~/rpmbuild/SPECS/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow rpmbuild
コマンドを入力し、spec
ファイルを指定して、ソース RPM をビルドします。rpmbuild -bs <specfile>
$ rpmbuild -bs <specfile>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -bs
オプションは ソースのビルド を表します。たとえば、
bello
、pello
、cello
プログラムのソース RPM をビルドするには、次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
-
rpmbuild/SRPMS
ディレクトリーに、生成されたソース RPM が含まれていることを確認します。ディレクトリーは、rpmbuild
で必要な構造の一部です。
5.5.2. ソース RPM からのバイナリー RPM の再ビルド リンクのコピーリンクがクリップボードにコピーされました!
ソース RPM (SRPM) からバイナリー RPM を再ビルドするには、--rebuild
オプションを指定した rpmbuild
コマンドを使用します。
バイナリー RPM の作成時に生成される出力は詳細なもので、デバッグに役立ちます。出力は例によって異なり、それぞれの spec
ファイルに対応したものになります。
生成されるバイナリー RPM は、~/rpmbuild/RPMS/YOURARCH
ディレクトリー (YOURARCH
はアーキテクチャー) に配置されます。パッケージがアーキテクチャー固有でない場合は ~/rpmbuild/RPMS/noarch/
ディレクトリーに配置されます。
前提条件
システムに
rpmbuild
ユーティリティーがインストールされている。dnf install rpm-build
# dnf install rpm-build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
ソース RPM が含まれている
~/rpmbuild/SRPMS/
ディレクトリーに移動します。cd ~/rpmbuild/SRPMS/
$ cd ~/rpmbuild/SRPMS/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ソース RPM からバイナリー RPM を再ビルドします。
rpmbuild --rebuild <srpm>
$ rpmbuild --rebuild <srpm>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
bello
、pello
、cello
を SRPM から再ビルドするには、次のように入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
rpmbuild --rebuild
を呼び出すと、次のプロセスが実行されます。
-
SRPM の内容 (
spec
ファイルとソースコード) を~/rpmbuild/
ディレクトリーにインストールします。 - インストールされたコンテンツを使用して RPM をビルドします。
-
spec
ファイルとソースコードを削除します。
次のいずれかの方法でビルドすると、spec
ファイルとソースコードを保持できます。
-
RPM をビルドするときに、
--rebuild
オプションではなく--recompile
オプションを指定したrpmbuild
コマンドを使用します。 bello
、python-pello
、cello
の SRPM をインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5.3. spec ファイルからのバイナリー RPM のビルド リンクのコピーリンクがクリップボードにコピーされました!
spec
ファイルからバイナリー RPM をビルドするには、-bb
オプションを指定した rpmbuild
コマンドを使用します。-bb
オプションは バイナリーのビルド を表します。
前提条件
システムに
rpmbuild
ユーティリティーがインストールされている。dnf install rpm-build
# dnf install rpm-build
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順
spec
ファイルが含まれている~/rpmbuild/SPECS/
ディレクトリーに移動します。cd ~/rpmbuild/SPECS/
$ cd ~/rpmbuild/SPECS/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow spec
からバイナリー RPM をビルドします。rpmbuild -bb <spec_file>
$ rpmbuild -bb <spec_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、
spec
ファイルからbello
、pello
、cello
バイナリー RPM をビルドするには、次のように入力します。rpmbuild -bb bello.spec rpmbuild -bb python-pello.spec rpmbuild -bb cello.spec
$ rpmbuild -bb bello.spec $ rpmbuild -bb python-pello.spec $ rpmbuild -bb cello.spec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow