|
|
Riga 1: |
Riga 1: |
| ==Introduzione== | | ==Introduzione== |
| | Apt-file è un potente motore di ricerca in grado di indicare a quale pacchetto appartiene un determinato file... sembra una cosa da poco, ma non sempre è così... soprattutto quando si ha a che fare con le compilazioni da sorgenti. |
|
| |
|
| 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...).
| |
|
| |
|
| | | ==Installazione== |
| ==Preparazione del sistema== | | Niente di più semplice, ovviamente |
| | |
| Per prima cosa bisogna assicurarsi di avere, in '''/etc/apt/sources.list''',
| |
| le sorgenti per scaricare i pacchetti di tipo deb-src:
| |
| <pre> | | <pre> |
| #--CUT HERE--# | | # apt-get install apt-file |
| #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> | | </pre> |
|
| |
|
|
| |
|
| ==PROCEDIAMO== | | ==Configurazione== |
|
| |
|
| ===METODO 1: `apt-get source && dpkg-buildpackage`===
| | Non necessita di modifiche... |
| | Nel file sono presenti due sezioni: |
| | # dove collocare i file archivio e come rinominarli (all'interno del file è presente uno specchietto riassuntivo delle variabili utilizzabili...) |
| | # le sintassi dei comandi utilizzati per scaricare i file. |
| | Queste direttive, salvo casi particolari, non necessitano di modifiche. |
|
| |
|
| Per scaricare i sorgenti, seguiamo questa procedura:
| | ==Utilizzo== |
| Per avere tutto in ordine, creiamo una cartella di lavoro
| |
| <pre>
| |
| $ mkdir nomepacchetto && cd nomepacchetto
| |
| </pre>
| |
|
| |
|
| Ora possiamo scaricare i sorgenti:
| | Una volta installata, dobbiamo aggiornare la lista dei file. |
| | Per fare questo è sufficiente dare il seguente comando: |
| <pre> | | <pre> |
| $ apt-get source nomepacchetto
| | # apt-file update |
| </pre> | | </pre> |
| | così verranno scaricate le liste... |
|
| |
|
| cos� facendo, scaricheremo 3 file, che verranno decompressi in una cartella
| | '''Attenzione''': sono file piuttosto corposi, fino a 8Mb...quindi vi consiglio di non usarlo con una normale connessione dial-up... |
| (nomepacchetto-ver.sio.ne)
| |
|
| |
|
| Ora possiamo entrare in questa cartella, scaricare la patch e applicarla:
| | Vediamo, ora, le principali funzioni: |
| <pre> | | <pre> |
| $ cd nomepacchetto-ver.sio.ne
| | # apt-file update |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre> | | </pre> |
| | Aggiorna gli archivi dei contenuti dei pacchetti. |
| | |
|
| |
|
| supponendo che la patch non sia compressa...
| |
| <pre> | | <pre> |
| $ patch -p1 < patch.patch
| | # apt-file purge |
| </pre> | | </pre> |
| | Rimuove tutti gli archivi di apt-file scaricati. |
|
| |
|
| 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> | | <pre> |
| # dpkg-buildpackage | | # apt-file search <testo> |
| </pre> | | </pre> |
| | Cerca, e stampa a video l'elenco dei pacchetti che contengono <testo>. |
|
| |
|
| 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> | | <pre> |
| # dpkg -i nomepacchetto_ver.sio.ne.deb | | # apt-file list <nomepacchetto> |
| </pre> | | </pre> |
| | Stampa a video il contenuto dei pacchetti corrispondenti a <nomepacchetto>. |
|
| |
|
| Bene, se non riceviamo errori...il pacchetto installato.
| |
|
| |
|
| | tra le opzioni disponibili, ricordo quelle principali (di uso comune...) |
| | ; --ignore-case | -i : Permette di effettuare ricerca case-insensitive |
| | ; --regexp | -x : Tratta come un pattern di una espressione regolare. |
| | ; --package-only : Mostra solo il nome del pacchetto, e non quello dei file, utile quando si esegue una ricerca usando come un nome molto comune. |
|
| |
|
| ===METODO 2: `apt-build`===
| |
|
| |
|
| Prima di iniziare, � d'obbligo una introduzione su apt-build.
| | == Esempio == |
| 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.
| | Per cercare in quale pacchetto è contenuto un eseguibile si può usare: |
| Vediamo, ora, come fare.
| |
| Scarichiamo la patch:
| |
| <pre>
| |
| $ wget http://indirizzo/per/la/patch.patch
| |
| </pre>
| |
|
| |
|
| ora diamo il semplice comando:
| |
| <pre> | | <pre> |
| # apt-build -p 0 --patch patch.patch install 'pacchetto' | | # apt-file search bin/nome-eseguibile |
| </pre> | | </pre> |
|
| |
|
| ora mettiamoci comodi, armati di tazzona di caff� (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre:
| | troverà tutti i pacchetti che contengono file che comincino per ''nome-eseguibile'' e che siano in una directory che finisce per bin (come <tt>/bin/</tt>, <tt>/sbin/</tt>, <tt>/usr/bin</tt>, <tt>/usr/sbin</tt>). |
| * 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!
| |
| | |
|
| |
|
| ---- [[User:MaXeR|MaXeR]] | | ---- [[User:MaXeR|MaXeR]] |
| | [[Categoria:Apt]] |