SPECファイルをもとにRPMパッケージを作成する

RPMパッケージを作成するには、次のコマンドを実行します。

$ rpmbuild -ba --sign hoge.spec

特に問題がなければ、バイナリパッケージとソースパッケージの両方が作成されます。

どちらか一方のみを作成する場合は、オプション-ba(build all)の代わりに -bb(build binary)あるいは-bs(build source)を使用します。

なお、オプション--signは、パッケージに署名することを意味します。第I.3章 - パッケージ署名の設定~/.poptの設定をした場合は、省略可能です。

署名オプションが有効になっていれば、次の様なプロンプトが表示されるのでGnuPG鍵のパスフレーズを入力して下さい。

パスフレーズの入力:
rpmbuildの推奨

Vine Linux 3.0以降で採用されているrpm-4.xではパッケージのビルドはrpmbuildコマンドを利用するようになりました。過去との互換性のためVine Linuxでは、rpmコマンドも利用できるようになっていますが、将来的に廃止の予定であるため今後はrpmbuildコマンドをお使いください。

パッケージを作成せずに段階的にスクリプト部を検証する場合は、表 II.6-1のオプションを使用します。 この際、オプション--short-circuitを併用すると一つ前の段階の動作結果を利用できます。

表 II.6-1スクリプト部の検証オプション
オプション 実行内容
-bp %prepセクションの実行(build prep)
-bc %prep、%buildセクションの実行(build compile)
-bi %prep,%build,%install,%checkセクションの実行(build install)
メッセージの記録

次のように | (パイプ) と tee コマンドを利用して、ビルド中のメッセージをファイルに残しておくと、エラーの確認や、%files の確認、Requires の確認といった作業がやりやすくなります。

$ rpmbuild -ba hoge.spec 2>&11 |tee hoge-build.log
tarballからRPMパッケージを作成する

他に、 tar.gz 形式のソースの中に含まれている SPEC ファイルを用いて build するときには、 -b のかわりに -t を用いて、

$ rpmbuild -ta hoge.tar.gz
などとします。

1

2>&1 はエラーメッセージ(2:標準エラー出力の内容)を (tee コマンドに渡すために) 標準出力(1) にリダイレクトする(2に流れるメッセージを 1と合流させる)というものです。これで、tee で指定したファイル hoge-build.log に、標準出力のメッセージと一緒にエラーメッセージも書き込まれるようになります。