Applicare una patch ad un pacchetto Debian: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
(Prima versione)
 
(Prima versione)
Riga 3: Riga 3:
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.
Prima di proseguire, per�, vedremo quando non possibile farlo:
Prima di proseguire, però, vedremo quando non è possibile farlo:
* il pacchetto non stato distribuito anche in forma di sorgenti (capita per
* il pacchetto non è stato distribuito anche in forma di sorgenti (capita per
qualche repository non ufficiale e per alcuni pecchetti uff. (una volta mi era
qualche repository non ufficiale e per alcuni pecchetti uff. (una volta mi era
successo...).
successo...).
Riga 51: Riga 51:
</pre>
</pre>


cos� facendo, scaricheremo 3 file, che verranno decompressi in una cartella
così facendo, scaricheremo 3 file, che verranno decompressi in una cartella
(nomepacchetto-ver.sio.ne)
(nomepacchetto-ver.sio.ne)


Riga 65: Riga 65:
</pre>
</pre>


se compressa:
se è compressa:
<pre>
<pre>
$ zcat patch.patch | patch -p1
$ zcat patch.patch | patch -p1
Riga 77: Riga 77:
</pre>
</pre>


Il comando prover� a compilare il pacchetto, ed in caso di errori ci chieder�
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
di sistemare le dipendenze (se l'errore è dovuto alla mancanza di alcune
librerie) elencando tutti i pacchetti necessari, installabili con un normale
librerie) elencando tutti i pacchetti necessari, installabili con un normale
<pre>
<pre>
Riga 91: Riga 91:
</pre>
</pre>


Bene, se non riceviamo errori...il pacchetto installato.
Bene, se non riceviamo errori...il pacchetto è installato.




===METODO 2: `apt-build`===
===METODO 2: `apt-build`===


Prima di iniziare, d'obbligo una introduzione su apt-build.
Prima di iniziare, è d'obbligo una introduzione su apt-build.
Questo tool abbastanza giovane, e consente di compilare i pacchetti Debian
Questo tool è abbastanza giovane, e consente di compilare i pacchetti Debian
ottimizzandoli per la propria macchina. Durante l'installazione vengono poste
ottimizzandoli per la propria macchina. Durante l'installazione vengono poste
delle domande (tipo di processore, livello di ottimizzazione), e rispondendo
delle domande (tipo di processore, livello di ottimizzazione), e rispondendo
nel modo opportuno, sar� possibile compilare i pacchetti ottimizzandoli per la
nel modo opportuno, sarà possibile compilare i pacchetti ottimizzandoli per la
propria macchina, cosa che, nel METODO 1 non avviene.
propria macchina, cosa che, nel METODO 1 non avviene.


Riga 115: Riga 115:
</pre>
</pre>


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 '''--noupdate''' per evitarlo);
* viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione '''--noupdate''' per evitarlo);
Riga 123: Riga 123:
* viene/vengono installato/i il/i pacchetto/i generato/i.
* viene/vengono installato/i il/i pacchetto/i generato/i.


Bene, ora il pacchetto installato nel vostro sistema!
Bene, ora il pacchetto è installato nel vostro sistema!

Versione delle 20:18, 12 mag 2005

Introduzione

In questo howto vedremo come sia possibile applicare una patch ad un pacchetto ufficiale Debian. Prima di proseguire, però, vedremo quando non è possibile farlo:

  • il pacchetto non è stato distribuito anche in forma di sorgenti (capita per

qualche repository non ufficiale e per alcuni pecchetti uff. (una volta mi era successo...).


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 buid-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!