poudriere は、FreeBSD package を作成したり、試験に用いられる BSD ライセンスのユーティリティです。 このユーティリティは、FreeBSD jails を用いて、 独立したコンパイル環境を構築します。 これらの jail を使って、 インストールされている FreeBSD のバージョンとは異なるバージョンの package を作成したり、ホストが amd64 のシステムでは、 i386 用の package を構築することもできます。 構築された package のレイアウトは公式のミラーと同じです。 これらの package は、pkg(8) や他の package 管理ツールで利用できます。
ports-mgmt/poudriere package
または port から poudriere
をインストールしてください。
アプリケーションをインストールすると、サンプルの設定ファイルである
/usr/local/etc/poudriere.conf.sample
もインストールされます。
このファイルを
/usr/local/etc/poudriere.conf
にコピーして、
ローカルの環境に合わせて編集してください。
poudriere を実行するシステムで、
必ずしも ZFS を使う必要はありませんが、
有用です。ZFS を使う際には、
/usr/local/etc/poudriere.conf
の中で ZPOOL
を指定する必要があります。
そして、FREEBSD_HOST
を最も近いミラーに設定してください。
CCACHE_DIR
を定義することで、
devel/ccache
を使ったコンパイルのキャッシュが可能となり、
コンパイルで頻繁に使われるコードの構築時間を短縮できます。
poudriere データセットを
/poudriere
にマウントされた独立したツリーに置くと良いでしょう。
他の値はデフォルトの値で十分です。
同時に走らせるコンパイル数の定義には、 認識されたコアプロセッサの数が用いられます。 RAM もしくはスワップ空間のどちらかの仮想メモリを十分用意してください。 もし、仮想メモリを使い切ってしまったら、jail の構築は中断し、 異常なメッセージが表示されることでしょう。
設定が終わったら、poudriere
を初期化して、必要とする FreeBSD ツリーおよび jail、
そして ports ツリーをインストールしてください。
jail の名前を -j
、
FreeBSD のバージョンを -v
で指定してください。
FreeBSD/amd64 システムでは、
-a
を使ってアーキテクチャに
i386
または amd64
を設定できます。
デフォルトでは、uname
で表示されるアーキテクチャに設定されます。
#
poudriere jail -c -j
====>> Creating 10amd64 fs... done ====>> Fetching base.txz for FreeBSD 10.0-RELEASE amd64 /poudriere/jails/10amd64/fromftp/base.txz 100% of 59 MB 1470 kBps 00m42s ====>> Extracting base.txz... done ====>> Fetching src.txz for FreeBSD 10.0-RELEASE amd64 /poudriere/jails/10amd64/fromftp/src.txz 100% of 107 MB 1476 kBps 01m14s ====>> Extracting src.txz... done ====>> Fetching games.txz for FreeBSD 10.0-RELEASE amd64 /poudriere/jails/10amd64/fromftp/games.txz 100% of 865 kB 734 kBps 00m01s ====>> Extracting games.txz... done ====>> Fetching lib32.txz for FreeBSD 10.0-RELEASE amd64 /poudriere/jails/10amd64/fromftp/lib32.txz 100% of 14 MB 1316 kBps 00m12s ====>> Extracting lib32.txz... done ====>> Cleaning up... done ====>> Jail 10amd64 10.0-RELEASE amd64 is ready to be used10amd64
-v10.0-RELEASE
#
poudriere ports -c -p
====>> Creating local fs... done ====>> Extracting portstree "local"... Looking up portsnap.FreeBSD.org mirrors... 7 mirrors found. Fetching public key from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Fetching snapshot generated at Tue Feb 11 01:07:15 CET 2014: 94a3431f0ce567f6452ffde4fd3d7d3c6e1da143efec76100% of 69 MB 1246 kBps 00m57s Extracting snapshot... done. Verifying snapshot integrity... done. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Tue Feb 11 01:07:15 CET 2014 to Tue Feb 11 16:05:20 CET 2014. Fetching 4 metadata patches... done. Applying metadata patches... done. Fetching 0 metadata files... done. Fetching 48 patches. (48/48) 100.00% done. done. Applying patches... done. Fetching 1 new ports or files... done. /poudriere/ports/tester/CHANGES /poudriere/ports/tester/COPYRIGHT [...] Building new INDEX files... done.local
一つのコンピュータ上で、 複数の設定、複数の jails、異なる port ツリーから poudriere は port をビルドできます。 これらのコンビネーションのカスタム設定は セット と呼ばれます。 詳細については、ports-mgmt/poudriere もしくは ports-mgmt/poudriere-devel をインストール後、 poudriere(8) の CUSTOMIZATION の章をご覧下さい。
ここで示される基本設定では、jail, ports そしてセット固有の
make.conf
を
/usr/local/etc/poudriere.d
に置いてください。
この例でのファイル名
は、jail 名、port 名そして、セット名の組み合わせで付けられています。
システムの 10amd64-local-workstation
-make.confmake.conf
と、この新しいファイルは、ビルド時に結合され、構築した jail
で用いられる make.conf
を作成します。
ビルドする package を
に記載してください。10amd64-local-workstation
-pkglist
editors/emacs devel/git ports-mgmt/pkg ...
特定の ports に対し、 オプションや依存を設定してください。
#
poudriere options -j
10amd64
-plocal
-zworkstation
-f10amd64-local-workstation-pkglist
最後に packages を構築し、 package リポジトリを生成してください。
#
poudriere bulk -j
10amd64
-plocal
-zworkstation
-f10amd64-local-workstation-pkglist
このコマンドの実行中に Ctrl+t
を押すと、現在のビルド状況が表示されます。
Poudriere は
/poudriere/logs/bulk/
にあるファイルも構築します。
このファイルをウェブサーバと共に使うことで、
ビルド情報を表示できます。jailname
これが終わると、poudriere リポジトリを package のインストールに利用できるようになります。
poudriere を利用する上でのより多くの情報については、 poudriere(8) およびメインのウェブサイトである https://github.com/freebsd/poudriere/wiki を参照してください。
カスタムリポジトリと公式のリポジトリの両方を並行して使用することは可能ですが、
公式リポジトリを無効にすると有用な場合があります。
このように設定するには、設定ファイルを作成し、
設定ファイルの中で公式リポジトリを無効にしてください。
/usr/local/etc/pkg/repos/FreeBSD.conf
を作成して、以下を含めてください。
FreeBSD: { enabled: no }
通常は、HTTP 経由で poudriere
リポジトリをクライアントコンピュータに公開すると簡単です。
package ディレクトリ (たとえば、
/usr/local/poudriere/data/packages/
) を公開するようにウェブサーバを設定してください。
この例で 10amd64
10amd64
は構築名です。
もし、package リポジトリの URL が
http://pkg.example.com/10amd64
であれば、
リポジトリの設定ファイルである
/usr/local/etc/pkg/repos/custom.conf
は、
以下のようになります。
custom: {
url: "http://pkg.example.com/10amd64
",
enabled: yes,
}
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。