エンタープライズ:特集 | 2003/09/26 18:00:00 更新 |
特集:第2回 RPM活用のステップアップ−SRPMリビルドとコンパイルマスター (6/6)
インストールとパッケージ作成
「-bc」オプションでコンパイルに成功したら、「-bi」オプションでインストールのテストを試してみよう。SPECファイルでは以下の部分が実行される。
%install rm -rf $RPM_BUILD_ROOT %makeinstall mkdir -p $RPM_BUILD_ROOT/%{_datadir}/applications desktop-file-install \ --vendor=net \ --dir $RPM_BUILD_ROOT/%{_datadir}/applications \ --delete-original \ $RPM_BUILD_ROOT/%{_datadir}/applications/balsa.desktop rm -f $RPM_BUILD_ROOT/usr/share/sounds/balsa/* %find_lang %{name} rm -rf $RPM_BUILD_ROOT/var/scrollkeeper %clean rm -rf $RPM_BUILD_ROOT %post -p /usr/bin/scrollkeeper-update %postun -p /usr/bin/scrollkeeper-update |
インストールといっても、実際にシステムにインストールするのではなく、開発作業用のディレクトリ(変数「$RPM_BUILD_ROOT」で指定される場所だ。Red Hat Linuxでは/var/tmp/下)へ仮にインストールしてみる。実行後は以下のようなメッセージだ。
# rpmbuild -bi balsa.spec 〜中略〜 + rm -rf /var/tmp/balsa-2.0.6-root/usr/share/doc/balsa-2.0.6 + /bin/mkdir -p /var/tmp/balsa-2.0.6-root/usr/share/doc/balsa-2.0.6 + cp -pr README COPYING ChangeLog NEWS TODO AUTHORS HACKING docs /var/tmp/balsa-2.0.6-root/usr/share/doc/balsa-2.0.6 + exit 0 |
SPECファイルにあるように、いちど作業ディレクトリが削除され、改めてmkdirして作成したファイルをコピーしていることが分かる。ここまで成功すれば、/var/tmp/パッケージ名-root/以下にコンパイルされたバイナリファイルが仮の位置にインストールされるのだ。
# ls /var/tmp/balsa-2.0.6-root/ etc usr var # ls /var/tmp/balsa-2.0.6-root/usr/bin/ balsa balsa-ab |
あとは必要なファイルをチェックし、署名を付けてRPMとしてパッケージングするだけだ。「-ba」を実行しても、パッケージ作成はほぼ間違いなく成功するだろう。
# rpmbuild -ba balsa.spec 〜中略〜 Checking for unpackaged file(s): /usr/lib/rpm/check-files /var/tmp/balsa-2.0.6-root 書き込み中: /usr/src/redhat/SRPMS/balsa-2.0.6-1.src.rpm 書き込み中: /usr/src/redhat/RPMS/i386/balsa-2.0.6-1.i386.rpm 書き込み中: /usr/src/redhat/RPMS/i386/balsa-debuginfo-2.0.6-1.i386.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.96672 + umask 022 + cd /usr/src/redhat/BUILD + cd balsa-2.0.6 + rm -rf /var/tmp/balsa-2.0.6-root + exit 0 |
これで新しいパッケージが作成できた。実際に利用するには、通常通り、RPMのバイナリパッケージをインストールすればよい。次回は「src.rpm」も存在しない場合、tarボールから直接RPMパッケージを作成する方法について解説することにしよう。
One Point: |
Red Hat Linux 9でのbalsaコンパイルは、一般的な「開発用システム構成」では失敗し、パッケージ作成することができない。このため、本稿ではシステムに一部手を加えている。またシステムインストール時に「すべて」を選んでおけば、パッケージ作成はうまく行える。 |
関連記事
リファレンスRPM−第1回:RPM活用でLinuxサーバ運用の手間を軽減
Linux Tips− RPM カテゴリー
関連リンク
Linux チャンネル
[渡辺裕一,ITmedia]