最近はほとんどのものがパッケージで提供されており、ソースからわざわざインストールする機会もずいぶん減った気がします。
しかし、中にはソースからインストールしないといけない場合もあるかと思います。
自分はApacheやPHPなど主要なソフトは、ソースからインストールする事が多いです。
今までは、バージョンアップさせる度にバカの一つ覚えと言わんばかりに、make && make installをひたすら叩きまくっていたわけです。
バージョアップしたはいいけど、おかしくなったらすぐ戻せる環境がベストだと思い、ちょっと色々調べてみました。
僕が理想とする機能は、
- ソースから入れたファイル群を管理できる
- バージョン毎にインストールしたものが管理できる
- 前のバージョンに戻せる
- コマンドから削除ができる
paco
まず最初に見つけたのがpacoです。
これはほぼ理想通りで、欲しい機能がほとんど揃っていました。なにより、使っている人が多くて、実績という点でも安心できそうです。
一つ気になった点は、前のバージョンに戻すような履歴管理が簡単ではなかった点です。
軽く調べた感じだと、pacoballというコマンドで、今のバージョンをtarボール化し、新しいバージョンの物を入れるという感じになりそうです。
インストール
## -Dオプションでカレントディレクトをパッケージ名として利用します # paco -D make install ## -pオプションでパッケージ名の指定が可能 # paco -p "app-1.4.1" make install
アンインストール
# paco -r app-1.4.1
その他
## インストール済みソフトの一覧表示 # paco -a ## 共有ファイルの表示 # paco -fc app app-1.4.1: /usr/local/app/conf/local.conf ## インストールした日を表示 # paco -dd app 01-Sep-2008 18:46 app-1.4.1 ## configureオプションの表示 # paco -o app --disable-hoge --enable-extension ## 現在のバージョンをtarボール化 # pacoball -b app-1.4.1 app-1.4.1.paco.tar.bz2 ## tarボール化したものに戻す # tar jtvf app-1.4.1.paco.tar.bz2
参考
Pacoでソースからインストールした物を管理する – WapBox
paco – a source code pacKAGE oRGANIZER for Unix/Linux
pacoでソースから導入したパッケージを管理する | Glide Note – グライドノート
Graft
次に見つけたのがこのGraftです。
pacoより機能面では劣るものの、ずいぶん昔から存在していたようです。
しかし、使ってる人の情報がほとんどない・・・。非常にシンプルが故に簡単に使うことができます。
衝突回避のためのPruneという機能がユニークです。
インストール
# graft -i app-1.4.1
アンインストール
# graft -d app-1.4.1
その他
## 衝突回避のためのPrune機能。既存ファイルが.pruned拡張子にリネームされる # graft -p app-1.4.1
Graftの詳細記事はこちら
tarボールソースからインストールしたソフトを管理する「Graft」を使ってみる – フタなしカンヅメ
Stow
次は、Stow(すとーんと読むのかな?)です。
これもけっこう有名な物のようで、色々なサイトで紹介されていました。
モデルとしてはGraftと似ているようですが、Graftより機能が少ないようです。
たぶんこっちのStowのほうが古い。
インストール
# stow -t /usr/local/bin app-1.4.1
アンインストール
# stow -D app-1.4.1
その他
## 既存のファイルを更新した時の再処理(再読込) # stow -R app-1.4.1
調べてみた感じだと、paco >> Graft >> Stowという印象です。後発であるpocoは機能面で優れており、色々便利な機能がたくさんあるので、新しく使うならpocoが良さそうです。
シンプルで最小限の機能だけで十分ということであれば、Graftがよさそうです。