| 1 | [wiki:docs Vine Linux ドキュメント] / [wiki:../../ Vine Linux 開発者ガイド] / [wiki:../ パッケージ作成から公開までの流れ] / パッケージの作成・更新 |
| 2 | |
| 3 | [[PageOutline]] |
| 4 | |
| 5 | = パッケージの作成・更新 = |
| 6 | |
| 7 | == SPEC ファイルの準備 == |
| 8 | |
| 9 | パッケージの設計書である SPEC ファイルを準備します。 |
| 10 | |
| 11 | 既存パッケージを更新する場合は、[wiki:../../base-knowledge/version-control SPEC ファイルのバージョン管理について]を参考に SPEC ファイルを取得してください。 |
| 12 | |
| 13 | 新規パッケージの場合は、SPEC ファイルを新たに作成します。この時、ファイル名は'''パッケージ名-vl.spec'''の形式にしてください。 |
| 14 | |
| 15 | SPECファイルの詳細については、RPM パッケージの作成方法の第5章 SPECファイルの記述を参照してください。 |
| 16 | |
| 17 | == ソースやパッチの配置 == |
| 18 | |
| 19 | パッケージの作成に必要なソースやパッチを '''%_topdir/SOURCES/パッケージ名''' に配置してください。 |
| 20 | |
| 21 | 新たにパッチを作成した場合やソースのバージョンを更新する場合は、それらを先ほどのディレクトリに配置してください。 |
| 22 | |
| 23 | == ソース RPM の作成 == |
| 24 | |
| 25 | SPECファイルを元にソース RPM を作成します。以下のコマンドを実行してください。 |
| 26 | |
| 27 | {{{ |
| 28 | $ rpmbuild -bs SPECファイル名 |
| 29 | }}} |
| 30 | |
| 31 | GnuPGによる署名をするように設定している場合は、パスフレーズを求められますので入力してください。 |
| 32 | |
| 33 | {{{ |
| 34 | パスフレーズの入力: |
| 35 | }}} |
| 36 | |
| 37 | パスフレーズに問題がなければ、次のように表示されます。 |
| 38 | |
| 39 | {{{ |
| 40 | パスフレーズは正常です。 |
| 41 | 署名の作成中: 1005 |
| 42 | }}} |
| 43 | |
| 44 | 特に問題がなければ、書き込み完了の案内が表示されます。 |
| 45 | |
| 46 | == バイナリ RPM の作成 === |
| 47 | |
| 48 | まず、次のようにしてchroot環境(仮想のファイルシステム)にVine Linuxの基本システムをインストールします。(chrootを利用する関係上、vbuilderの実行にはroot権限が必要となります。) |
| 49 | |
| 50 | {{{ |
| 51 | $ sudo vbuilder --version 6 --arch i386 clean build |
| 52 | }}} |
| 53 | |
| 54 | 6 や i386 といったオプション値は、ターゲット環境に併せて変更してください。この作業には、しばらく時間がかかります。 |
| 55 | |
| 56 | {{{ |
| 57 | Making a build farm for 6_i386 done. |
| 58 | }}} |
| 59 | |
| 60 | のように表示されたら、次のようにしてソース RPM から、バイナリ RPM を作成します。 |
| 61 | |
| 62 | {{{ |
| 63 | $ sudo vbuilder --version 6 --arch i386 --unionfs clean build-rpm /path/to/hoge.src.rpm |
| 64 | }}} |
| 65 | |
| 66 | 特に問題がなければ、作成されたパッケージが、'''%_topdir/vbuilder/''' 以下にコピーされます。(vbuilderの出力をよく確認してください。) |
| 67 | |
| 68 | ビルドが途中で失敗した場合は、[#SPECファイルの準備 SPECファイルの準備]に戻って原因を修正してください。(BuildRequiresの修正など) |
| 69 | |
| 70 | vbuilderの詳細は、VineBootstrap を参照してください。 |