概要
ソースコードだけでパッケージが提供されていない。アンインストールの手間などを考えるとパッケージ管理システムで一元管理したいが、独自にパッケージを作成するノウハウはない。
多くのソフトウェアがパッケージで提供されるようになったいまでも、こういうシーンは存在します。すでにパッケージが提供されているソフトウェアであっても、最新のパッチを取り込みたいといった理由で、ソースコードからインストールする必要に迫られることもあります。
checkinstallはmake installの動作を追跡して、パッケージを作成するツールです。独自にパッケージを作成するノウハウがなくても、いくつかの質問に答えるだけでパッケージを作成することができます。作成できるパッケージには、Fedora CoreやRed Hat Enterprise Linuxが採用するRPM
、Debian GNU/Linuxが採用するdeb
、Slackware LinuxやPlamo Linuxが採用するtgz
の三種類があります。
準備
rpm-buildをインストールします。
# yum install rpm-build.x86_64 ... ================================================================================================== Package Arch Version Repository Size ================================================================================================== Installing: rpm-build x86_64 4.4.2.3-22.el5 base 302 k Installing for dependencies: elfutils x86_64 0.137-3.el5 base 215 k elfutils-libs x86_64 0.137-3.el5 base 183 k patch x86_64 2.5.4-31.el5 base 63 k Transaction Summary ================================================================================================== Install 4 Package(s) Upgrade 0 Package(s)
msgfmtコマンドが必要になるので、gettextもインストールしておきます。msgfmtコマンドはgettextに含まれています。
# yum install gettext.x86_64 ... ================================================================================================== Package Arch Version Repository Size ================================================================================================== Installing: gettext x86_64 0.17-1.el5 base 2.4 M Transaction Summary ================================================================================================== Install 1 Package(s) Upgrade 0 Package(s)
インストール
# cd /usr/local/src # wget http://asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz # tar zxvf checkinstall-1.6.2.tar.gz # cd checkinstall-1.6.2 # make # make install
インストールの確認
# checkinstall --version
checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
This software is released under the GNU GPL.
...パッケージ管理への追加
checkinstall自身をRPMで管理するために、checkinstall自身のRPMパッケージを作成します。
# checkinstall
途中、パッケージ方式を質問されるので、[R]を押してRPMパッケージを選択します。それ以外の質問はデフォルトのまま([Enter]を空打ち)で問題ありません。
使用するパッケージ方式を選んでください。 Slackwareなら[S], RPMなら[R], Debianなら[D]を入力
最後に確認を求められるので、間違いがないか確認します。
************************************** **** RPM package creation selected *** ************************************** このパッケージは以下の内容で構成されます: 1 - Summary: [ CheckInstall installations tracker, version 1.6.2 ] 2 - Name: [ checkinstall ] 3 - Version: [ 1.6.2 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ Applications/System ] 7 - Architecture: [ x86_64 ] 8 - Source location: [ checkinstall-1.6.2 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ checkinstall ] 変更するものの番号を入力してください。Enterで続行します:
パッケージの作成に成功すると、以下のメッセージが表示されます。
**********************************************************************
Done. The new package has been saved to
/usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm
You can install it in your system anytime using:
rpm -i checkinstall-1.6.2-1.x86_64.rpm
**********************************************************************パッケージ管理に加えるため、作成されたRPMパッケージを使って上書きインストールします。
# rpm -ivh /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm # rpm -qa | grep checkinstall checkinstall-1.6.2-1