Persiapan Pembangunan Paket
Halaman ini berisi langkah-langkah untuk mempersiapkan proses pembangunan paket dengan pbuilder.
Langkah-Langkah
- Set variabel informasi pengembang yaitu $DEBFULLNAME dan $DEBEMAIL di $HOME/.bash_profile
$ vim .bash_profile
export DEBFULLNAME="Iwan Setiawan" export DEBEMAIL="stwn[@]kuliax[.]org" export EDITOR="vim" export PATH="/usr/local/bin:/usr/bin:/bin:$HOME/tmp/devel/scripts"
- Jalankan perintah `source` untuk me-restart shell
$ source .bash_profile
- Sunting berkas .pbuilderrc
$ vim .pbuilderrc
MIRRORSITE=http://localhost/debian/ OTHERMIRROR="deb http://localhost/kuliax ./" DEBOOTSTRAP="cdebootstrap" DISTRIBUTION="lenny" COMPONENTS="main contrib non-free" AUTO_DEBSIGN=yes APTCACHE=$HOME/tmp/pbuilder/cache/ BUILDPLACE=$HOME/tmp/pbuilder/build/ BUILDRESULT=$HOME/tmp/repo/kuliax/ BINDMOUNTS=$HOME/tmp/repo/kuliax/ HOOKDIR=$HOME/tmp/pbuilder/hook/
Sesuaikan $MIRRORSITE dengan kondisi sistem dan buat direktori $APTCACHE, $HOOKDIR, $BUILDPLACE, dan $BUILDRESULT jika belum ada
mkdir $HOME/tmp/pbuilder mkdir $HOME/tmp/pbuilder/{cache,hook,build,result}$HOOKDIR digunakan untuk menentukan direktori skrip hook dan $BINDMOUNTS adalah direktori yang akan dikaitkan saat pbuilder berjalan di lingkungan chroot dengan struktur direktori yang sama. Gunakan direktori yang terkait dengan partisi yang punya ruang kosong banyak pada isian BUILDPLACE, khususnya pada pemaketan paket-paket yang besar seperti kernel Linux
- Buat sistem dasar untuk pbuilder1)
$ sudo pbuilder create
- Optimasi: jika pengembang mempunyai RAM yang cukup besar, untuk mempercepat proses pembangunan paket dengan pbuilder, kaitkan sistem berkas tmpfs ke direktori $BUILDPLACE
sudo mount -t tmpfs tmpfs $BUILDPLACE
Hook
Hook adalah skrip yang akan dieksekusi di dalam proses pbuilder.
- Buat skrip hook
vim $HOOKDIR/D01apt-ftparchive
dengan isi
#!/bin/sh # # hook pbuilder script # based on script from "Using pbuilder to backport Debian packages" # 2010 Iwan Setiawan <stwn at kuliax.org> BUILDRESULT=/media/repo/kuliax apt-get install apt-utils ( cd $BUILDRESULT; apt-ftparchive packages . > $BUILDRESULT/Packages ) cat<<EOF >/etc/apt/sources.list deb file://$BUILDRESULT ./ deb http://localhost/debian/ stable main contrib non-free deb http://localhost/backports/ lenny-backports main contrib non-free EOF cat<<EOF >/etc/apt/preferences Package: * Pin: release o=Kuliax Pin-Priority: 400 Package: * Pin: release a=lenny-backports Pin-Priority: 300 Package: * Pin: release a=stable Pin-Priority: 200 EOF apt-get update
Huruf D [ada nama skrip hook menunjukkan bahwa skrip tersebut akan dieksekusi setelah image pbuilder diekstrak dan sebelum dependensi pembangunan paket diperiksa
- Set mode eksekusi pada skrip di atas
chmod +x D01apt-ftparchive
- Buat symlink
ln -s D01apt-ftparchive F01apt-ftparchive
Huruf F menunjukkan bahwa skrip dieksekusi ketika shell login dijalankan di lingkungan pbuilder.
Pemutakhiran
- Sunting berkas .pbuilderrc
vim .pbuilderrc
- Mutakhirkan sistem dasar pbuilder
sudo pbuilder update --override-config
Catatan
- Pastikan /etc/pbuilderrc berisi situs cermin yang dapat diakses lewat jaringan khususnya web (http). Jika pengembang mempunyai repositori paket lenny di direktori lokal misal /media/repo/, pasang server jejaring Apache dan buat symlink dari /var/www/debian ke /media/repo/debian/ atau direktori repo yang seharusnya. Isi pbuilderrc menjadi:
MIRRORSITE=http://localhost/debian/
atau masukkan ke dalam .pbuilderrc seperti contoh pada langkah-langkah di atas
- Jangan gunakan perangkat removable seperti external USB drive untuk direktori BUILDPLACE dan HOOKDIR, khususnya yang dikaitkan (mount) melalui HAL atau front-end aplikasi seperti nautilus atau konqueror karena konfigurasi mount adalah noexec dan nodev
- Untuk membersihkan direktori BUILDPLACE dan APTCACHE gunakan perintah
$ sudo pbuilder clean