3.5. ソースパッケージからバイナリrpmを作成する (rpm --rebuild)

rpmパッケージを -i-Uでうまくインストールできない場合 は、ソース(src.rpm)パッケージからバイナリパッケージを作成する必要があり ます。また、Vine Linux 2.1用に用意されたパッケージ以外(Red HatやVine Linux 1.xのパッケージなど)をインストールする場合は必ずソースパッケージか ら再構築して下さい。

ソースパッケージからパッケージを再構築するときは、rootではなく一般ユーザ で行います。これはパッケージを構築する際に、ファイルの操作を必要とするた め、誤操作などで既存のシステムを壊さないようにするためです。新しいバイナ リのパッケージができたらrootになってインストールやアップデートして下さい。

Example 3-6. 準備

一般のユーザ権限で src.rpm を rebuild するために、パッケージを展開し、構 築するための場所が用意されています。このディレクトリは ˜/rpmとなっています。もし、ホームディレクトリにこのディレ クトリがなければ以下のようにして作成して下さい。

$ cd
$ mkrpmdir .
mkrpmdirコマンドを実行すると、必要なディレクトリと ˜/.rpmmacrosを作成してくれます。

手動で作成するには、以下のようにします。

$ mkdir -p ~/rpm/{BUILD,SOURCES,SPECS,SRPMS,RPMS/{i386,i586,i686,noarch}}
また、˜/.rpmmacrosに設定を記述しておく必要があります。以 下のようにして下さい。
$ echo "%_topdir $HOME/rpm" > ~/.rpmmacros

Example 3-7. 再構築

準備ができたらソースパッケージから再構築します。ソースパッケージは package-1-2vl3.src.rpmという名前になっています。一般ユーザで以 下のようにすればバイナリパッケージを作成できます。

$ rpm --rebuild package-1-2vl3.src.rpm

実行すると再構築(rebuild)が行われ、以下のようなメッセージを出して終了す れば成功です。

             ...
提供ファイル(provides)の調査中...
必須ファイル(requires)の調査中...
書き込み中: /home/user/rpm/RPMS/i386/package-1-2vl3.i386.rpm
実行中: %clean
             ...
+ exit 0

新しくできた ˜/rpm/i386/package-1-2vl3.i386.rpmをrootユー ザになってインストールすればおしまいです。もし、再構築に失敗した場合は、 スペックファイル等に修正が必要です。その場合は、一般ユーザで次ぎのように してソースコードをインストールし、スペックファイルを確認して下さい。

$ rpm -Uvh package-1-2vl3.src.rpm

こうすると、˜/rpm/SRPMS/にソースコードやパッチファイルが 展開され、˜/rpm/SPECS/にスペックファイル package.specがで きます。

rpm パッケージの作成方法の詳細については /usr/doc/HTML/MakingRPM/index.html を参照して下さい。