概要
ソースコードからインストールした場合の欠点は、ソフトウェアが管理されないことです。そのため、何がインストールされているのかわからなくなったり、アンインストールできなくなったり、、、インストール時のログを残しておいてそこから読み解くというのも、一苦労です。
いまでは、たいていはyumやaptでパッケージ管理されたものを使えばいいのですが、まだパッケージになっていない最新版を使いたいときや、用途に応じたオプションを指定してコンパイルしたいときなど、ソースコードからインストールしなければならないこともままあります。
そのようなとき、make installのログを記録して管理してくれるのがpacKAGE oRGANIZER(以下、paco)です。pacoを使うことで、ソースコードからインストールした場合も、パッケージでインストールした場合と同様、ソフトウェアを管理できるようになります。
インストール
最新版はpacKAGE oRGANIZER | SourceForge.netからダウンロードできます。
# cd /usr/local/src
# wget http://downloads.sourceforge.net/project/paco/paco/2.0.7/paco-2.0.7.tar.bz2
# tar jxvf paco-2.0.7.tar.bz2
# cd paco-2.0.7
# ./configure
# make
# make install
./configureの途中、次のエラーが発生した場合はgtkmm-2.4をインストールして、./configureをやり直します。gtkmm-2.4はGUIインターフェース用のライブラリです。
checking for GTKMM... configure: error: Package requirements (gtkmm-2.4 >= 2.12) were not met:
No package 'gtkmm-2.4' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables GTKMM_CFLAGS
and GTKMM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
gpaco(GUI版paco)を使わないときは、--disable-gpacoオプションを指定します。この場合、gtkmm-2.4をインストールする必要はありません。
# ./configure --disable-gpaco
makeの途中、次のエラーが発生した場合はg++をインストールして、./configureからやり直します。
../../build/depcomp: line 511: exec: g++: not found
g++をインストールするには、gcc-c++をインストールします。
# yum install gcc-c++
...
==================================================================================================
Package Arch Version Repository Size
==================================================================================================
Installing:
gcc-c++ x86_64 4.1.2-51.el5 base 3.8 M
Installing for dependencies:
libstdc++-devel x86_64 4.1.2-51.el5 base 2.8 M
Transaction Summary
==================================================================================================
Install 2 Package(s)
Upgrade 0 Package(s)
make installまで終わったら、paco自身をpacoの管理対象に加えます。
# make logme
# paco -a
paco-2.0.7
使い方
ソフトウェアのインストール
pacoを噛ませてmake installを実行します。-Dオプションを指定すると、カレントディレクトリがパッケージ名に使われます。
# paco -D make install
-pオプションを指定すると、指定した名前がパッケージ名に使われます。
# paco -p ruby-1.9.2-p290_ext_openssl make install
残念ながら、/はパッケージ名に使えませんでした。
# pwd
/usr/local/src/ruby-1.9.2-p290/ext/openssl
# paco -p ruby-1.9.2-p290/ext/openssl make install
paco: ruby-1.9.2-p290/ext/openssl: Invalid package name
パッケージのアンインストール
-rオプションの後ろにパッケージ名を指定すると、そのパッケージをアンインストールできます。
# paco -r git-1.7.4.rc2
Remove package git-1.7.4.rc2 (y/N) ?
管理しているパッケージの確認
pacoの管理対象になっているパッケージを表示します。
# paco -a
paco-2.0.7
オプションを指定すると、より詳しい情報を確認できます。
1 |
1行に1パッケージを表示します |
F |
そのパッケージに含まれるファイル数を表示します |
d |
そのパッケージをインストールした日付を表示します |
s |
そのパッケージが占有しているディスク容量を表示します |
# paco -1Fdsa
1.3M 13 30-Jan-2011 paco-2.0.7
パッケージの内容の確認
パッケージとしてインストールされたファイルを表示します。
# paco -f ruby-1.9.2-p290_ext_openssl
ruby-1.9.2-p290_ext_openssl:
/usr/local/lib/ruby/site_ruby/1.9.1/x86_64-linux/openssl.so
パッケージ情報の削除
パッケージ情報だけを削除してpacoの管理対象から外します。アンインストールはしません。
# paco -U ruby-1.9.2-p290_ext_openssl