この記事は会員限定です。会員登録すると全てご覧いただけます。
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.