ソースからインストールしたソフトウェアを管理するツール「paco」

ソフトウェアをソースからインストールすると、アンインストールができない*1とか、"make install"時のログから手動でファイルを消すとか大変なことが多いですが、「paco」を使うと"make install"したソフトウェアを管理できます。

paco(pacKAGE oRGANIZER)とは

paco - a source code pacKAGE oRGANIZER for Unix/Linux
pacoは、ソフトウェアインストール時に、どこにファイルが作成されたかをログに残して管理しています。
上記の動作は、LD_PRELOADメソッドを使って行います。

When installing a package from sources, paco wraps the "make install" command (or whatever command or group of commands are needed to install the files into the system), and saves installation information into a text database.

How does it perform this magic? It is accomplished using the LD_PRELOAD method, which preloads a shared library before installation using the environment variable LD_PRELOAD. During installation, this library catches the system calls that cause filesystem alterations (such as open, link, rename, ...), and logs the created files.

pacoのインストール

まず、pacoに必要なライブラリをインストールします。
このライブラリは、後述するGUIツール「gpaco」に必要となりますので、GUIを使わないサーバでは必要ありません。*2

$ sudo aptitude install libgtkmm-2.4-dev

次に、pacoをインストールします。

$ wget http://jaist.dl.sourceforge.net/project/paco/paco/2.0.9/paco-2.0.9.tar.gz
$ gzip -dc paco-2.0.9.tar.gz | tar xvf -
$ cd paco-2.0.9
$ ./configure
$ make
$ sudo make install

GUIツールを使用しない場合は、"--disable-gpaco"オプションを付けて、configureします。

$ ./configure --disable-gpaco

paco自身も管理するように、以下のコマンドを実行します。*3

$ sudo make logme

pacoを使ってインストール

"make install"する時に、以下のように"paco"をかませて実行します。

$ sudo paco -D make install

"-D"オプションは、カレントディレクトリ名がpacoで管理するソフトウェア名として使われます。
大抵、"<ソフトウェア名>-<バージョン>"ディレクトリ以下で"make install"すると思いますので、"-D"を付けておけば問題ありません。
任意に名前を付けたい場合は、"-p"オプションを使います。

良く使うコマンド

  • 管理しているソフトウェア一覧表示
$ paco -a
httpd-2.2.17  paco-2.0.9
$ paco -1Fdsa
 23M  1214  07-May-2011  httpd-2.2.17
1.4M    20  07-May-2011  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
  • ソフトウェアリストの更新
$ sudo paco -ua
  • ソフトウェアのアンインストール
$ sudo paco -r httpd-2.2.17

GUIツール「gpaco」

pacoには、GUIツール「gpaco」が付属しています。
デスクトップで使用する場合などは、pacoをインストールすると、[アプリケーション]->[システムツール]->[Package Organizer]が追加されます。

ソフトウェア名を右クリックすると、ソフトウェア情報の確認やアンインストールができます。


paco - a source code pacKAGE oRGANIZER for Unix/Linux
pacKAGE oRGANIZER download | SourceForge.net

*1:"make uninstall"できるのは、ごく一部のソフトウェアだけです。

*2:CentOSでは、gtkmmパッケージが見つかりませんでした。

*3:CentOSでは、"sudo"でのコマンド実行時にエラーになりました。"su"コマンドで"root"ユーザへスイッチしてからコマンドを実行しました。