Applicare una patch ad un pacchetto Debian: differenze tra le versioni
S3v (discussione | contributi) mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 2: | Riga 2: | ||
In questo howto vedremo come sia possibile applicare una patch ad un pacchetto | In questo howto vedremo come sia possibile applicare una patch ad un pacchetto | ||
ufficiale Debian. | ufficiale Debian. Bisogna sottolineare, tuttavia, che non sempre è possibile farlo: è necessario, infatti, che il pacchetto sia stato distribuito in forma di sorgenti. | ||
==Preparazione del sistema== | ==Preparazione del sistema== | ||
Per prima cosa bisogna assicurarsi di avere, in | Per prima cosa bisogna assicurarsi di avere, in <code>/etc/apt/sources.list</code>, | ||
le sorgenti per scaricare i pacchetti di tipo deb-src: | le sorgenti per scaricare i pacchetti di tipo deb-src: | ||
<pre> | <pre> | ||
Riga 60: | Riga 55: | ||
</pre> | </pre> | ||
supponendo che la patch non sia compressa | supponendo che la patch non sia compressa: | ||
<pre> | <pre> | ||
$ patch -p1 < patch.patch | $ patch -p1 < patch.patch | ||
Riga 103: | Riga 98: | ||
propria macchina, cosa che, nel METODO 1 non avviene. | propria macchina, cosa che, nel METODO 1 non avviene. | ||
Apt-build ci mette a disposizione una opzione, | Apt-build ci mette a disposizione una opzione, <code>--patch</code>, che consente di applicare delle patch al pacchetto da installare. | ||
Vediamo, ora, come fare. | Vediamo, ora, come fare. | ||
Scarichiamo la patch: | Scarichiamo la patch: | ||
Riga 117: | Riga 112: | ||
ora mettiamoci comodi, armati di tazzona di caffè (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre: | ora mettiamoci comodi, armati di tazzona di caffè (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre: | ||
* vengono scaricate i pacchetti *-dev per la compilazione; | * vengono scaricate i pacchetti *-dev per la compilazione; | ||
* viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione | * viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione <code>--noupdate</code> per evitarlo); | ||
* vengono scaricati i sorgenti del pacchetto; | * vengono scaricati i sorgenti del pacchetto; | ||
* viene applicata la patch; | * viene applicata la patch; |
Versione delle 14:49, 9 gen 2010
Introduzione
In questo howto vedremo come sia possibile applicare una patch ad un pacchetto ufficiale Debian. Bisogna sottolineare, tuttavia, che non sempre è possibile farlo: è necessario, infatti, che il pacchetto sia stato distribuito in forma di sorgenti.
Preparazione del sistema
Per prima cosa bisogna assicurarsi di avere, in /etc/apt/sources.list
,
le sorgenti per scaricare i pacchetti di tipo deb-src:
#--CUT HERE--# #per stable deb-src http://ftp2.it.debian.org/debian/ stable main non-free contrib deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free #per testing deb-src http://ftp2.it.debian.org/debian/ testing main non-free contrib deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free #per unstable deb-src http://ftp2.it.debian.org/debian/ sid main non-free contrib deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free #--CUT HERE--#
ora aggiorniamo il contenuto del database dei pacchetti:
# apt-get update
Procediamo
Metodo 1: `apt-get source && dpkg-buildpackage`
Per scaricare i sorgenti, seguiamo questa procedura: Per avere tutto in ordine, creiamo una cartella di lavoro
$ mkdir nomepacchetto && cd nomepacchetto
Ora possiamo scaricare i sorgenti:
$ apt-get source nomepacchetto
così facendo, scaricheremo 3 file, che verranno decompressi in una cartella (nomepacchetto-ver.sio.ne)
Ora possiamo entrare in questa cartella, scaricare la patch e applicarla:
$ cd nomepacchetto-ver.sio.ne $ wget http://indirizzo/per/la/patch.patch
supponendo che la patch non sia compressa:
$ patch -p1 < patch.patch
se è compressa:
$ zcat patch.patch | patch -p1
Una volta applicata la patch, se non riceviamo errori, siamo pronti a compilare il pacchetto. Per fare questo utilizzeremo un altro tool Debian: dpkg-buildpackage
# dpkg-buildpackage
Il comando proverà a compilare il pacchetto, ed in caso di errori ci chiederà di sistemare le dipendenze (se l'errore è dovuto alla mancanza di alcune librerie) elencando tutti i pacchetti necessari, installabili con un normale
# apt-get build-dep 'nomepacchetto_da_installare'
una volta giunta a termine la compilazione, troveremo (nella cartella nomepacchetto da noi creata) una serie di file .deb! ora possiamo installarli:
# dpkg -i nomepacchetto_ver.sio.ne.deb
Bene, se non riceviamo errori...il pacchetto è installato.
Metodo 2: `apt-build`
Prima di iniziare, è d'obbligo una introduzione su apt-build. Questo tool è abbastanza giovane, e consente di compilare i pacchetti Debian ottimizzandoli per la propria macchina. Durante l'installazione vengono poste delle domande (tipo di processore, livello di ottimizzazione), e rispondendo nel modo opportuno, sarà possibile compilare i pacchetti ottimizzandoli per la propria macchina, cosa che, nel METODO 1 non avviene.
Apt-build ci mette a disposizione una opzione, --patch
, che consente di applicare delle patch al pacchetto da installare.
Vediamo, ora, come fare.
Scarichiamo la patch:
$ wget http://indirizzo/per/la/patch.patch
ora diamo il semplice comando:
# apt-build -p 0 --patch patch.patch install 'pacchetto'
ora mettiamoci comodi, armati di tazzona di caffè (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre:
- vengono scaricate i pacchetti *-dev per la compilazione;
- viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione
--noupdate
per evitarlo); - vengono scaricati i sorgenti del pacchetto;
- viene applicata la patch;
- inizia la compilazione del pacchetto:
- viene/vengono installato/i il/i pacchetto/i generato/i.
Bene, ora il pacchetto è installato nel vostro sistema!