Loading ...

RPMをビルドしてみよう


それでは早速rpmbuildコマンドを使ってhtopのRPMをビルドしてみます.

htopをビルドする

まず公式サイト*1よりhtopを入手します. 公式サイトの「latest version」のリンクをクリックするとSourceForgeのプロジェクトページに移動します. プロジェクトページから「Download」をクリックすると,該当バージョンのダウンロードページに移動します.

それでは先ほど用意したhtop-simple.specとrpmbuildコマンドでRPMをビルドします. 通常SPECファイルを用いたRPMのビルドはオプション「-ba」を付加してrpmbuildコマンドを実行します. といいつつ実はまずここ先にすることがあります. htopのビルドにはパッケージ「ncurses-devel」が必要ですので,先にインストールしておきます.

ncurses-develをインストールする
# /usr/bin/yum install ncurses-devel
htopをビルドする例
# /usr/bin/rpmbuild -ba htop-simple.spec

注意: このSPECファイルはncurses-develがインストールされていなくても実行できてしまいます(ただし途中でエラーになる) これはRPMをビルドする時に発生する特別なことではなく,ソースからにせずにビルドする時にも発生することです. この問題は後々の手順でビルド時に確認を行うようにSPECファイルを修正を行います.

うまく行けばRPMのビルドは成功するはずです. 成功したらディレクトリ「/usr/src/redhat/RPMS/i386」の下にRPMファイルが,「/usr/src/redhat/SRPMS」の下にSRPMファイルができています.

RPMファイルとSRPMファイルの確認
# /bin/ls /usr/src/redhat/RPMS/i386/
htop-0.5.2-1.i386.rpm
# /bin/ls/usr/src/redhat/SRPMS/
htop-0.5.2-1.src.rpm

これをインストールすることで,htopはディレクトリ「/usr/local」配下にインストールされます. 「htop」とコマンドを実行すると実行画面が出てくるでしょう. RPMは基本的にはこの手順で作成します. 「とりあえずRPMにできればいい」という場合はSPECファイルに下記の記述をしていけばよいです.

  • 最初の「****: xxxx」という項目をhtop-simple.specを参考に埋める
  • %prepでアーカイブを展開する
  • %buildでビルドをする
  • %installでインストールする.ただしそのままインストールするのではなく,「make install DESTDIR=${RPM_BUILD_ROOT}」という風に「DESTDIR=${RPM_BUILD_ROOT}」を忘れない
  • %filesでRPMに含みたいファイルを列挙する

基本的にはこれだけです.

%installでの「DESTDIR=${RPM_BUILD_ROOT}」はmake時にファイルを直接インストールするのではなく,環境変数「RPM_BUILD_ROOT」が示すディレクトリにインストールするという意味です. アプリケーションによっては「DESTDIR」は「INSTALL_ROOT」だったり,そもそもそういうものがない場合がありますので注意してください.



*1 http://htop.sourceforge.net/
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
最終修正日時: Fri, 03 Feb 2006 15:42:06 JST (2300d)
文字数(HTML): 1516
文字数(Wiki): 1595
人気ブログランキング - よくきた wiki