注目の書籍

好評発売中!

知識ゼロから始めるLinuxサーバーの作り方

Linux初心者でも
本格 サーバーが“即席”で 完成!自宅サーバー
クラウド化も!

必聴講座ご紹介

Cloud Days Tokyo 2012
クラウド時代を勝ち抜く企業戦略を考える

エムオーテックス


Cloud Days Tokyo 2012
クラウド時代の企業インフラとユーザー環境の姿

ヴイエムウェア


Cloud Days Osaka 2012
クラウドでIT維新を〜ビジネスを加速させるベストプラクティス

アマゾン データ サービス ジャパン

オープンソース/Linux

特選フリーソフト

日経Linux

3種類のパッケージを手軽に作成 checkinstall

2007/08/28
ライター 末安 泰三
出典:日経Linux 2006年8月号  92ページより
(記事は執筆時の情報に基づいており、現在では異なる場合があります)

ジャンル:ユーティリティ 作者: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
>>導入結果を基にパッケージを作成
次ページ以降はITpro会員(無料)の方のみお読みいただけます。
会員の方は、 ログインしてご覧ください。
まだ会員でない方は、ぜひ登録(無料)していただき、ITproの豊富なコンテンツをご覧ください。

この記事に対するfacebookコメント

nikkeibpITpro

読みましたか? 〜 未読記事をご紹介