myam314のブログ

備忘録、めも、日記など。

checkinstall による RPM作成メモ

checkinstall

RPMを作成する方法に、rpmbuildコマンド と checkinstallコマンド がある。

rpmbuild

  • メリット

RPMに含めたいファイル構成や、その他パッケージ情報を詳細に定義できる。
RPM情報を自分の好きなようにカスタマイズできる。

  • デメリット

パッケージ情報やビルド・インストール手順を記述したSPECファイルを作成する必要があっていろいろと手間がかかる。
柔軟性が高い分、すべて自分でSPECを記述しなければならない。



checkinstall

  • メリット

ソースインストール結果をもとに自動でSPECファイルを記述してくれる。
パッケージ情報もある程度はカスタマイズできる。

  • デメリット

自動でSPECを記述するので、ブラックボックスな部分があって動きが読みづらい。
checkinstall の動きを正確に理解できていれば、使いこなせるかも)



個人的には、パッケージに含めるファイル数が多い場合には checkinstall で自動化したほうが楽で、ファイル数少ない場合は地道にrpmbuild でオレオレSPECを書くほうがSPECの理解にもつながっていいのかなって感じ。

今回は、checkinstall コマンドによる RPM作成方法について説明。

checkinstall コマンドについて

#checkinstall --help
checkinstall コマンドの使い方をみてみると・・・
---
使いかた: checkinstall [options] [command [command arguments]]
---

↑こんな記述があった。


デフォルト(引数なし)だと、checkinstall によって make install コマンドを実行した結果をもとに SPECファイルを作成して rpmbuild による RPM作成を自動で実行してくれるよう。
ただ、これだと インストール方法が make install ではない場合には checkinstall を使っての RPM作成ができないじゃんということになってしまう(と思っていた)。

そこで、checkinstall の引数に実行コマンドを引き渡すと、そのコマンドを実行した結果を元に SPECファイルを作成してRPMを自動作成して・・・という流れをやってくれるみたい。
なので、例えばmake install でのインストールだけじゃなくて、./install とか他のインストールコマンドの場合でも checkinstall による RPM作成ができる。

checkinstall 標準的な使い方

RPM化したいソースを準備
②ソースをコンパイル
checkinstall + インストールコマンド 実行

checkinstall 小技

RPM化したいソースを準備
②ソースをコンパイル
③ソースインストール実行(実際に実行してしまう)
④適当な作業ディレクトリを /(root) とみなしてインストールしたいファイル構成を作成
⑤ファイル構成をまとめて tar ball に圧縮
⑥"checkinstall tar zxf xxx.tar.gz -C /" を実行
※tar zxf xxx.tar.gz -C / というコマンドで、xxx.tar.gz を /(root) に展開するので、
checkinstall はこの展開結果をもとに tar.gzの中のファイル群を展開(=コピー=インストール)してくれるようなSPECを作成してくれる。

これが結構便利で、インストールしたいファイル群が多くてSPECを自前で書くのが面倒な場合は、
ファイル構成を作ってしまってから checkinstall を実行することで自動で SPEC作成といった手順を踏んだ方が早いことがある。



と、非常に雑な説明になっているけれど、
自分用に忘れないようにメモ。