ユーザ用ツール

サイト用ツール


サイドバー

Index

はじめてのおつかい






DokuWiki整形記法


PlayGround



os:freebsd:pkg_8:poudriere

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 <portsツリー名> -m portsnap|svn|git

portsツリー名を省略すると/poudriere/ports/defaultに作られる。1)

一覧

# 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

と、なります。2)

コンパイル

# poudriere bulk -p <portsツリー名> -j <jail名> -z <セット名> -f <パッケージリスト>

-c を指定すると以前にビルドしたものやlogを消してくれます
-C を指定すると、一覧ファイルで指定したportsの以前にビルドしたものを消してくれます

出来上がったパッケージは以下のディレクトリに pkg repo した状態で書き込まれます。3)

/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

参照

1)
portsツリーを共有するならこっち
2)
保存形式は既存のmake configと同じなので、/var/db/ports配下をpoudriereの管理領域にコピーしてもOK
3)
なので、ここをhttpで公開すればOK
os/freebsd/pkg_8/poudriere.txt · 最終更新: 2017/08/07 16:58 by hayashi