アカウント名:
パスワード:
PC-BSD の翻訳をやっている者です。はじめまして。
8.0にはports管理用?なのか、「Ports Console」というのが用意されています。これを使ってportsのインストールを行うと、「usr/portjail」以下にインストールされるようになるようです。それにどんな意味があるのか分からないけれど、うまく機能していない様なので、これを使わずにインストールします。
忙しくて、ついさっき portjail をいじくってみたのですが、使い方はこうなっているようです。(まだα版なので、仕様変更したり、正式な運用方法が本家から出てくるかもしれませんが...)
1. ports を /usr/jails/portjail/usr/ports に展開する。これで、 Ports Console からは /usr/ports が見えるようになります。
2. Ports Console から make する# cd /usr/ports/misc/lv# make install clean
これで、/usr/jails/portjail/usr/local/bin/lv がインストールされます。
/usr/jails/portjail/usr/local/bin/lv を直接実行したり、(ライブラリーの都合でできないことがある)
% portjail run (プログラム名)で実行できるようになります。(しかし、現行バージョンではプログラムには引数が渡せない...)
なぜ portjail が必要なのかということですが、PC-BSD の世界と ports が構築している世界を分けるためにあると考えています。
PC-BSD 1.6 まではPC-BSD = FreeBSD + ports で構築された KDE3 環境でした。この場合には、ports で新しいバージョンのパッケージを入れようとすると、1) 既存の PC-BSD の環境に依存する古いパッケージを削除できないため、新しいパッケージを入れられない2) 新しいパッケージを入れるために PC-BSD の環境まで更新してしまい、互換性が保たれないという状態になっていました。
PC-BSD 7.x では PC-BSD のシステムが利用する ports 由来のプログラムは/usr/PCBSD 以下にインストールするようにしました。
もし、この状態で、 ports で mplayer をインストールすると、/usr/local/bin/mplayer にインストールされます。
ただ、普通に mplayer コマンドを入力すると、/usr/PCBSD/local/bin/mplayerが優先されて/usr/local/bin/mplayer は実行されません。
/usr/local/bin/mplayer を直接入力しても、/libexec/ld-elf.so.1: Shared object "libx264.so.65" not found, required by "mplayer"などのエラーが出て実行できません。そのため、 runports というプログラムで、ports 向けプログラム用の設定でプログラムを実行できるようになります。% runports mplayer
ただ、これだと環境変数をいじっただけだったりするので、PC-BSD 8.0 ではjail を使って、より確実に隔離した ports 実行環境が欲しかったのだと思われます。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
portjail の意味 (スコア:2)
PC-BSD の翻訳をやっている者です。はじめまして。
忙しくて、ついさっき portjail をいじくってみたのですが、使い方はこうなっているようです。
(まだα版なので、仕様変更したり、正式な運用方法が本家から出てくるかもしれませんが...)
1. ports を /usr/jails/portjail/usr/ports に展開する。
これで、 Ports Console からは /usr/ports が見えるようになります。
2. Ports Console から make する
# cd /usr/ports/misc/lv
# make install clean
これで、/usr/jails/portjail/usr/local/bin/lv がインストールされます。
/usr/jails/portjail/usr/local/bin/lv を直接実行したり、
(ライブラリーの都合でできないことがある)
% portjail run (プログラム名)
で実行できるようになります。
(しかし、現行バージョンではプログラムには引数が渡せない...)
なぜ portjail が必要なのかということですが、
PC-BSD の世界と ports が構築している世界を分けるためにあると
考えています。
PC-BSD 1.6 までは
PC-BSD = FreeBSD + ports で構築された KDE3 環境
でした。
この場合には、ports で新しいバージョンのパッケージを入れようとすると、
1) 既存の PC-BSD の環境に依存する古いパッケージを削除できないため、新しいパッケージを入れられない
2) 新しいパッケージを入れるために PC-BSD の環境まで更新してしまい、互換性が保たれない
という状態になっていました。
PC-BSD 7.x では PC-BSD のシステムが利用する ports 由来のプログラムは
/usr/PCBSD 以下にインストールするようにしました。
もし、この状態で、 ports で mplayer をインストールすると、
/usr/local/bin/mplayer にインストールされます。
ただ、普通に mplayer コマンドを入力すると、
/usr/PCBSD/local/bin/mplayer
が優先されて
/usr/local/bin/mplayer は実行されません。
/usr/local/bin/mplayer を直接入力しても、
/libexec/ld-elf.so.1: Shared object "libx264.so.65" not found, required by "mplayer"
などのエラーが出て実行できません。そのため、 runports というプログラムで、
ports 向けプログラム用の設定でプログラムを実行できるようになります。
% runports mplayer
ただ、これだと環境変数をいじっただけだったりするので、PC-BSD 8.0 では
jail を使って、より確実に隔離した ports 実行環境が欲しかったのだと思われます。