ホストとjail環境でportsを共有する

ホスト側での設定

basejailの該当ディレクトリに、マウント用のportsの空ディレクトリを作成します。

gauntlet# mkdir /usr/jails/basejail/usr/ports

portsを、nullfsを使用してリードオンリーでマウントします。(/etc/fstabに書いておく)

gauntlet# vi /etc/fstab
/usr/ports     /usr/jails/gault.local/basejail/usr/ports     nullfs     ro     0     0

jail環境での設定

portsはリードオンリーでマウントされるので、ワーキングディレクトリなどを別途設定します。

gauntlet# jexec 1 /bin/tcsh
gault# vi /etc/make.conf
WRKDIRPREFIX=           /tmp
DISTDIR=                /var/ports/distfiles
PACKAGES=               /var/ports/packages
INDEXDIR=               /var/ports

makeしたときにfetchして来られるように、resolv.confとrc.confを設定しておきます。

gault# echo 'nameserver 192.168.100.254' >> /etc/resolv.conf
gault# echo 'defaultrouter="192.168.100.254" >>/etc/rc.conf

jail環境を再起動してmake等を行います。

gauntlet# /usr/local/etc/rc.d/ezjail.sh restart