/package/admin/daemontools -> daemontools-0.80 /package/admin/daemontools-0.76 /package/admin/daemontools-0.80 /package/admin/daemontools-0.92このシステムはadmin/daemontools パッケージの バージョン 0.76, 0.80, 0.92 をもっています。 現在のバージョンは、admin/daemontools シンボリックリンクで 指定されているように 0.80 です。 おそらく 0.76 は古いバージョンで 0.92 は実験的な新バージョンなのでしょう。
ふつう、他のパッケージやユーザは 現在のバージョンに対して /package/admin/daemontools 経由で アクセスします。たとえば /command/tai64nlocal は /package/admin/daemontools/command/tai64nlocal への シンボリックリンクになっています。なので、ユーザが tai64nlocal とタイプすると、これは現在のバージョンの tai64nlocal を 走らせることになります。
新しいパッケージをインストールする通常の手段は、 そのパッケージを使うようにシステムをアップグレードすることです。 たとえば バージョン 0.80 から バージョン 0.92 へのアップグレードは、 /package/admin/daemontools シンボリックリンクを daemontools-0.92 を指すように (自動的に) 変更し、 /command 内に daemontools-0.92 のすべてのコマンドが 存在するようにすることです。 これらはすべて /package/admin/daemontools/package/upgrade スクリプトに よって処理されます。
ときたま、ユーザは現在のバージョン以外のバージョンのパッケージに アクセスしたくなるかもしれません。 たとえばユーザが /package/admin/daemontools-0.92/command/tai64nlocal と タイプすると、これは tai64nlocal のバージョン 0.92 を走らせます。 パッケージを作る際には、 システムがそのバージョンにアップデートされる前にも、 システムがそれ以降のバージョンにアップデートされた後にも、 どちらもなるべく正しく動くように設計してください。 たとえばシステム管理者は daemontools を daemontools-0.92 にリンクすることなしに /package/admin/daemontools-0.92 を コンパイル、テストおよび使用することができます。
パッケージを作る際には、 ./package/versions ファイルを含めることができます。 これはそれまで使っていたバージョン番号を、 一行にひとつずつ順番に並べたものです。 これによりスクリプトは 2つのバージョンを比較して、どちらがより 新しいかを知ることができます。たとえば、もし /package/admin/daemontools-0.80/package/versions に次のように書いてあって:
0.75 0.76 0.80対する /package/admin/dameontools-0.92/package/versions に次のように書いてあったとすると:
0.75 0.76 0.80 0.81 0.90 0.91 0.920.92 のほうが新しいということになります。 また、このファイルによって「バージョン 0.81 以上が必要です」というような 依存関係の処理も安全におこなうことができるようになります。