/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.92
0.92 のほうが新しいということになります。
また、このファイルによって「バージョン 0.81 以上が必要です」というような
依存関係の処理も安全におこなうことができるようになります。