- blogs:
- cles::blog

paco でソースからインストールしたソフトウェアをパッケージ管理する


先日、「ソースから最新版をインストールすると、アンインストールできないので管理が面倒ですよね」という話をしていたら、「paco とか使えばいいのに」と言われたのを思い出したのでインストールしてみました。これを使えばyumやaptでインストールしたものでなくても、インストールしたプロダクトを管理したり、綺麗にアンインストールすることができます。特にRHEL系のディストリビューション(CentOSなど)では事情があって最新版が欲しい場合にはソースから入れるしかないことが多いので活躍する機会も多そうです。
ちなみにどうやってこのソフトウェアが動作するかという種明かしについては、 paco のプロジェクトのウェブに下記のような記載があります。
paco - a source code pacKAGE oRGANIZER for Unix/Linux
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.
LD_PRELOADを使っているようなので、おそらくファイル書き込みをすべてフックして記録しておくのでしょう。
分かってしまえば簡単ですが、ちょっと目から鱗が落ちました。
以下、インストールメモ。
† ソースのダウンロード~インストール
ダウンロードして、./configure、make、make installします。通常のプロダクトと特に変わりありません。
今回はGUIを使わないので./configureには--disable-gpacoを指定しています。
また、最後の make logme は paco 自身を管理下に加えるためのものです。
† 管理下にあるプロダクトの一覧
† プロダクトに含まれるファイルの一覧
† 新たなプロダクトの追加
プロダクトを追加する場合にはmake installの作業を下記のように行うだけです。
-Dオプションを利用すると basename `pwd` がパッケージ名になります。
† プロダクトのアンインストール
プロダクトのアンインストールには-rオプションを使います。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3868
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110648)
3 . 年次の人間ドックへ(110278)
4 . 2023 年分の確定申告完了!(1つめ)(109815)
5 . 三菱鉛筆がラミーを買収(109716)