« 春祭り(南あわじ市緑、洲本市中川原) | メイン | とんでもない才能 »
2010年04月07日
jailでportsツリーを共有する方法のメモ
参照ページ
http://free-vv.dyndns.org/d/?q=node/411
上記ページから要点を抜き出しています。
ezjailにより作成された仮想環境でportsツリーを導入する際、個々のjai仮想領域lごとにportsツリーを構成するとHDD容量を圧迫することになる。また、そうした場合にjail環境のportsツリーを更新する手間が増えるデメリットが発生する。 そこでmount_null(8)を使用してjail環境にhost環境のportsツリーをマウントし共有することで、jail環境からもportsツリーを利用できるようにする。
jail環境でのportsツリーの導入
mount_null(8)のオプションにro(リードオンリー)を指定することにより、jail環境へ読み込み専用でマウントすることが可能になる。これによってjail環境からhost環境の/usr/portsを変更できないようにすることが可能である。
マウントポイントの設定
host環境の/etc/fstabにjail環境のportsツリーのマウントポイントを指定する。
jailから書き込みが出来ないようにオプションにroを追加
通常の運用時はportsツリーをマウントしないようにnoautoオプションを指定
portsの種類によっては/usr/srcのファイルを必要とするものがある
また、jail環境のportsとsrcディレクトリは下記のようにリンクになっている
lrwxrwxrwx 1 root wheel 19 1 2 00:52 ports -> /basejail/usr/ports
lrwxrwxrwx 1 root wheel 17 1 2 00:52 src -> /basejail/usr/src
したがって、/etc/fstab (host)に以下を追記
/usr/ports /usr/jails/JAILNAME/basejail/usr/ports nullfs ro,noauto 0 0
/usr/src /usr/jails/JAILNAME/basejail/usr/src nullfs ro,noauto 0 0
JAILNAME : 今回作成したjail名
jail環境のports環境整備
portsでインストールする際は作業ディレクトリ(WRKDIR)とソース保存ディレクトリ(DISTDIR)への書き込み権限が必要になる為、/usr/portsを読み込み専用でマウントした場合、jail環境の/etc/make.confに以下の指定が必要である。(無い場合make時にエラーとなる)
WRKDIRPREFIX= /var/ports
DISTDIR= /var/ports/distfiles
PACKAGES= /var/ports/packages
現在上記の記述はデ゙フオルトで入っているので、このままでよければこのデイレクトリを作成してやればよい。
jail
# mkdir /var/ports
# mkdir /var/ports/distfiles
# mkdir /var/ports/packages
portsツリーのマウント
設定が完了したら実際にjail環境にportsツリーをマウントする。
host
# mount /usr/jails/JAILNAME/basejail/usr/ports
# mount /usr/jails/JAILNAME/basejail/usr/src
これでjail環境でportsツリーを使ってhost環境と同様にソフトをインストールしたりアップデートすることができる。
投稿者 hide : 2010年04月07日 22:58