/opt/local/pkgs/

A Freeware Installation Policy

前口上

これは,当site管理者が,普段 freeware application の install を, 如何なる directory 構成 policy を持って行っているかを説明したものです。 一例として参考にしてください。重視することは,

  1. Version up を容易に行う。
  2. 以前の version への downgrade を容易に行う。
  3. Uninstall を容易に行う。
  4. Version 変更に伴う当該 application の利用不能時間を,最小限に留める。
  5. PATH を通すべき場所は,最低限にする (/opt/bin のみ)
  6. NFS で共有可能にし,network system 全体の scalability を保つ (→ LD 関連の話題として,近日中に別途説明)。

目次

Install 手順

以下,foobar (version 0.1) の install を,例として説明。

destination

Freeware package の install 場所として,たとえば /opt/pkgs/ という directory を作成しておきます。

prefix

最近の ./configure && make な application の場合, configure--prefix option として, 先に用意した /opt/pkgs/ 以下に,当該 application 名および version 番号を含む一意な名前の directory を仮定して指定します。

$ CC=gcc ./configure --prefix=/opt/pkgs/foobar-0.1
$ make
$ su
# make install

symlink (1/2)

/opt/pkgs/ 内に,application 名だけで version 番号を含まない名前で,install 先の directory に symbolic-link を 張ります。

# cd /opt/pkgs
# ln -s foobar-0.1 foobar
# ls -Fd foobar*
foobar@    foobar-0.1/

symlink (2/2)

/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

Version up 手順

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

Downgrade 手順

もう お分かりでしょうが, /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

Uninstall 手順

古い 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 の数が 変わったりする場合があり,その場合は手作業で対処するしかありません。

 
[Powerd by Sun] [Solaris.RogueLife.org] [Valid XHTML 1.0]
Copyright © 2000-2001 -- tsumura@tomo.gr.jp