| 1 | [wiki:docs Vine Linux ドキュメント] / [wiki:../ RPM パッケージの作成方法] / SPEC ファイルをもとに RPM パッケージを作成する |
| 2 | |
| 3 | = SPEC ファイルをもとに RPM パッケージを作成する = |
| 4 | |
| 5 | RPM パッケージを作成するには、次のコマンドを実行します。 |
| 6 | |
| 7 | {{{ |
| 8 | #!sh |
| 9 | $ rpmbuild -ba --sign hoge.spec |
| 10 | }}} |
| 11 | |
| 12 | 特に問題がなければ、バイナリパッケージとソースパッケージの両方が作成されます。 |
| 13 | |
| 14 | どちらか一方のみを作成する場合は、オプション -ba(build all) の代わりに -bb(build binary) あるいは -bs(build source) を使用します。 |
| 15 | |
| 16 | なお、オプション --sign は、パッケージに署名することを意味します。[wiki:../gpgsign パッケージ署名の設定]で ~/.popt の設定をした場合は、省略可能です。 |
| 17 | |
| 18 | 署名オプションが有効になっていれば、次の様なプロンプトが表示されるのでGnuPG鍵のパスフレーズを入力して下さい。 |
| 19 | |
| 20 | {{{ |
| 21 | パスフレーズの入力: |
| 22 | }}} |
| 23 | |
| 24 | パッケージを作成せずに段階的にスクリプト部を検証する場合は、下の表のオプションを使用します。 この際、オプション --short-circuit を併用すると一つ前の段階の動作結果を利用できます。 |
| 25 | |
| 26 | ||= オプション =||= 実行内容 =|| |
| 27 | ||-bp||%prep セクションの実行(build prep)|| |
| 28 | ||-bc||%prep、%build セクションの実行(build compile)|| |
| 29 | ||-bi||%prep,%build,%install,%check セクションの実行(build install)|| |
| 30 | |
| 31 | == rpmbuildの推奨 == |
| 32 | |
| 33 | Vine Linux 3.0以降で採用されているrpm-4.xではパッケージのビルドはrpmbuildコマンドを利用するようになりました。過去との互換性のためVine Linuxでは、rpmコマンドも利用できるようになっていますが、将来的に廃止の予定であるため今後はrpmbuildコマンドをお使いください。 |
| 34 | |
| 35 | == メッセージの記録 == |
| 36 | |
| 37 | 次のように | (パイプ) と tee コマンドを利用して、ビルド中のメッセージをファイルに残しておくと、エラーの確認や、%files の確認、Requires の確認といった作業がやりやすくなります。 |
| 38 | |
| 39 | {{{ |
| 40 | #!sh |
| 41 | $ rpmbuild -ba hoge.spec 2>&1 |tee hoge-build.log |
| 42 | }}} |
| 43 | |
| 44 | 2>&1 はエラーメッセージ(2:標準エラー出力の内容)を(tee コマンドに渡すために)標準出力(1)にリダイレクトする(2 に流れるメッセージを 1と合流させる)というものです。これで、tee で指定したファイル hoge-build.log に、標準出力のメッセージと一緒にエラーメッセージも書き込まれるようになります。 |
| 45 | |
| 46 | == tarball から RPM パッケージを作成する == |
| 47 | |
| 48 | 他に、 tar.gz 形式のソースの中に含まれている SPEC ファイルを用いて build するときには、 -b のかわりに -t を用いて、 |
| 49 | {{{ |
| 50 | #!sh |
| 51 | $ rpmbuild -ta hoge.tar.gz |
| 52 | }}} |
| 53 | などとします。 |