これは,当site管理者が,普段 freeware application の install を, 如何なる directory 構成 policy を持って行っているかを説明したものです。 一例として参考にしてください。重視することは,
以下,foobar (version 0.1) の install を,例として説明。
Freeware package の install 場所として,たとえば /opt/pkgs/ という directory を作成しておきます。
最近の ./configure && make な application の場合, configure の --prefix option として, 先に用意した /opt/pkgs/ 以下に,当該 application 名および version 番号を含む一意な名前の directory を仮定して指定します。
$ CC=gcc ./configure --prefix=/opt/pkgs/foobar-0.1 $ make $ su # make install
/opt/pkgs/ 内に,application 名だけで version 番号を含まない名前で,install 先の directory に symbolic-link を 張ります。
# cd /opt/pkgs # ln -s foobar-0.1 foobar # ls -Fd foobar* foobar@ foobar-0.1/
/opt/bin に,/opt/pkgs/foobar/bin 内の各 program に symbolic-link を張ります。pkgs/foobar-0.1/bin ではなく pkgs/foobar/bin を指定するのがポイント。
# cd /opt/bin # for i in ../pkgs/foobar/bin/* > ln -s $i
foobar (version 0.2) に version up する場合を,例として説明します。
以前の version が存在している場合,make install したあと /opt/pkgs/ 内の symbolic link を新しいほうに 張り直します。これだけで version up は完了です。
# cd /opt/pkgs # ls -Fd foobar* foobar@ foobar-0.1/ foobar-0.2/ # rm foobar && ln -s foobar-0.2 foobar
もう お分かりでしょうが, /opt/pkgs/ 内の symbolic link を古いほうに 張り直します。これだけで version戻し は完了です。
# cd /opt/pkgs # ls -Fd foobar* foobar@ foobar-0.1/ foobar-0.2/ # rm foobar && ln -s foobar-0.1 foobar
古い version がたくさんある場合,ひとつ古いもの (つまり, 今回新たに install する前までは最新だったもの) のみを残して, あとは消してもよいです。
ひとつ古いものは,最新 version に関して不具合が発生した時に 瞬時に戻せるように消さずにとっておきます。
# ls -Fd foobar* foobar@ foobar-0.0/ foobar-0.1/ foobar-0.2/ # rm -rf foobar-0.0
つまり,
という構造になっています。つまりは,/opt/pkgs/foobar の指す先を変更するという,「symbolic link の張替ひとつ」の作業で, version up/down が一瞬にして行えることになります。
なお,library 等の場合も同様の install方法をとることで,常に -L/opt/lib -R/opt/lib だけで解決できるようになります。ただし,minor version も file 名に 含む shared library に関しては /opt/lib 下に sym-link を作成しない ほうがよいでしょう。
同じ package でも version の違いによって,提供される command の数が 変わったりする場合があり,その場合は手作業で対処するしかありません。
Copyright © 2000-2001 -- tsumura@tomo.gr.jp