====== poudriere ======
poudriereは自前のpkgngレポジトリを作るツール
※2017.08.01:**現在作業中**
===== 準備 =====
必要なもの
* zpool(7GB以上)
* 新しめのFreeBSD
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
===== ports treeを作る =====
# poudriere ports -c -p -m portsnap|svn|git
portsツリー名を省略すると/poudriere/ports/defaultに作られる。((portsツリーを共有するならこっち))
一覧
# poudriere ports -l
更新
# poudriere ports -u -p
削除
# poudriere ports -d -p
===== jailの作成 =====
poudriere jailでターゲット毎にjailを作成します
* -c 作成
* -j jail名
* -v FreeBSDバージョン
* -a アーキテクチャ(i386、amd64)
* -d 削除
* -l 一覧
* -s 開始
* -k 停止
* -u 更新
# 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 -j -z <セット名> -f <パッケージリスト>
ここで、セット名と言う指定がありますがこの名前でオプションをまとめて管理します。これで、オプション設置画面が立ち上がります。
このままだと、依存するportsのオプションも聞いてくるので -n で対象のみに絞ります。
# poudriere options -n -p -j -z <セット名> -f <パッケージリスト>
オプションの指定されたファイルは
* jailを指定した場合
==== ====
/usr/local/etc/poudriere.d/-<セット名>-options/ports名/options
===== =====
* jailを指定しなかった場合
==== ====
/usr/local/etc/poudriere.d/<セット名>-options/ports名/options
===== =====
と、なります。((保存形式は既存のmake configと同じなので、/var/db/ports配下をpoudriereの管理領域にコピーしてもOK))
===== コンパイル =====
# poudriere bulk -p -j -z <セット名> -f <パッケージリスト>
-c を指定すると以前にビルドしたものやlogを消してくれます\\
-C を指定すると、一覧ファイルで指定したportsの以前にビルドしたものを消してくれます
出来上がったパッケージは以下のディレクトリに pkg repo した状態で書き込まれます。((なので、ここをhttpで公開すればOK))
/usr/local/poudriere/data/packages/--<セット名>
===== おまけ =====
==== make.confの優先順位 ====
/usr/local/etc/poudriere.d/make.conf
/usr/local/etc/poudriere.d/<セット名>-make.conf
/usr/local/etc/poudriere.d/-make.conf
/usr/local/etc/poudriere.d/-make.conf
/usr/local/etc/poudriere.d/--make.conf
/usr/local/etc/poudriere.d/-<セット名>-make.conf
/usr/local/etc/poudriere.d/--<セット名>-make.conf
==== src.confの優先順位 ====
/usr/local/etc/poudriere.d/src.conf
/usr/local/etc/poudriere.d/<セット名>-src.conf
/usr/local/etc/poudriere.d/-src.conf
===== 参照 =====
[[https://www.slideshare.net/YuichiroNaito/custom-package-building-with-poudriere?ref=https://freebsd-workshop.connpass.com/event/51676/presentation/?utm_campaign=new_event_links_to_participant&utm_source=notifications&utm_medium=email&utm_content=detail_btn|Custom Package Building with Poudriere]]
[[http://d.zinrai.info/blog/html/2014/06/14/freebsd_10_poudriere.html|poudriereで自前のpkgリポジトリを作る]]
[[http://april.fool.jp/blogs/2014/02/poudriere%E3%81%A7homebrew-pkg%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92/|POUDRIEREでHOMEBREW(自前) PKGリポジトリを]]