4.2.2 パッケージのビルド
pbuilder でパッケージをビルドするには、 pbuilder –build コマンドにソースパッケージの*.dsc ファイルを引数とし
て渡します。すると pbuilder は、/var/cache/pbuilder/build/(pbuilder-buildpackage の PID) というディレクトリに
base.tar.gz を展開し、この中でビルド依存パッケージのインストールと、パッケージのビルドを行ないます。ビルドが終
了すると build ディレクトリは削除され、ビルド済みのバイナリパッケージが/var/cache/pbuilder/result 以下に作成さ
れているはずです。
$ sudo pbuilder --build jd_2.7.0~beta100627-1.dsc
I: using fakeroot in build.
I: Current time: Tue Feb 15 19:48:46 JST 2011
I: pbuilder-time-stamp: 1297766926
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/base.tgz]
(...snip...)
I: Installing the build-deps
-> Attempting to satisfy build-dependencies
(...snip...)
I: cleaning the build env
I: removing directory /var/cache/pbuilder/build//8063 and its subdirectories
4.2.3 複数の pbuilder 環境
pbuilder はデフォルトで/var/cache/pbuilder/base.tgz を使用しますが、–basetgz オプションを使用することで任意
のパス/ファイルを指定することができます。これを利用して複数の pbuilder 環境を使いわけることが可能です。
$ sudo pbuilder --create --distribution sid --architecture i386 --basetgz /var/cache/pbuilder/sid-i386.tgz
$ sudo pbuilder --create --distribution squeeze --architecture amd64 --basetgz /var/cache/pbuilder/squeeze-amd64.tgz
$ sudo pbuilder --build jd_2.7.0~beta100627-1.dsc --basetgz /var/cache/pbuilder/sid-i386.tgz
$ sudo pbuilder --build jd_2.7.0~beta100627-1.dsc --basetgz /var/cache/pbuilder/squeeze-amd64.tgz
4.2.4 pbuilder 環境へのログイン
パッケージビルド時に自動的に使用される pbuilder の chroot 環境ですが、ここへ chroot してシェルを取ることも可能
です。そのためには pbuilder –login コマンドを使用します。この機能を利用すれば、 squeeze 上で sid の環境をちょっ
と試す、といったことも可能です。
$ sudo pbuilder --login --basetgz /var/cache/pbuilder/sid-i386.tgz
4.2.5 pbuilder 環境の更新
パッケージをビルドするためには、 chroot 環境を常に最新に保っておく必要があります。既存の環境をアップデートす
るには pbuilder –update コマンドを使用します。
$ sudo pbuilder --update --basetgz /var/cache/pbuilder/sid-i386.tgz
また前述のように展開した pbuilder 環境は使い捨てで、環境に対して行なった変更はビルド終了後に破棄されます。こ
れによって常にクリーンな環境が保たれるわけですが、場合によっては恒久的な変更を加えたい場合があるかもしれませ
ん。そんな場合は、–login –save-after-login コマンドでカスタマイズが可能です。–save-after–login つきで chroot 環境
にログインして何らかの変更を加えると、ログアウト時に base.tgz を更新してくれます。 chroot 環境に「 パッケージを
追加しておきたい」「 設定を変更しておきたい」などという時に便利です。
$ sudo pbuilder --login --save-after-login --basetgz /var/cache/pbuilder/sid-i386.tgz
I: Building the build Environment
I: extracting base tarball [/var/cache/pbuilder/sid-i386.tgz]
(...snip...)
# exit
(...snip...)
I: creating base tarball [/var/cache/pbuilder/sid-i386.tgz]
I: cleaning the build env
I: removing directory /var/cache/pbuilder/build//679 and its subdirectories
9