Pbuilder: compilazione in ambienti puliti: differenze tra le versioni

+ Paragrafo "Esempi/Compilazione per diverse architetture"
(+ Paragrafo "Esempi/Compilazione per diverse architetture")
Riga 1: Riga 1:
{{Versioni compatibili}}
{{Versioni compatibili}}
== Introduzione ==
== Introduzione ==
Pbuilder è uno strumento che permette di creare un ambiente pulito per la compilazione e il test esclusivamente dei pacchetti Debian. Inoltre può essere usato anche per effettuare i backport, compilazioni per diverse [[architettura|architetture]], compilazioni particolari e tutto quello che può richiedere l'uso di un ambiente pulito e controllato.<br/>
Pbuilder è uno strumento che permette di creare un ambiente pulito per la compilazione e il test esclusivamente dei pacchetti Debian. Inoltre può essere usato anche per effettuare i backport, compilazioni per diverse [[architettura|architetture]] (sono supportate solo "i386" e "amd64"), compilazioni particolari e tutto quello che può richiedere l'uso di un ambiente pulito e controllato.<br/>
Il principale vantaggio di utilizzare Pbuilder consiste nel fatto che tutte le librerie necessarie alla compilazione verranno scaricate (di default in <code>//var/cache/pbuilder/aptcache</code>) all'occorrenza dal [[mirror]] predefinito e utilizzate nell'ambiente [[chroot]] creato; il tutto senza 'sporcare' il proprio sistema.
Il principale vantaggio di utilizzare Pbuilder consiste nel fatto che tutte le librerie necessarie alla compilazione verranno scaricate (di default in <code>//var/cache/pbuilder/aptcache</code>) all'occorrenza dal [[mirror]] predefinito e utilizzate nell'ambiente [[chroot]] creato; il tutto senza 'sporcare' il proprio sistema.


Riga 151: Riga 151:
</pre>
</pre>


== Esempi ==
=== Compilazione per diverse architetture ===
Se si vuole compilare un [[pacchetto]] sorgente per una [[architettura]] diversa da quella della propria macchina (es. compilare un pacchetto per "i386" su una macchina "amd64"), è necessario innanzitutto creare l'ambiente "i386":
<pre>
# pbuilder --architecture i386 --distribution wheezy --basetgz /home/pippo/pbuilder/386wheezy.tgz create
</pre>
In cui le diverse opzioni significano:
;--architecture i386: l'architettura scelta (sono supportate solo "i386" e "amd64").
;--distribution wheezy: la distribuzione per cui compilare il pacchetto. Si può omettere questa opzione se si intende utilizzare una [[suite]] uguale a quella utilizzata dal proprio sistema.
;--basetgz /home/pippo/pbuilder/386wheezy.tgz: il percorso e il nome del file .tgz da creare per contenere il nuovo ambiente [[chroot]].
Ora bisogna abilitare il [[multiarch]] per poter usare l'architettura "i386":
<pre>
# dpkg --add-architecture i386
</pre>
e accertarsi della corretta aggiunta:
<pre>
# dpkg --print-foreign-architectures
i386
</pre>
Modificare il file "/etc/apt/sources.list" inserendo:
<pre>
deb [arch=i386] http://ftp.it.debian.org/debian wheezy main
deb-src [arch=i386] http://ftp.it.debian.org/debian wheezy main
</pre>
Adattare queste righe alle proprie esigenze ([[mirror]] diverso, [[release]] scelta, [[sezione]] etc.) e poi eseguire:
<pre>
# apt-get update
</pre>
Adesso è tutto pronto per scaricare i file sorgente e lanciare la compilazione. Spostarsi in una directory a propria scelta (magari creata appositamente) e poi:
<pre>
# apt-get source --download-only apt:i386/wheezy
# pbuilder build --basetgz /home/pippo/pbuilder/386wheezy.tgz apt_0.9.7.9+deb7u7.dsc
</pre>
Anche in questo caso si devono adattare i comandi in base all'architettura per cui si vuol compilare, alla release scelta e al file .dsc ottenuto con il comando "apt-get source" (in questo caso sono, rispettivamente, "i386", "wheezy" e "apt_0.9.7.9+deb7u7.dsc").<br/>
Al termine delle diverse operazioni eseguite da "pbuilder", il pacchetto .deb compilato per architettura "i386" sarà presente nella directory <code>/var/cache/pbuider/result</code>.
Per disabilitare il multiarch e ritornare alla situazione di partenza per il proprio sistema, rimuovere (o commentare) le righe aggiunte al file <code>sources.list</code> e infine:
<pre>
# dpkg --remove-architecture i386
# dpkg --print-foreign-architectures
# apt-get update
</pre>


{{Autori
{{Autori
6 999

contributi