Vine Linux ドキュメント / RPM パッケージの作成方法 / SPEC ファイルをもとに RPM パッケージを作成する
RPM パッケージを作成するには、次のコマンドを実行します。
$ rpmbuild -ba --sign hoge.spec
特に問題がなければ、バイナリパッケージとソースパッケージの両方が作成されます。
どちらか一方のみを作成する場合は、オプション -ba(build all) の代わりに -bb(build binary) あるいは -bs(build source) を使用します。
なお、オプション --sign は、パッケージに署名することを意味します。パッケージ署名の設定で ~/.popt の設定をした場合は、省略可能です。
署名オプションが有効になっていれば、次の様なプロンプトが表示されるのでGnuPG鍵のパスフレーズを入力して下さい。
パスフレーズの入力:
Vine Linux 3.0以降で採用されているrpm-4.xではパッケージのビルドはrpmbuildコマンドを利用するようになりました。過去との互換性のためVine Linuxでは、rpmコマンドも利用できるようになっていますが、将来的に廃止の予定であるため今後はrpmbuildコマンドをお使いください。
パッケージを作成せずに段階的にスクリプト部を検証する場合は、下の表のオプションを使用します。 この際、オプション --short-circuit を併用すると一つ前の段階の動作結果を利用できます。
オプション | 実行内容 |
---|---|
-bp | %prep セクションの実行(build prep) |
-bc | %prep、%build セクションの実行(build compile) |
-bi | %prep,%build,%install,%check セクションの実行(build install) |
次のように | (パイプ) と tee コマンドを利用して、ビルド中のメッセージをファイルに残しておくと、エラーの確認や、%files の確認、Requires の確認といった作業がやりやすくなります。
$ rpmbuild -ba hoge.spec 2>&1 |tee hoge-build.log
2>&1 はエラーメッセージ(2:標準エラー出力の内容)を(tee コマンドに渡すために)標準出力(1)にリダイレクトする(2 に流れるメッセージを 1と合流させる)というものです。これで、tee で指定したファイル hoge-build.log に、標準出力のメッセージと一緒にエラーメッセージも書き込まれるようになります。
他に、 tar.gz 形式のソースの中に含まれている SPEC ファイルを用いて build するときには、 -b のかわりに -t を用いて、
$ rpmbuild -ta hoge.tar.gz
などとします。