この文書は古い文書です。Checkinstall に関する新しい文書はこちらをご覧ください。
last update 2005年 9月 24日
Checkinstall で
インストール
tar.gz
から rpm、deb、tgz、を作成するアプリケーション
|
自分では
spec が書けなくて…。そういう人にお薦め、Checkinstall。
tar ball だけが配布されているパッケージの場合、もちろんそのままインストールしても良いのですが、せっかくの
rpm
パッケージ管理システムがあるのだから、できれば rpm パッケージでインストールしたい。ちょっと試して期待外れだったり、不要になったら -e
でアンインストールも簡単にできるし、バージョン管理も確実になる。spec
さえ自分で書ければ世話は無いのですが、そもそもそこまでのスキルは無いという私にとってあまりにありがたいアプリケーション。
rpm
専用ではありません。パッケージ作成の際に
Slackware の tgz 形式や deb 形式も選べます。
- Checkinstall を tar ball からインストール
-
一般的に行われるインストール法
- Checkinstall を rpm からインストール
-
checkinstall-1.6.0-1.i386.rpm のインストール法
- Checkinstall の使い方
-
もっとも基本的な「既存アプリのアップグレード」の例
CheckInstall のオリジナル Web は
http://asic-linux.com.mx/%7Eizto/checkinstall/
です。『DOWNLOAD』からパッケージを
ダウン
ロードします。現在最新の
checkinstall-1.6.0.tgz はパッケージビルド用のコマンド rpm と rpmbuild
を自動判別するようです。また、このバージョン(1.6.x)から国際化機能をサポートしているようです。beta3 で翻訳した ja.po
を本家に啓上してありますので、今後マージしてもらえるかもしれません(してくれませんでした。:-p
2005/09/)。旧版(checkinstall-1.5.3.tgz)とは違った挙動もありま
す。
インストールはパッケージ展開後に make から始めます。
$ tar xvzf
checkinstall*
$ cd checkinstall*
$ make
$ su
# make
install
これでインストールは完了したのですが、rpm を作るアプリが tar
ball
インストールされているのもおかしなものです。既に稼働状態に入った checkinstall を使って checkinstall を rpm
パッケージに作り直して上書きインストールします。
同じディレクトリで root のまま
#
/usr/local/sbin/
checkinstall
と
フルパスで指定し、後は対話的
に作業します。
Please
choose the packaging method you want to use.
Slackware [S], RPM [R] or Debian [D]?
には rpm パッケージが必要なら 『r』をタイプし Enter
で進めます。
このとき、『{HOME}/rpm has no SOURCES directory. Please write the path to the
RPM source directory tree:』というエラーが出る場合は、続けて
『root/rpm/』と指定するか、/root/.rpmacros の記述を絶対パスに変更します。
%_topdir ${HOME}/rpm
↓
%_topdir /root/rpm
|
これで
エラーは出なくなります。
**********************************************************************
Done. The new package has been saved to
/home/ユーザ名/rpm/RPMS/i386/checkinstall-1.6.0-1.i386.rpm
You can install it in your system anytime using:
rpm -i checkinstall-1.6.0-1.i386.rpm
**********************************************************************
checkinstall-1.5.3.tgz
まではパッケージインストールまでがデフォルト動作でしたが、checkinstall-1.6.0beta3.tgz
からはパッケージビルドまでが自動で、インストールはマニュアルで行うように変更されたようです。
# rpm -Uvh
/root/rpm/RPMS/i386/checkinstall-1.6.0-1.i386.rpm
としてインストールしましょう。tar ball が書き込んだファイル群を
rpm パッケージが同じファイルで上書きします。機能自体は変わりませんが rpm コマンドで様々な情報も得られるようになります。
$ rpm -ql
checkinstall
/usr/doc/checkinstall-1.6.0
/usr/doc/checkinstall-1.6.0/BUGS
/usr/doc/checkinstall-1.6.0/COPYING
/usr/doc/checkinstall-1.6.0/CREDITS
/usr/doc/checkinstall-1.6.0/Changelog
/usr/doc/checkinstall-1.6.0/FAQ
/usr/doc/checkinstall-1.6.0/INSTALL
/usr/doc/checkinstall-1.6.0/NLS_SUPPORT
/usr/doc/checkinstall-1.6.0/README
/usr/doc/checkinstall-1.6.0/RELNOTES
/usr/doc/checkinstall-1.6.0/TODO
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/BUGS
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/CHANGELOG
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/COPYING
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/INSTALL
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/README
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/TODO
/usr/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/VERSION
/usr/local/bin/installwatch
/usr/local/lib/checkinstall
/usr/local/lib/checkinstall/checkinstallrc-dist
/usr/local/lib/checkinstall/locale
/usr/local/lib/checkinstall/locale/es
/usr/local/lib/checkinstall/locale/es/LC_MESSAGES
/usr/local/lib/checkinstall/locale/es/LC_MESSAGES/checkinstall.mo
/usr/local/lib/installwatch.so
/usr/local/sbin/checkinstall
/usr/local/sbin/makepak
checkinstall-1.6.0-1.i386.rpm(checkinstall-1.6.0-1.src.rpm)
は Vine Linux 用に作成した checkinstall-1.6.0-0v1.i386.rpm
と同等のパッケージです。tar ball からインストール、rpm
化して再インストールという手間を省くことができます。Vine Linux
3.x Plus 用に作成したものですが、スクリプト部にはほとんど手を付けていないので他のディストリビューションでも動くと思います
。以前に公開していた
checkinstall-1.5.3-1
は noarch だったのですが、shared lib. の関係でアーキテクチャ依存になってしまうようです。
■
|
日本語化の ja.po
をパッチしています。メッセージは概ね日本語化されますが、完全ではありません。翻訳してあるのに表示されない部分もあるので、オリジナルの国際化にバグ
があるのかもしれません。インストールの動作には問題ありません。
|
■
|
デフォルトで
rpm パッケージを制作します。途中で、作成するパッケージタイプ ( rpm、deb、tgz
)の問い合わせは行われません。またインストールまでを自動で行うように設定しています。
|
■
|
パッケージのインストール場所が以下の様に変更されます。実行ファイル
checkinstall は /usr/bin に置かれます。su で
root になった場合でもフルパス指定は不要ですが、実行には root 権限が必要です。
|
■
|
メッセージの日本語化のために
gettext
に依存パッケージがあります。先にインストールしておいてください(無くてもメッセージが日本語化できないだけで、動作に必要というものではないので、少
しでもリソースを節約したい方は spec から 『Requires: gettext』
を削除してもかまわないはずです。というか、日本語表示のために私が加えた Requires です)。
|
■
|
『{HOME}/rpm
has no SOURCES directory. Please write the path to the
RPM source directory tree:』というエラーには
『root/rpm/』と指定するか、/root/.rpmacros の記述を絶対パスに変更します。
%_topdir ${HOME}/rpm
↓
%_topdir /root/rpm
|
|
$ rpm -ql
checkinstall
/usr/bin/checkinstall
/usr/bin/installwatch
/usr/lib/checkinstall
/usr/lib/checkinstall/checkinstallrc
/usr/lib/checkinstall/installwatch.so
/usr/lib/checkinstall/locale
/usr/lib/checkinstall/locale/ja
/usr/lib/checkinstall/locale/ja/LC_MESSAGES
/usr/lib/checkinstall/locale/ja/LC_MESSAGES/checkinstall.mo
/usr/sbin/makepak
/usr/share/doc/checkinstall-1.6.0
/usr/share/doc/checkinstall-1.6.0/BUGS
/usr/share/doc/checkinstall-1.6.0/COPYING
/usr/share/doc/checkinstall-1.6.0/CREDITS
/usr/share/doc/checkinstall-1.6.0/Changelog
/usr/share/doc/checkinstall-1.6.0/FAQ
/usr/share/doc/checkinstall-1.6.0/INSTALL
/usr/share/doc/checkinstall-1.6.0/NLS_SUPPORT
/usr/share/doc/checkinstall-1.6.0/README
/usr/share/doc/checkinstall-1.6.0/RELNOTES
/usr/share/doc/checkinstall-1.6.0/TODO
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/BUGS
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/CHANGELOG
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/COPYING
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/INSTALL
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/README
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/TODO
/usr/share/doc/checkinstall-1.6.0/installwatch-0.7.0beta4/VERSION
インストールするには
#
rpm -Uvh
checkinstall-1.6.0-1.i386.rpm
としてください。
通
常は新しいディレクトリ構成に再構成されますが、現在 checkinstall-1.6.0.tgz からインストールしたものを
利用している場合はいったんアンインストールする必要があるかもしれません。。
もちろん、Vine Linux ユーザで apt ラインを Plus に開いているなら
#
apt-get
install checkinstall
も OK です。依存関係のある gettext とともにインストールされます。
例として Vine Linux 標準のメーラ、Sylpheed をアップグレードインストールしてみましょう。
http://sylpheed.good-day.net/
から最新の安定版をダウンロード、展開します。
$
tar zxvf
sylpheed-*.tar.gz (または
tar jxvf sylpheed-*.tar.bz2)
$
cd
sylpheed-*/
$
./configure
--prefix=/usr
(オ
プション --prefixは Vine の sylpheed が /usr/local ではなく、/usr
にインストールされる仕様に対応するためです)
。
$
make
$
su
#
checkinstall
あとは対話的にパッケージにバージョンを指定したりして作業を進めます。
http://www.vinelinux.org/manuals/using-rpm-4.html#id2550771
も参照してください。
NOTE
◆ Vine Linux ユーザの 尹
(Yun) さんがcheckinstallを利用してspecファイルを作成するスクリプトを作成されました。
http://www.kids-clinic.jp/uni/spec.html
Vine users-ML で「関心のある方がいらっしゃれば改編・再配布はご自由にどうぞ。」とおっしゃってくださっています。
興味のある方は試してご覧になってご意見など差し上げると取り上げていただける "かも" しれません。
◆
su - で root になった場合は /usr/local/sbin/ にパスが通っていますから
#
checkinstall
とするだけで良いのですが、逆にカレントが /root に移動してしまいますので、再び
cd /home/hoge/checkinstall-1.6.0( or Package-hoge ) する必要があります。
「ならば、最初から su - して全て root
で作業すれば良い」と考えるかもしれませんが、パッケージビルドは一般ユーザで行った方が(トラブルの元になりにくいので)良いとされています。
フルパスを覚えてしまう方が良いでしょう。
◆ 今回(ver.1.6)も同じ
Vine Linux ユーザの 加藤 さんに多大なご協力をいただいきました(深謝)。
|