エンタープライズ:特集 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 チャンネル

前のページ | 1 2 3 4 5 6 |      

[渡辺裕一,ITmedia]