Pbuilder adalah sebuah alat bantu pada sistem operasi debian/ubuntu yang digunakan untuk membangun sebuah lingkungan dasar (chroot) debian/ubuntu untuk keperluan pembangunan pemaketan perangkat lunak pada sistem lokal. Dengan menggunakan pbuilder sebuah paket dipastikan dibangun pada lingkungan dasar ubuntu/debian yang bersih, dimana proses pemasangan paket dependensi (ketergantungan) yang dibutuhkan oleh sebuah paket akan dipasang secara otomatis,

dibandingkan dengan membangun paket pada sistem lokal secara langsung menggunakan perintah debuild atau dpkg-buildpackage, yang prosesnya mengharuskan memasang berbagai macam pustaka paket dependensi (ketergantungan) pada sistem langsung, penggunaan pbuilder lebih praktis karena pbuilder tidak akan memasang paket apapun pada sistem, seluruh proses akan dilakukan pada lingkungan chroot milik pbuilder,

A. Membuat lingkungan pbuilder,
Pasang paket pbuilder dan paket pendukung pada sistem,

sudo apt-get install ubuntu-dev-tools pbuilder debian-archive-keyring

Pbuilder yang telah selesai dipasang tidak menyediakan lingkungan (chroot) dasar yang dibutuhkan untuk membangun paket, agar dapat menggunakan pbuilder terlebih dahulu pengguna harus membuat lingkungan dasar pbuilder pada sistem, untuk keperluan tersebut sebelumnya  buat terlebih dahulu konfigurasi dasar pbuilder,

MIRRORSITE=http://ftp.jaist.ac.jp/pub/Linux/ubuntu/
COMPONENTS="main restricted universe multiverse"

Simpan pada lokasi /etc/pbuilderrc atau direktori home ~/.pbuilderrc, jika pbuilder tidak dapat menemukan konfigurasi pada direktori home ~/.pbuilderrc maka secara otomatis pbuilder akan menggunakan global (default) konfigurasi /etc/pbuilderrc.


Selanjutnya buat lingkungan dasar pbuilder, tentukan basis distribusi yang akan dibuat,sebagai contoh disini penulis membuat pbuilder dengan lingkungan  ubuntu 12.10 (quantal),

sudo pbuilder create --distribution quantal


pengguna yang ingin membuat lingkungan pbuilder 32bit pada mesin 64bit dapat menambahkan paramater --architecture i386

sudo pbuilder --create --architecture i386 --distribution quantal

Pengguna juga dapat membuat lingkungan pbuilder berbasis sistem debian dengan menambahkan paramater seperti pada perintah berikut,

sudo pbuilder create --distribution wheezy --mirror http://ftp.jaist.ac.jp/pub/Linux/debian/ --debootstrapopts "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg"

Proses pembuatan membutuhkan koneksi internet untuk mengunduh paket-paket dasar, semakin cepat koneksi internet yang digunakan semakin cepat proses akan selesai, setelah proses selesai sebuah lingkungan pbuilder (chroot) terkompresi dengan nama base.tgz akan tersimpan pada direktori /var/cache/pbuilder/


Perintah diatas jika tidak ditambahkan dengan parameter  akan menyimpan lingkungan pbuilder yang telah selesai dibuat pada lokasi standar /var/cache/pbuilder/base.tgz , jika ingin membuat berbagai macam lingkungan pbuilder dengan arsitektur yang berbeda dengan versi ubuntu/debian yang berbeda tambahkan parameter --basetgz agar pbuilder tidak menimpa (overwrite) lingkungan pbuilder yang telah dibuat,


sebagai contoh disini penulis ingin membuat lingkungan pbuilder dengan sistem debian wheezy, dan menyimpannya pada direktori /var/cache/pbuilder dengan nama wheezy-base.tgz

sudo pbuilder create --distribution wheezy --mirror http://ftp.jaist.ac.jp/pub/Linux/debian/ --basetgz /var/cache/pbuilder/wheezy-base.tgz --debootstrapopts "--keyring=/usr/share/keyrings/debian-archive-keyring.gpg

Seluruh parameter yang digunakan pada pbuilder dapat disingkat dengan terlebih dahulu mendefinisikan pada konfigurasi pbuilder /etc/pbuilderrc atau  ~/.pbuilderrc

B. Menggunakan pbuilder
Dalam beroperasi pbuilder membutuhkan debian source .dsc dari paket yang akan dibangun, dan koneksi internet untuk mengunduh paket-paket ketergantungan yang dibutuhkan dalam membangun sebuah paket,

perintah dasar untuk membangun paket menggunakan pbuilder

sudo pbuilder build package_xx.dsc

sebagai contoh penulis ingin membangun paket source nano yang sebelumnya telah diunduh,

sudo pbuilder build nano_2.2.6-1ubuntu1.dsc


Proses pembangunan paket termasuk memasang pustaka paket-paket ketergantungan yang dibutuhkan dilakukan sepenuhnya oleh pbuilder didalam lingkungan (chroot) yang telah dibuat sebelumnya,


Paket yang selesai dibangun tersimpan/berada pada direktori /var/cache/pbuilder/result


jika menggunakan lingkungan dasar pbuilder custom tambahkan parameter --basetgz sebagai contoh disini penulis membangun paket nano menggunakan lingkungan dasar pbuilder wheezy-base.tgz yang telah dibuat sebelumnya,

sudo pbuilder build --basetgz /var/cache/pbuilder/wheezy-base.tgz --buildresult /var/cache/pbuilder/result/wheezy nano_2.2.6-1ubuntu1.dsc

tambahkan parameter --buildresult untuk menentukan lokasi direktori penyimpanan hasil pemaketan,

Contoh lain penggunaan pbuilder adalah membangun paket debian (.deb) dari  paket debian source .dsc milik debian sid, experimental, atau distribusi berbasis debian lainnya, untuk digunakan pada sistem ubuntu. Sebagai contoh geany pada distribusi ubuntu 12.04 LTS hanya tersedia  versi 0.21, dan pada debian sid geany telah tersedia versi 1.22, Daripada repot-repot melakukan kompilasi dari source atau mengambil resiko dengan memasang paket debian (.deb) yang telah jadi milik debian sid, penulis memilih untuk membangunnya dari debian source .dsc geany milik debian sid menggunakan pbuilder


Untuk melakukan hal tersebut penulis mengunduh,

- geany_1.22+dfsg-2.dsc
- geany_1.22+dfsg.orig.tar.gz
- geany_1.22+dfsg-2.debian.tar.gz

dan membangunnya langsung pada pbuilder

sudo pbuilder build geany_1.22+dfsg-2.dsc

jika ingin melakukan penyesuaian/perubahan, paket debian source .dsc yang telah diunduh, terlebih dahulu ekstrak menggunakan dpkg-source -x .dsc


Lebih lanjut mengenai penggunaan pbuilder dapat merujuk pada  referensi :)

Referensi: 
https://wiki.ubuntu.com/PbuilderHowto 
http://www.netfort.gr.jp/~dancer/software/pbuilder-doc/pbuilder-doc.html