ソースからビルドしたアプリケーション管理にpaco
Debian系ならapt、RH系ならyumでのアプリケーションやライブラリのインストール・アンインストールは大変ラクですよね。
しかし場合によってはソースからインストールしたいときもあります。が、ソースからインストールしたものを削除したい時に"make uninstall"が用意されていない場合も多いです。
そういった面を含めて体系的な管理をすること、つまりパッケージ化するcheckinstallというツールがあるようです。
しかし、
ソースからビルドしたファイルはcheckinstallを
使いパッケージ化してインストールをしているが、これだとソースからインストールしたのか、
パッケージ経由からのか区別が付きにくいまた、まれにパッケージ化できないものもあり、管理が煩雑に
ソースからインストールしたファイルをパッケージ管理出来る「paco」|DesktopなLinuxの設定とか
なってしまう
とあったり、
But though CheckInstall is very efficient, it finally depends on the package
LFS hint | paco - a source code pacKAGE oRGANIZER for Unix/Linux
manager of the host system (rpm, dpkg or installpkg), so it doesn't fit the
needs of the LFS community.
とあったりしたので二の足を踏んでしまいました。
よって代替案としてpacoをインストールすることにしました。その時の作業をメモしておきます。
"make install"したソフトウェアを管理できる超便利ツール「Paco」 - 元RX-7乗りの適当な日々の内容を参考にさせていただきました。
インストール
1. ダウンロード
$ cd /tmp/ $ la $ wget http://sourceforge.net/projects/paco/files/paco/2.0.9/paco-2.0.9.tar.gz/download -O paco-2.0.9.tar.gz
2. 展開
$ tar zxvf paco-2.0.9.tar.gz
3. configure
GPaco is the graphic interface of paco.
http://paco.sourceforge.net/
GPacoというGUIが付属しているようですが今回は使わないので --disable-gpaco としてやります。
$ cd paco-2.0.9/ $ ./configure --disable-gpaco
4. make
$ make プログラム 'make' はまだインストールされていません。 次のように入力することでインストールできます: sudo apt-get install make
わりとまっさらな状態のバーチャルマシンで行っているため make が入っていませんでした。
ご丁寧なメッセージに従って make をインストールすることとします。これは apt 使って。
5. make のインストール
By default, Ubuntu does not come with the tools required. You need to install the package build-essential for making the package and ...
https://help.ubuntu.com/community/CompilingEasyHowTo#Step_1:_Prep_your_system_for_building_packages
Ubuntuにはデフォルトでは make などのツールは入っていないようです。そこで build-essential というパッケージをインストールしてやることで make できるようにします。
$ sudo aptitude update $ sudo aptitude upgrade $ sudo aptitude install build-essential 以下の新規パッケージがインストールされます: binutils{a} build-essential cpp{a} cpp-4.6{a} dpkg-dev{a} fakeroot{a} g++{a} g++-4.6{a} gcc{a} gcc-4.6{a} libalgorithm-diff-perl{a} libalgorithm-diff-xs-perl{a} libalgorithm-merge-perl{a} libc-dev-bin{a} libc6-dev{a} libdpkg-perl{a} libgomp1{a} libmpc2{a} libmpfr4{a} libquadmath0{a} libstdc++6-4.6-dev{a} linux-libc-dev{a} make{a} manpages-dev{a} 0 個のパッケージを更新、 24 個を新たにインストール、 0 個を削除予定、0 個が更新されていない。 32.1 M バイトのアーカイブを取得する必要があります。 展開後に 88.4 M バイトのディスク領域が新たに消費されます。 先に進みますか? [Y/n/?] : update-alternatives: /usr/bin/c++ (c++) を提供するために 自動モード で /usr/bin/g++ を使います。 build-essential (11.5ubuntu2) を設定しています ... libc-bin のトリガを処理しています ... ldconfig deferred processing now taking place
6. configure & make & make install
$ ./configure --disable-gpaco
$ make
$ sudo make install
7. paco自身を登録
paco自身をソースからインストールしたので自分自身をリストに登録してやります。
$ sudo make logme
8. 登録状況の確認
$ paco -1Fdsa 25 1.4M 20 16-Jun-2012 paco-2.0.9
コマンドオプションでわりと使いそうなもののメモ
パッケージに関連するパッケージの一覧
$ paco -f paco-2.0.9 paco-2.0.9: /usr/local/share/paco/README /usr/local/lib/libpaco-log.a /usr/local/lib/libpaco-log.la /usr/local/lib/libpaco-log.so /usr/local/lib/libpaco-log.so.0 /usr/local/lib/libpaco-log.so.0.0.0 /usr/local/bin/paco /usr/local/etc/pacorc /usr/local/lib/pkgconfig/paco.pc /usr/local/share/man/man5/pacorc.5 /usr/local/share/man/man8/paco.8 /usr/local/share/man/man8/pacoball.8 /usr/local/share/man/man8/rpm2paco.8 /usr/local/share/man/man8/superpaco.8 /usr/local/share/paco/faq.txt /usr/local/share/paco/pacorc /usr/local/bin/ocap /usr/local/bin/pacoball /usr/local/bin/rpm2paco /usr/local/bin/superpaco
パッケージ情報
$ paco -i paco-2.0.9
------------
paco-2.0.9
------------
Name: paco
Version: 2.0.9
Summary: Source code package organizer
configure時のオプションの表示
$ paco -o paco-2.0.9
--disable-gpaco