Pbuilder: compilazione in ambienti puliti: differenze tra le versioni

m
+ piccole modifiche
m (+ piccole modifiche)
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 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]], 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' l'ambiente chroot che, pertanto, resterà immutato a meno di 'update'.
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.


Se si desidera ''modificare'' un pacchetto .deb (ad esempio nel caso in cui si voglia aggiungere una [[patch]] con [[quilt]]) servirà utilizzare prima il comando "pdebuild" (fornito con Pbuilder) e successivamente il comando "pbuilder" sul nuovo file *.dsc creato con il comando precedente.
Se si desidera ''modificare'' un [[pacchetto]] .deb (ad esempio nel caso in cui si voglia aggiungere una [[patch]] con [[quilt]]) servirà utilizzare prima il comando "pdebuild" (fornito con Pbuilder) e successivamente il comando "pbuilder" sul nuovo file *.dsc creato con il comando precedente.


Il secondo metodo (pdebuild e pbuilder) è di gran lunga il più utilizzato mentre il primo (il solo pbuilder) è utile per evitare i [[bug]] di tipo [[FTBFS]] per una determinata [[release]].
Il secondo metodo (pdebuild e pbuilder) è di gran lunga il più utilizzato mentre il primo (il solo pbuilder) è utile per evitare i [[bug]] di tipo [[FTBFS]] per una determinata [[release]].
Riga 37: Riga 37:
; <code>--debbuildopts [dpkg-buildpackage options]</code> : permette di impostare delle opzioni aggiuntive per il comando ''dpkg-buildpackage'', che si occupa della creazione di un pacchetto Debian a partire dai sorgenti;
; <code>--debbuildopts [dpkg-buildpackage options]</code> : permette di impostare delle opzioni aggiuntive per il comando ''dpkg-buildpackage'', che si occupa della creazione di un pacchetto Debian a partire dai sorgenti;
; <code>--logfile [filename to output log]</code> : specifica un file di log, utile per analizzare con calma i risultati delle compilazioni;
; <code>--logfile [filename to output log]</code> : specifica un file di log, utile per analizzare con calma i risultati delle compilazioni;
; <code>--binary-arch</code> : permette di impostare l'architettura da usare per la creazione dell'ambiente (utile nel caso di supporto per più architetture (macchina a 64 bit))
; <code>--binary-arch</code> : permette di impostare l'architettura da usare per la creazione dell'ambiente (utile nel caso di supporto per più architetture (macchina a 64 bit));
; <code>--save-after-login/--save-after-exec</code> : permette di salvare lo stato della macchina al termine di una sessione interattiva, ricreando il tarball a partire dall'ambiente modificato (usare con attenzione).
; <code>--save-after-login/--save-after-exec</code> : permette di salvare lo stato della macchina al termine di una sessione interattiva, ricreando il tarball a partire dall'ambiente modificato (usare con attenzione).


Riga 55: Riga 55:


== Utilizzo ==
== Utilizzo ==
=== Creazione Ambiente ===
=== Creazione dell'ambiente ===
In questo esempio creeremo un ambiente per la distribuzione Sid, con i repository Debian '''main''', '''contrib''' e '''non-free'''.
In questo esempio creeremo un ambiente per la distribuzione [[Sid]], con i repository Debian [[main]], [[contrib]] e [[non-free]].


<pre>
<pre>
Riga 115: Riga 115:
per creare il pacchetto .deb nella directory <code>/tmp</code> .
per creare il pacchetto .deb nella directory <code>/tmp</code> .


===Firma GnuPG===
=== Firma GnuPG ===
Pbuilder permette anche la firma con chiave [[GnuPG]], molto utile in quanto evita l'utilizzo di ''deb-sign'', automatizzando il tutto!
Pbuilder permette anche la firma con chiave [[GnuPG]], molto utile in quanto evita l'utilizzo di ''deb-sign'', automatizzando il tutto!<br/>
L'unico problema (se così si può definire) è la necessità di esportare la propria chiave privata ed importarla nel [[keyring]] dell'utente root.
L'unico problema (se così si può definire) è la necessità di esportare la propria chiave privata ed importarla nel [[keyring]] dell'utente [[root]].


===File di Configurazione===
=== File di Configurazione ===
Una pratica diffusa e molto comoda per semplificare l'utilizzo di pbuider sono i file di configurazione: essi permettono, infatti, di specificare direttamente al loro interno i parametri (oltre ad offrirne molti di più).
Una pratica diffusa e molto comoda per semplificare l'utilizzo di pbuider sono i file di configurazione: essi permettono, infatti, di specificare direttamente al loro interno i parametri (oltre ad offrirne molti di più).


Un altro vantaggio, inoltre, consiste nel poter specificare altre distribuzioni (come Ubuntu, Knoppix, ecc) che altrimenti non sarebbero supportate dal pbuilder disponibile in Debian.
Un altro vantaggio, inoltre, consiste nel poter specificare altre distribuzioni (come Ubuntu, Knoppix, ecc) che altrimenti non sarebbero supportate dal pbuilder disponibile in Debian.


==Varie==
== Varie ==
===Semplifichiamo i comandi con alias===
=== Semplifichiamo i comandi con alias===
I comandi da impartire sono spesso complessi e lunghi: in questo caso ci viene in aiuta ''alias'', che permette di creare un nuovo ''comando'', alias di uno più complesso.
I comandi da impartire sono spesso complessi e lunghi: in questo caso ci viene in aiuta ''alias'', che permette di creare un nuovo ''comando'', [[alias]] di uno più complesso.


Per fare questo, è sufficiente inserire nel file <code>/root/.bashrc</code> delle righe simili alle seguenti:
Per fare questo, è sufficiente inserire nel file <code>/root/.bashrc</code> delle righe simili alle seguenti:
Riga 150: Riga 150:
alias pbuilder-update-all="pbuilder-update-sarge && pbuilder-update-etch && pbuilder-update-sid && pbuilder-update-breezy"
alias pbuilder-update-all="pbuilder-update-sarge && pbuilder-update-etch && pbuilder-update-sid && pbuilder-update-breezy"
</pre>
</pre>
I comandi elencati sono, per l'esattezza, quelli che uso io per creare i pacchetti per qualsiasi release Debian ed Ubuntu.
 


{{Autori
{{Autori
6 999

contributi