ユーザ用ツール

サイト用ツール


os:freebsd:pkg_8:poudriere

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
os:freebsd:pkg_8:poudriere [2017/08/06 05:26] – [コンパイルオプションの設定] hayashios:freebsd:pkg_8:poudriere [2017/08/07 07:58] (現在) – [コンパイル] hayashi
行 1: 行 1:
 +====== 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
 +
 +<code>
 +# zpoolの名前
 +ZPOOL=tank01
 +
 +# マウントしたpoudriere用zfsのディレクトリ
 +ZROOTFS=/poudriere
 +
 +# 取得先を国内にしておく
 +FREEBSD_HOST=ftp://ftp2.jp.freebsd.org
 +</code>
 +
 +===== ports treeを作る =====
 +
 +  # poudriere ports -c -p <portsツリー名> -m portsnap|svn|git
 +
 +portsツリー名を省略すると/poudriere/ports/defaultに作られる。((portsツリーを共有するならこっち))
 +
 +一覧
 +
 +  # poudriere ports -l
 +
 +
 +更新
 +
 +  # poudriere ports -u -p <portsツリー名>
 +
 +削除
 +
 +  # poudriere ports -d -p <portsツリー名>
 +
 +===== 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 <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
 +
 +ここで、セット名と言う指定がありますがこの名前でオプションをまとめて管理します。これで、オプション設置画面が立ち上がります。
 +
 +このままだと、依存するportsのオプションも聞いてくるので -n で対象のみに絞ります。
 +
 +  # poudriere options -n -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
 +
 +
 +オプションの指定されたファイルは
 +
 +  * jailを指定した場合
 +====  ====
 +  /usr/local/etc/poudriere.d/<jail名>-<セット名>-options/ports名/options
 +=====  =====
 +
 +  * jailを指定しなかった場合
 +====  ====
 +  /usr/local/etc/poudriere.d/<セット名>-options/ports名/options
 +=====  =====
 +
 +と、なります。((保存形式は既存のmake configと同じなので、/var/db/ports配下をpoudriereの管理領域にコピーしてもOK))
 +
 +===== コンパイル =====
 +
 +  # poudriere bulk -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>
 +
 +-c を指定すると以前にビルドしたものやlogを消してくれます\\
 +-C を指定すると、一覧ファイルで指定したportsの以前にビルドしたものを消してくれます
 +
 +出来上がったパッケージは以下のディレクトリに pkg repo した状態で書き込まれます。((なので、ここをhttpで公開すればOK))
 +
 +  /usr/local/poudriere/data/packages/<jail名>-<portsツリー名>-<セット名>
 +===== おまけ =====
 +
 +==== make.confの優先順位 ====
 +
 +  /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
 +
 +==== src.confの優先順位 ====
 +
 +  /usr/local/etc/poudriere.d/src.conf
 +  /usr/local/etc/poudriere.d/<セット名>-src.conf
 +  /usr/local/etc/poudriere.d/<jail名>-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リポジトリを]]