ジャンル:ユーティリティ 作者:Felipe Sanchez氏ほか
ライセンス:GPL
URL:http://asic-linux.com.mx/~izto/checkinstall/

checkinstallは,任意のソフトウエアのソース・アーカイブから,RPM形式やdeb形式,tgz形式のパッケージを作成するソフトである。パッケージ化するための詳しい知識がなくても,ソースからパッケージを手軽に生成できる。

 最近の主なディストリビューションはソフトの管理を容易にするため,「パッケージ管理システム」を備えている。パッケージ管理システムとは,rpmやdpkgなどのパッケージ管理コマンドにより,ソフトの導入や削除を手軽にできるようにした仕組みである。Linuxシステムを構成するソフトはすべて,このパッケージ管理システムに対応するファイル形式である「パッケージ」として提供されている。

 Linuxシステムを構成するソフト以外にもパッケージで提供されているソフトは数多いが,世の中にさまざまなソフトが存在する。中にはソース・コードだけでパッケージが用意されていないソフトも多数ある。このようなソフトもパッケージ管理システムで一元管理したいのなら,自らがソース・コードからパッケージを作成する必要がある。

 ソース・コードから,自分が利用しているLinuxディストリビューションに合ったパッケージを作成することは,導入しようとするソフトやパッケージ形式に関する知識がある程度なければ難しい。普通は断念せざるを得ないだろう。

 checkinstallは,そのような知識を必要とせずに,ソース・コードからパッケージを簡単に作成できるツールだ。作成できるパッケージは,Fedora CoreやRed Hat Enterprise Linuxなどが採用する「RPM」,Debian GNU/Linuxなどが採用する「deb」,Slackware LinuxやPlamo Linuxなどが採用する「tgz」形式の3種類と豊富である。

RPMパッケージを作成する

 checkinstallは図1の手順でインストールできる。ここでは,2006年6月中旬時点の最新版であるバージョン1.6.0を使用した。手順通りに作業すれば,/usr/local/sbinディレクトリに「checkinstall」というシェル・スクリプトがインストールされる。これがcheckinstallの実体である。

図1●checkinstallのインストール手順
図1●checkinstallのインストール手順
checkinstallコマンドは,/usr/local/sbinディレクトリにインストールされる。

 また,/usr/local/binディレクトリに「installwatch」というバックエンド・コマンドも同時にインストールされる。同コマンドの役割については後述する。

 では,実際にcheckinstallを用いてRPMパッケージを作成してみよう。例として,文字例「Hello, world!」*1を表示する「GNU hello」というソフトウエアのRPMパッケージを作成してみる。同ソフトのソース・アーカイブは,GNUプロジェクトのサイト(ftp://ftp.gnu.org/gnu/hello/)から入手できる。ここでは,バージョン2.1.1のアーカイブ(hello-2.1.1.tar.gz)を入手した。

 図2の(1)がcheckinstallを用いてパッケージを作成する手順だ。参考までに,図2の(2)にGNU helloをコンパイルして導入する通常の手順を示す。(1)では,make installコマンドの代わりに,「/usr/local/sbin/checkinstall」のコマンドを実行する。いくつかの質問事項が表示されるので,それぞれ必要な情報を入力していく(図3)。

図2●checkinstallを用いたパッケージ作成手順と,通常のインストール手順
図2●checkinstallを用いたパッケージ作成手順と,通常のインストール手順
パッケージを作成する場合,make installコマンドの代わりに,checkinstallコマンドを実行する。

図3●パッケージ形式やドキュメント・パッケージの作成
図3●パッケージ形式やドキュメント・パッケージの作成
RPMパッケージを作成する場合,2番目の問いに対して「R」と入力する。
[画像のクリックで拡大表示]

 図3の例では,「パッケージの関連文書をインストールすること」「パッケージ形式はRPMであること」「パッケージの説明文は入力しないこと(空行)」をそれぞれ選択している。

 インストールされる関連文書は,ソース・ディレクトリ(ソース・アーカイブを展開されて作成されたディレクトリ)にある「README」や「INSTALL」などのファイルである。インストール先は,/usr/doc/<パッケージ名>で示されるディレクトリだ。

 また,パッケージの説明文を記述した「description-pak」というファイルをソース・ディレクトリ内に用意しておけば,説明文の入力は求められずに済む。

 最後に作成されるパッケージの情報がまとめて表示される(図4)。これで問題なければ,[Enter]キーを押す。するとGNU helloのRPMパッケージが,/usr/src/redhat/RPMS/<アーキテクチャ名>ディレクトリ内に作成される。筆者は,64ビット・アーキテクチャのPCを利用しているため,/usr/src/redhat/RPMS/x86_64ディレクトリ内に「hello-hello-2.1.1-1.x86_64.rpm」というRPMパッケージが作成された。

図4●パッケージに設定する各情報の一覧
図4●パッケージに設定する各情報の一覧
自動取得した情報と入力情報を基に,パッケージに設定される情報が一覧表示される。問題がなければ[Enter]キーを入力する。
[画像のクリックで拡大表示]

 作成したRPMパッケージは,一般的なRPMパッケージと同様に,インストールして利用できる*2


# cd /usr/src/redhat/RPMS/x86_64
# rpm -ivh hello-2.1.1-1.x86_64.rpm

この先は会員の登録が必要です。今なら有料会員(月額プラン)が4月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら