[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: FreeBSD port to NetBSD package



こんにちは。

わたしも妙案があるというわけでもないのですが…

問題はjapaneseカテゴリーは他のカテゴリーの分類方式と直交している度合いがと
ても大きいというところにあります。

1999/03/19 22:58:38, Osamu OISHI  wrote:

> パッケージは
> ${PREFIX}の変わりに${PREFIX}/pkgbin/${PKGNAME}
> にとりあえず入れておいて、
> ln -s ${PREFIX}/pkgbin/${PKGNME}/bin/hoge ${PREFIX}/bin/hoge
> ln -s ${PREFIX}/pkgbin/${PKGNME}/bin/ja-hoge ${PREFIX}/ja/bin/ja-hoge
> のようにアプリケーションの言語毎に別のディレクトリからlinkする。
> 最優先のpathは$LANGで判断する。
> また${PKGNAME}から言語を判断しlinkを張るためのコマンドをスクリプトで書
> く。(この時、オプションでパッケージの優先順位やリンクを張るディレクトリ
> を変更できるようにしておく)
> パッケージの削除は${PREFIX}/pkgbin/${PKGNAME}以下全部削除し、
> リンク先のなくなったリンクファイルを消す。
> #パッケージを作るときは${PREFIX}/pkgbin/${PKGNAME}以下をtarで固めるだけ。
> 同名のshared libraryが複数ある場合でローカライズされているものを必要とす
> る場合はstatic linkにしてしまう(数はそれ程多くないでしょう)。

実行ファイル以外にもパッケージを構成するファイルはいろいろありますが、それら
についてはいかがでしょうか。

いまのパッケージシステムではPLISTファイルをPLIST.mi、PLIST.mdのように分けて
書けるようになっていますが、そこに使用する言語別の設定を記述する枠組みを作れ
ばいいかもしれません。ただ、ファイルシステムに配置するには木構造にしなければ
ならないので、どうしてもすっきりした形にはなりません。bin/jaなのかja/binなの
かは元々決められるものではありません。

あるいはunion mountを使って

/usr/pkg_ja --> /usr/pkg
/usr/pkg_fr --> /usr/pkg

(/usr/pkg_enは/usr/pkgと同じ)

としておき、jaパッケージを使いたいときは/usr/pkg-ja/someを各種のパスに入れる
という方法ではどうでしょう。これなら各言語毎のパッケージを作るときに

LOCALBASE=${PREFIX}_${LANG}

としておけば互いに混ざることはありません。

PATH=/usr/pkg_${LANG}/bin:...

みたいにできればいいと思いますが、これはやりすぎかも。

> とりあえずはこのようにすればファイル名の同じパッケージを同時に入れること
> は可能で、パッケージを作るときには依存関係がある場合、
> オリジナルのディレクトリを参照すればdependの問題も片付くはずです。
>
> #しかし実装がどう見てもださいです。
> #ディレクトリは増えまくるし、何か別の問題が出てきそう。
> #他に良いパッケージの実装方法があれば議論してもらえるとうれしいです。

昔のBeOSで採用していたというRDB形式のFile Systemとか。なくなっちゃったんです
よね。