SRPMって何?

» 2000年09月27日 00時00分 公開
[木田佳克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.

注目のテーマ

あなたにおすすめの記事PR