poudriereは自前のpkgngレポジトリを作るツール
※2017.08.01:現在作業中
必要なもの
poudriereはjailを作成してその中でパッケージをビルドします。
※メモリを食うので注意。2Gでも簡単に落ちました
# pkg install poudriere
poudriere用にzfsを切り出してマウント
zfs create -o mountpoint=/poudriere tank01/poudriere
/usr/local/etc/poudriere.conf
# zpoolの名前 ZPOOL=tank01 # マウントしたpoudriere用zfsのディレクトリ ZROOTFS=/poudriere # 取得先を国内にしておく FREEBSD_HOST=ftp://ftp2.jp.freebsd.org
# poudriere ports -c -p <portsツリー名> -m portsnap|svn|git
portsツリー名を省略すると/poudriere/ports/defaultに作られる。1)
一覧
# poudriere ports -l
更新
# poudriere ports -u -p <portsツリー名>
削除
# poudriere ports -d -p <portsツリー名>
poudriere jailでターゲット毎にjailを作成します
# poudriere jail -c -j 103amd64 -v 10.3-RELEASE -a amd64 # poudriere jail -c -j 111amd64 -v 11.1-RELEASE -a amd64
# poudriere jail -l JAILNAME VERSION ARCH METHOD TIMESTAMP PATH 103amd64 10.3-RELEASE-p20 amd64 ftp 2017-08-01 18:06:23 /usr/local/poudriere/jails/103amd64 111amd64 11.1-RELEASE amd64 ftp 2017-08-01 17:59:44 /usr/local/poudriere/jails/111amd64
poudriere用のjail環境にセキュリティアップデートを適用する場合
# poudriere jail -u -j [jail名]
# poudriere jail -d -j [jail名]
作成するパッケージ名(origin)のリストを作ります
$ cat ./pkg.list editor/emacs
ports名のoriginは www/apache24 とか lang/perl5.18 みたいな書き方です。
以下のコマンドで表示できます
# pkg search -o apache
# poudriere options -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
ここで、セット名と言う指定がありますがこの名前でオプションをまとめて管理します。これで、オプション設置画面が立ち上がります。
このままだと、依存するportsのオプションも聞いてくるので -n で対象のみに絞ります。
# poudriere options -n -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
オプションの指定されたファイルは
/usr/local/etc/poudriere.d/<jail名>-<セット名>-options/ports名/options
/usr/local/etc/poudriere.d/<セット名>-options/ports名/options
と、なります。2)
# poudriere bulk -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
-c を指定すると以前にビルドしたものやlogを消してくれます
-C を指定すると、一覧ファイルで指定したportsの以前にビルドしたものを消してくれます
出来上がったパッケージは以下のディレクトリに pkg repo した状態で書き込まれます。3)
/usr/local/poudriere/data/packages/<jail名>-<portsツリー名>-<セット名>
/usr/local/etc/poudriere.d/make.conf /usr/local/etc/poudriere.d/<セット名>-make.conf /usr/local/etc/poudriere.d/<ports名>-make.conf /usr/local/etc/poudriere.d/<jail名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<ports名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<セット名>-make.conf /usr/local/etc/poudriere.d/<jail名>-<ports名>-<セット名>-make.conf
/usr/local/etc/poudriere.d/src.conf /usr/local/etc/poudriere.d/<セット名>-src.conf /usr/local/etc/poudriere.d/<jail名>-src.conf