Pbuilder: compilazione in ambienti puliti: differenze tra le versioni

minimalia
(minimalia)
Riga 2: Riga 2:
== 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]] (utilizzando "debootstrap" sono supportate solo "i386" e "amd64"), 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]] (utilizzando "debootstrap" 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.


La compilazione può essere eseguita in due modi:
La compilazione può essere eseguita in due modi:
Riga 18: Riga 18:


=== Opzioni da file di configurazione ===
=== Opzioni da file di configurazione ===
Queste vanno inserite nel file <code>/etc/pbuilder/pbuilderrc</code> (per tutti gli utenti) oppure nel file <code>.pbuilderrc</code> creato nella home dell'utente che esegue <code>pbuilder</code> . Leggere a tal proposito anche la [[manpage]] di <code>pbuilderrc</code> . Tutte le opzioni specificate in questi file vengono bypassate dalle corrispondenti opzioni specificate dalla linea di comando.<br/>
Queste vanno inserite nel file <code>/etc/pbuilder/pbuilderrc</code> (per tutti gli utenti) oppure nel file <code>.pbuilderrc</code> creato nella home dell'utente che esegue <code>pbuilder</code> . Leggere a tal proposito anche la [[manpage]] di <code>pbuilderrc</code> . Le opzioni specificate in questi file vengono bypassate dalle corrispondenti opzioni specificate dalla linea di comando.<br/>
Tutte queste opzioni, una per riga, sono nella forma:
Tutte queste opzioni, una per riga, sono nella forma:
<pre>
<pre>
Riga 28: Riga 28:


=== Opzioni da linea di comando ===
=== Opzioni da linea di comando ===
Osserviamo e opzioni più importanti:
Osserviamo le opzioni più importanti:


==== pbuilder ====
==== pbuilder ====
Riga 43: Riga 43:
; <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 77: Riga 77:
Pbuilder preleverà dalla rete il sistema base di Debian, configurerà i pacchetti scaricati e creerà il file .tgz. L'operazione richiede qualche minuto.
Pbuilder preleverà dalla rete il sistema base di Debian, configurerà i pacchetti scaricati e creerà il file .tgz. L'operazione richiede qualche minuto.


=== Aggiornamento Ambiente ===
=== Aggiornamento dell'ambiente ===
L'aggiornamento di un ambiente è altamente consigliato (così come si farebbe per una qualunque installazione di Debian), in particolare per le [[release]] [[testing]] e [[unstable]] nelle quali sono spesso presenti degli aggiornamenti che potrebbero portare ad una modifica delle dipendenze.
L'aggiornamento di un ambiente è altamente consigliato (così come si farebbe per una qualunque installazione di Debian), in particolare per le [[release]] [[testing]] e [[unstable]] nelle quali sono spesso presenti degli aggiornamenti che potrebbero portare ad una modifica delle dipendenze.


Riga 85: Riga 85:
=== Compilazione di pacchetti ===
=== Compilazione di pacchetti ===
La compilazione può avvenire in due modi:
La compilazione può avvenire in due modi:
* '''da un pacchetto di sorgenti''', tramite pbuilder
* '''da un pacchetto di sorgenti''', tramite pbuilder o pdebuild
* '''dalla directory che contiene i sorgenti''' tramite pdebuild
* '''dalla directory che contiene i sorgenti''' tramite pdebuild


Riga 104: Riga 104:


==== Dalla directory dei sorgenti ====
==== Dalla directory dei sorgenti ====
Questa procedura, a differenza di quella illustrata precedentemente, è molto più usata (almeno nel mio caso) in quanto può essere applicata direttamente alla directory dei sorgenti (si sta sempre parlando di pacchetti Debian, quindi i sorgenti devono contenere la directory <code>''debian/''</code>, che gestisce la creazione dei pacchetti.
Questa procedura, a differenza di quella illustrata precedentemente, è molto più usata (almeno nel mio caso) in quanto può essere applicata direttamente alla directory dei sorgenti (si sta sempre parlando di pacchetti Debian, quindi i sorgenti devono contenere la directory <code>''debian/''</code>, che gestisce la creazione dei pacchetti).


Una volta posizionati nella directory contenente i sorgenti, è sufficiente eseguire questo comando:
Una volta posizionati nella directory contenente i sorgenti, è sufficiente eseguire questo comando:
Riga 125: Riga 125:
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ù).


Riga 164: Riga 164:
</pre>
</pre>
In cui le diverse opzioni significano:
In cui le diverse opzioni significano:
;--architecture i386: l'architettura scelta (sono supportate solo "i386" e "amd64").
;--architecture i386: l'architettura scelta (sono supportate, se si utilizza "debootstrap", 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.
;--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]].
;--basetgz /home/pippo/pbuilder/386wheezy.tgz: il percorso e il nome del file .tgz da creare per contenere il nuovo ambiente [[chroot]].
6 999

contributi