#title パーソナルビルダー"pbuilder" パッケージ構築環境としてpbuilderを使うことで、パッケージをchroot環境を用いてビルドすることができます。もちろん'''pbuilder'''を使わなくてもバイナリパッケージを構築することはできます。ですが、パッケージのbuild-dependencyに記述されたパッケージをあらかじめシステムにインストールしておく必要があります。ですがpbuilderであれば、パッケージが最小のUbuntu環境内で構築されるので、もしもbuild-dependencyが間違っていれば、それを確認することが出来ます。{{{debian/control}}}ファイルの内容に従ってbuild-dependencyに記述されたパッケージが自動的にインストールされます。 以下はpbuilder環境をインストールし、利用し、そしてアップデートしていくための簡単なガイドです。ですが、'''pbuilder'''環境を使っていくためには、このガイドでは触れられていない細かな要素を知る必要があります。問題に遭遇したり、より詳細な情報を必要とするのであれば、'''pbuilder'''のmanページを見る必要があるでしょう。そこには多くの情報が掲載されています。 <> == pbuilder環境のインストールと設定 == 最初に行うべきことは、'''pbuilder'''のインストールです(もっとも分かりやすい作業でもあります)。すでにインストールされている環境よりも新しいリリース向けの'''pbuilder'''環境を必要とするのであれば、新しいリリースの'''debootstrap.deb'''を入手し、手動でインストールする必要があります。これは[[http://packages.ubuntu.com]]で入手できるでしょう。pbuilderの作成のために、次のコマンドを実行します。 {{{ sudo pbuilder create --distribution \ --othermirror "deb http://archive.ubuntu.com/ubuntu universe multiverse" }}} には、pbuilder環境を作りたいリリース名を入れます(たとえば"edgy")。もしも複数の'''pbuilder'''を構築したければ、望みの場所に圧縮されたpbuilder環境を作成するために、 ''--basetgz'' オプションを与えても良いでしょう。デフォルトでは {{{/var/cache/pbuilder/base.tgz}}} になります。もしも ''--basetgz'' オプションを使うのであれば、他のpbuilderコマンドで構築された圧縮ファイルを指定することで、それを利用した環境が構築されます。 [[attachment:UbuntuPackagingGuideJa/conventions/note.png|{{attachment:UbuntuPackagingGuideJa/conventions/note.png}}]] '''debootstrap'''が最小限のUbuntu環境をダウンロードし、pbuilder環境を構築できるまでにはかなりの時間が必要です。 [[attachment:UbuntuPackagingGuideJa/conventions/tip.png|{{attachment:UbuntuPackagingGuideJa/conventions/tip.png}}]] より柔軟に作業をおこなうためには、pbuilder環境の作成(場合によっては複数のpbuilder環境の作成)をシェルスクリプトを用いて行うと良いでしょう。 <> == pbuilderの利用 == pbuilder環境を作成したのなら、次のコマンドを用いてソースパッケージからバイナリパッケージを作成できます。 {{{ sudo pbuilder build *.dsc }}} これは、カレントディレクトリにある全てのソースパッケージをビルドします。作成された.debファイルやソースパッケージは、{{{/var/cache/pbuilder/result/}}}にあります(''--buildresult''オプションを用いて場所を変更することができます)。 <> == pbuilderのアップデート == 特に変化の早い開発中のリリースに向けてパッケージを構築しようとするのであれば、ソースパッケージのテストの前に、必ずpbuilderを最新に更新しなければなりません。これにより、確実に依存関係が解決されます。pbuilderの更新には、次のコマンドを用います。 {{{ sudo pbuilder update }}} もしも新しいリリースに沿ったpbuilder環境にしたければ、'''pbuilder update'''に''--distribution''オプションを与えることでアップグレードできます。 {{{ sudo pbuilder update --distribution --override-config }}} <> == 複数のpbuilder == ここまでは、ひとつの'''pbuilder'''環境を維持するための情報です。複数の'''pbuilder'''環境を作りたいのであれば、利用したい'''pbuilder'''環境ごとにシェルスクリプトを作成すると良いでしょう。例となるスクリプトは {{{/usr/share/doc/pbuilder/examples/pbuilder-distribution.sh}}} にあります。単にこのスクリプトをパスの通った場所にコピーし({{{~/bin/}}}に置いて、そこにパスを通すと便利でしょう)、それを使い方にあわせて編集するのがいいでしょう。通常であれば、DISTRIBUTION変数を変更し、上記のように--othermirrorを追加すれば良いはずです。あとは、直接'''pbuilder'''を呼び出すのではなく、このスクリプトを呼び出してください。 ||<:20%>,,<=,, ||<:60%>||<:20%> ,,=>,,|| ||<:20%>[[UbuntuPackagingGuideJa/gs-tools|パッケージングツール]]||<:60%>'''パーソナルビルダー"pbuilder"'''||<:20%> [[UbuntuPackagingGuideJa/basic-chap|基本的なパッケージング]]||