Tips記事
» 2000年09月27日 00時00分 UPDATE

SRPMって何?

[木田佳克,ITmedia]

 Red Hat系Linuxでは,多くのソフトがRPMパッケージで配布されている。RPMはインストールがとても容易であり,アンインストールも手軽という魅力がある。

 ディストリビュートのCD-ROMにも含まれているが,「SRPM」というディレクトリが気になったことはないだろうか。SRPMは,RPMとは異なる「RPMパッケージを作成することが可能なソース」である。RPMであれば,パッケージ作成者の意図通りのディレクトリ先や構成になるが,SRPMを編集すれば自分好みのRPMパッケージを作成できる。差分(パッチ)を当てることもできるため,自由度が高いインストールが可能になる(※ただし,比較的難易度が高いのはいうまでもない)。

 ここでは「xntp3-5.93-14.src.rpm」ファイルを例に挙げて,SRPMの構造を見ていこう。

# rpm -ivh xntp3-5.93-14.src.rpm
xntp3 ###################################
# ls -l /usr/src/redhat/
BUILD RPMS SOURCES SPECS SRPMS # ls -l /usr/src/redhat/SPECS/
total 4
-rw-rw-r-- 1 root root 3578 Feb 19 2000 xntp3.spec
# ls -l /usr/src/redhat/SOURCES/
total 1976
-rw-rw-r-- 1 root root 1672 Apr 15 1999 ntp.conf
-rw-rw-r-- 1 root root 22 Mar 21 1999 ntp.keys
-rw-r--r-- 1 root root 346 Mar 21 1999 xntp3-5.93-maxtc.patch
-rw-r--r-- 1 root root 1953474 Mar 21 1999 xntp3-5.93.tar.gz
-rw-r--r-- 1 root root 1637 Mar 21 1999 xntp3-5.93a.diff.gz
-rw-r--r-- 1 root root 1829 Mar 21 1999 xntp3-5.93b.diff.gz
-rw-r--r-- 1 root root 568 Mar 21 1999 xntp3-5.93c.diff.gz
-rw-r--r-- 1 root root 15178 Mar 21 1999 xntp3-5.93d.diff.gz
-rw-r--r-- 1 root root 17480 Mar 21 1999 xntp3-5.93e.diff.gz
-rwxr-xr-x 1 root root 1212 Aug 17 1999 xntpd.rc

 通常のRPMと同じくivhオプションでインストールを行うと,/usr/src/redhat/下に展開される。

 /usr/src/redhat/SOURCES/下には,xntp3-5.93.tar.gzというファイルが見られ,ネットで配布されているおなじみの形式が見られる。また,/usr/src/redhat/SPECS/下にあるxntp3.specファイルには,ビルド情報(パッケージ作成の手順)が記述されている。

 次のように-baオプションを指定するとspecファイルに沿ったRPMが作成されるのだ。

# cd /usr/src/redhat/SPECS/
# rpm -ba xntp3.spec
Executing: %prep
〜中略〜
Bad exit status from /var/tmp/rpm-tmp.74133 (%build)

※このようにRPMが作成(ビルド)される
# ls -l /usr/src/redhat/BUILD/
total 4
drwxr-xr-x 20 root root 4096 Sep 27 17:30 xntp3-5.93

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ