読者です 読者をやめる 読者になる 読者になる

うまいぼうぶろぐ

linuxとhttpdとperlのメモ

checkinstall でrpm作成の復習

毎回ソースインストールをする苦行は辛いし、かといって1からspecファイル書くのもこれまた辛いので、 checkinstall に頼ろうとしたけど久しぶりすぎて完全に忘れていたので復習。

install checkinstall

git から取ってくる。

$ git clone http://checkinstall.izto.org/checkinstall.git
$ cd checkinstall

そのままmake && make install するとinstallされる場所が微妙なことと、(設定ファイルの場所が /usr/local/lib/checkinstall/checkinstallrc ) オレオレappのprefixを/usr/local/APPNAME にして整理したかったのでMakefile 等を少し修正した。

$ mkdir -p ~/rpmbuild/SOURCES/
$ diff Makefile.org Makefile
4c4
< PREFIX=/usr/local
---
> PREFIX=/usr/local/checkinstall
7c7
< CONFDIR=$(PREFIX)/lib/checkinstall
---
> CONFDIR=$(PREFIX)
$ diff checkinstall.org checkinstall
948,949c948,949
< # Use the default doc directory of /usr/doc
< ! [ "$DOC_DIR" ] && DOC_DIR=/usr/doc
---
> # Use the default doc directory of /usr/local/checkinstall/doc
> ! [ "$DOC_DIR" ] && DOC_DIR=/usr/local/checkinstall/doc
$ diff installwatch/Makefile.org installwatch/Makefile
7c7
< PREFIX=/usr/local
---
> PREFIX=/usr/local/checkinstall
$ make 
$ su
# make install

rpmを作成する

何かソースを展開してmakeまで実行する。(make installは実行しない)。gnu helloを使って実験。

$ tar zxvf hello-2.8.tar.gz
$ make
$ /usr/local/checkinstall/sbin/checkinstall --nodoc make install

これで~/rpmbuild/RPMS/x86_64/hello-2.8-1.x86_64.rpm 等が生成される。(64bitの場合)
個人的には{checkinstallのprefix}/doc/ 以下のドキュメントは不要なので--nodoc つけた。