[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 64.   Pacchetti Debian sorgenti, dipendenze e ricompilazione

Può capitare di avere la necessità di ricompilare un pacchetto con opzioni differenti. Attraverso il sistema APT è possibile gestire in modo semplice la ricompilazione dei pacchetti sorgenti della distribuzione GNU/Linux Debian.

64.1   Origine dei pacchetti sorgenti

Come per i pacchetti compilati, anche per accedere ai pacchetti sorgenti attraverso il sistema APT, è necessario predisporre il file /etc/apt/sources.list. In questo caso, servono direttive che iniziano con la parola chiave deb-src:

deb-src uri_inizio_distribuzione distribuzione componente...

Ecco alcuni esempi:

deb-src http://mi.mirror.garr.it/mirrors/debian stable    main contrib
deb-src http://mi.mirror.garr.it/mirrors/debian testing   main contrib
deb-src http://mi.mirror.garr.it/mirrors/debian unstable  main contrib

Naturalmente, nello stesso file /etc/apt/sources.list possono convivere anche le direttive relative all'origine di pacchetti già compilati e pronti per l'uso.

64.2   Installazione degli strumenti di sviluppo necessari

Ogni pacchetto sorgente ha bisogno dei propri strumenti di sviluppo per poter procedere alla sua ricompilazione. Di certo sono necessari due pacchetti: fakeroot e build-essential:

apt-get install fakeroot build-essential[Invio]

Per il resto, fortunatamente, c'è un modo semplice per installare esattamente ciò che serve:

apt-get build-dep nome_pacchetto[Invio]

Per esempio, si suppone di voler installare ciò che serve per ricompilare il pacchetto mc (Midnight Commander):

apt-get build-dep mc[Invio]

64.3   Acquisizione dei sorgenti

Il pacchetto dei sorgenti può essere acquisito senza privilegi particolari, pertanto si può operare in qualità di un utente comune. Ci si posiziona all'interno di una directory che si considera appropriata, quindi si procede:

apt-get source nome_pacchetto[Invio]

Continuando con l'ipotesi di voler ricompilare il pacchetto mc (Midnight Commander), il comando è il seguente:

apt-get source mc[Invio]

Supponendo di accedere alla versione 4.6.1-2, si ottengono i file mc_4.6.1.orig.tar.gz, mc_4.6.1-2.dsc e mc_4.6.1-2.diff.gz; inoltre si ottiene la sottodirectory mc-4.6.1/, contenente i sorgenti estratti; il tutto a partire dalla directory corrente.

64.4   Modifica dei sorgenti

Per modificare i sorgenti si entra nella directory che li contiene e si procede con le modifiche che si ritengono necessarie. Nella maggior parte dei casi si tratta solo di modificare il modo in cui viene avviato lo script configure, ma per questo occorre intervenire nel file debian/rules, oppure, come nel caso particolare di mc, nel file debian/rocks.

cd mc-4.6.1[Invio]

...

64.5   Ricostruzione del pacchetto e installazione

Dopo le modifiche ci si posiziona all'inizio della directory dei file sorgenti, quindi si procede con il comando seguente:

dpkg-buildpackage -rfakeroot -uc -us[Invio]

Si ottiene la ricompilazione e la creazione di un pacchetto Debian pronto per l'installazione, ma nella directory che precede la posizione corrente (la directory genitrice).

Supponendo di avere ottenuto il file ../mc_4.6.1-2_i386.deb, lo si può installare così:

dpkg -i ../mc_4.6.1-2_i386.deb[Invio]

Come si vede dall'esempio, ovviamente, per installare il pacchetto servono i privilegi dell'amministratore del sistema.

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome pacchetti_debian_sorgenti_dipendenze_e_ricompilazione.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!