Il Personal Builder: pbuilder

Using pbuilder as a package builder allows you to build the package from within a chroot environment. You can build binary packages without using pbuilder, but you must have all the build dependencies installed on your system first. However, pbuilder allows the packager to check the build dependencies because the package is built within a minimal Ubuntu installation, and the build dependencies are downloaded according to the debian/control file.

Questa è una breve guida all'installazione, l'utilizzo e l'aggiornamento di un ambiente pbuilder, comunque, ci sono molti dettagli dell'utilizzo di pbuilder che esulano da questa guida. La pagina man di pbuilder ha molte informazioni e dovrebbe essere consultata se si hanno problemi o si ha bisogno di informazioni più dettagliate.

Installare e configurare l'ambiente pbuilder

The first, and perhaps most obvious, thing to do is to install pbuilder. If you want to create a pbuilder for a release newer than the one you currently have installed, you will need to manually install the debootstrap .deb (from http://packages.ubuntu.com) from the newer release. To create a pbuilder execute:

sudo pbuilder create --distribution <distro> \
	--othermirror "deb http://archive.ubuntu.com/ubuntu <distro> universe multiverse"
		

where <distro> is the release you want (edgy for instance) to create the pbuilder for. If you would like to create more than one pbuilder environment you can append the --basetgz flag with the desired location for the compressed pbuilder environment. The default is /var/cache/pbuilder/base.tgz. If you do choose to use --basetgz you will need to use it with the other pbuilder commands so pbuilder knows which compressed build environment to use.

[Nota]

Creating a pbuilder environment will take some time as debootstrap essentially downloads a minimal Ubuntu installation.

[Suggerimento]

A more flexible way to create a pbuilder (and perhaps multiple pbuilders) is to use a shell script.

Utilizzo di pbuilder

Adesso che si ha un pbuilder funzionante si possono costruire i pacchetti binari a partire dal pacchetto sorgente invocando:

sudo pbuilder build *.dsc

Questo compilerà tutti i pacchetti sorgente nella directory corrente. I risultanti .deb e pacchetti sorgente potranno essere trovati in /var/cache/pbuilder/result/ (che può essere cambiata con il flag --buildresult).

Aggiornare pbuilder

Bisognerebbe sempre avere un pbuilder aggiornato mentre si testano i pacchetti, specialmente quando si compila per una release di sviluppo che cambia rapidamente, per assicurare che le dipendenze siano soddisfatte correttamente. Per aggiornare il pbuilder utilizzare:

sudo pbuilder update

Se si desidera aggiornare il pbuilder ad una nuova release si può utilizzare pbuilder update in combinazione con il flag --distribution:

sudo pbuilder update --distribution <newdistro> --override-config

Pbuilder multipli

Tutte le informazioni fin qui descritte in questa sezione su pbuilder sono relative ad un singolo pbuilder. Se vuoi creare più di un pbuilder puoi creare uno script di shell per gestire la configurazione per ogni pbuilder che desideri creare. Un esempio di tale script si trova in /usr/share/doc/pbuilder/examples/pbuilder-distribution.sh. Puoi semplicemente copiare questo esempio da qualche parte nel tuo path (per esempio è utile inserirlo in ~/bin/ e aggiungendo questa directory al tuo path) e quindi modificarlo a seconda delle tue necessità. Normalmente dovrai modificare solamente la variabile DISTRIBUTION e aggiungere --othermirrors come indicato in precedenza. Puoi quindi richiamare questo script invece di eseguire pbuilder direttamete.