rpmパッケージをプロジェクト下のディレクトリに作成する方法

  • rpmパッケージをプロジェクト下のディレクトリに作成する方法。
    • 通常は.rpmmacros を使って個人のhomeに設定して/home/ymko/rpm/RPMS/arch/xxxx.rpmみたいなところに作成するが、kernelなんかをビルドすると大量のファイルに個人で作成したファイルが埋もれてしまう。そこでrcfileオプションを使うとrpmの作成場所などを指定できる。
    • --rcfile rpmrcってやってるとこがミソ
$ wget http://ftp.riken.jp/Linux/centos/5.5/os/SRPMS/basesystem-8.0-5.1.1.el5.centos.src.rpm
$ rpm2cpio basesystem-8.0-5.1.1.el5.centos.src.rpm | cpio -idv
$ ll
-rw-r--r-- 1 ymko users 3848 Apr  9  2007 basesystem-8.0-5.1.1.el5.centos.src.rpm
-rw-rw-r-- 1 ymko users 1944 Feb  4 22:35 basesystem.spec

$ rpm -ql rpm | grep rpmrc$
/usr/lib/rpm/rpmrc
$ cp /usr/lib/rpm/rpmrc .
$ perl -pi'.o' -e 's/(rpmmacros)$/$1:.rpmmacros/' rpmrc

$ echo "%_topdir `pwd`/rpm" > .rpmmacros
$ mkdir -p rpm/{SOURCES,BUILD,SRPMS,RPMS,SPECS}
$ rpmbuild -ba basesystem.spec --rcfile rpmrc
$ tree
.
|-- basesystem-8.0-5.1.1.el5.centos.src.rpm
|-- basesystem.spec
|-- rpm
|   |-- BUILD
|   |-- RPMS
|   |   `-- noarch
|   |       `-- basesystem-8.0-5.1.1.noarch.rpm
|   |-- SOURCES
|   |-- SPECS
|   `-- SRPMS
|       `-- basesystem-8.0-5.1.1.src.rpm
|-- rpmrc
`-- rpmrc.o

7 directories, 6 files