Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 4 del 15/01/2007 11.59.45

Nascondi questo messaggio

Introduzione

Questo documento descrive i passi per predisporre una chroot jail per la costruzione dei pacchetti per Ubuntu usando [http://www.netfort.gr.jp/~dancer/software/pbuilder.html pbuilder]. E' raccomandato per gli sviluppatori o per chiunque sia interessato nella costruzione di pacchetti per Ubuntu e sistemi basati su apt. Attraverso questo strumento è possibile effettuare un discreto numero di operazioni con facilità tra le quali:

E' comunque possibile costruire i pacchetti senza l'ausilio di pbuilder, ma occorre installare preventivamente tutte le dipendenze richieste dal pacchetto, le quali rimangono presenti sul sistema anche dopo aver terminato la procedura di creazione, occupando una notevole quantità di spazio su disco senza giustificato motivo.

Installazione

Ubuntu fornisce nativamente questi pacchetti, quindi è possibile installarli con facilità usando il gestore di pacchetti preferito.

E' consigliabile usare sempre l'ultima release di pbuilder (al momento della stesura di questo documento è la 0.161). pbuilder necessita di debootstrap per poter funzionare. Anche in questo caso è consigliabile utilizzare l'ultima versione disponibile (al momento della stesura di questo documento è la 0.3.3.1).

Configurazione

L'installazione di default permette di abilitare solo il repository main al momento della creazione della chroot jail. Onde evitare problemi di dipendenze durante la procedura, è consigliabile modificare il file /etc/pbuilder/pbuilderrc adattando l'opzione COMPONENTS in questo modo:

COMPONENTS="main restricted universe multiverse"

attachment:Icone/Piccole/warning.png Alcuni utenti potrebbero avere l'esigenza di inserire anche altri repository di Ubuntu quali edgy-backports, edgy-security, edgy-updates e edgy-proposed o di terze parti.

Inizializzazione di pbuilder

Ora che la fase preparatoria è terminata, è necessario inizializzare pbuilder con il comando

sudo pbuilder create --basetgz /var/cache/pbuilder/edgy.tgz --distribution edgy

In questo modo verrà creata la chroot jail scaricando da Internet diversi pacchetti per creare un ambiente minimale ma perfettamente funzionante di Ubuntu, completamente isolato dal sistema ospitante. Avere una connessione a banda larga è consigliabile anche se non strettamente indispensabile.

Immagine(Icone/Piccole/warning.png,50,left) Le opzioni --basetgz e --distribution servono per indicare a pbuilder che versione di Ubuntu si intende gestire. Per chi non fosse interessato a mantenere più chroot jail contemporaneamente, è possibile adattare il file /etc/pbuilder/pbuilderrc modificando la variabile DISTRIBUTION secondo le proprie esigenze. In questo caso le due opzioni possono essere tranquillamente omesse, anche per i comandi che verranno presentati in seguito.

Creazione dei pacchetti

Per procedere alla creazione di un pacchetto occorre dotarsi dei relativi pacchetti sorgenti, reperibili per mezzo del comando apt-get source o direttamente dal sito http://packages.ubuntu.com. Solitamente ogni pacchetto sorgente è formato da due file, l'archivio dei sorgenti con estensione .tar.gz e il file di descrizione con estensione .dsc. A volte è presente anche l'archivio delle differenze con estensione .diff.gz. Per una corretta gestione, tali file devono essere rigorosamente nella stessa directory.

Una volta ottenuti i vari file che formano il pacchetto sorgente, occorre eseguire il comando

sudo pbuilder build --basetgz /var/cache/pbuilder/edgy.tgz --distribution edgy nomepacchetto.dsc

Inizierà il processo di creazione che comprende le seguenti fasi:

  • Scompattazione della chroot jail
  • Verifica delle dipendenze del pacchetto
  • Scaricamento delle dipendenze necessarie e loro installazione
  • Compilazione del codice sorgente
  • Creazione del pacchetto
  • Cancellazione dei file temporanei utilizzati

Se la compilazione ha avuto esito positivo, il pacchetto in formato .deb sarà disponibile nella directory /var/cache/pbuilder/result, pronto per essere utilizzato.

Creazione con pdebuild

A volte accade che si rende necessario modificare alcuni file sorgente per applicare patch oppure adattare uno o più file di controllo. Per poter procedere alla pacchettizzazione, occorre per prima cosa ottenere i sorgenti del pacchetto da compilare con il comando

dpkg-source -x nomepacchetto.dsc

Una volta terminata l'operazione, è necessario spostarsi nella directory dei sorgenti appena generata e, dopo aver apportato le modifiche desiderate, eseguire il comando

pdebuild -- --basetgz /var/cache/pbuilder/edgy.tgz --distribution edgy

In questo caso è però necessario installare alcuni pacchetti aggiuntivi:

  • devscripts
  • debhelper
  • dpatch
  • cdbs

Aggiornare la chroot jail

Ogni tanto è consigliabile aggiornare la chroot jail con le nuove versioni dei pacchetti onde evitare problemi con le dipendenze nell'installazione dei pacchetti compilati con pbuilder. Per poter fare ciò è sufficiente eseguire il comando

sudo pbuilder update --basetgz /var/cache/pbuilder/edgy.tgz --distribution edgy

Pulizia della cache

Con il tempo la cache di pbuilder può diventare estremamente voluminosa ed è consigliabile effettuare una pulizia periodica delle directory delle dipendeze eseguendo il comando

sudo pbuilder clean

attachment:Icone/Piccole/warning.png Il comando non andrà a cancellare i pacchetti creati e riposti in /var/cache/pbuilder/result.

Link


CategoryComunita