|
|
Riga 1: |
Riga 1: |
| ==Introduzione==
| | In questa categoria sono presenti le guide riguardanti l''''Advanced Packaging Tool'''. |
| | |
| 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:
| |
| <pre>
| |
| #--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--#
| |
| </pre>
| |
| ora aggiorniamo il contenuto del database dei pacchetti:
| |
| <pre>
| |
| # apt-get update
| |
| </pre>
| |
| | |
| | |
| ==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
| |
| <pre>
| |
| $ mkdir nomepacchetto && cd nomepacchetto
| |
| </pre>
| |
| | |
| Ora possiamo scaricare i sorgenti:
| |
| <pre>
| |
| $ apt-get source nomepacchetto
| |
| </pre>
| |
| | |
| 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:
| |
| <pre>
| |
| $ cd nomepacchetto-ver.sio.ne
| |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre>
| |
| | |
| supponendo che la patch non sia compressa...
| |
| <pre>
| |
| $ patch -p1 < patch.patch
| |
| </pre>
| |
| | |
| se � compressa:
| |
| <pre>
| |
| $ zcat patch.patch | patch -p1
| |
| </pre>
| |
| | |
| 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
| |
| <pre>
| |
| # dpkg-buildpackage
| |
| </pre>
| |
| | |
| 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
| |
| <pre>
| |
| # apt-get buid-dep 'nomepacchetto_da_installare'
| |
| </pre>
| |
| | |
| una volta giunta a termine la compilazione, troveremo (nella cartella
| |
| nomepacchetto da noi creata) una serie di file .deb!
| |
| ora possiamo installarli:
| |
| <pre>
| |
| # dpkg -i nomepacchetto_ver.sio.ne.deb
| |
| </pre>
| |
| | |
| 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:
| |
| <pre>
| |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre>
| |
| | |
| ora diamo il semplice comando:
| |
| <pre>
| |
| # apt-build -p 0 --patch patch.patch install 'pacchetto'
| |
| </pre>
| |
| | |
| 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!
| |