Apt-file: ricerca all'interno dei pacchetti: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
→‎Configurazione: formattazione
m (→‎Configurazione: formattazione)
m (→‎Configurazione: formattazione)
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==
 
Niente di più semplice, ovviamente
==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>
<pre>
# apt-get install apt-file
# apt-get update
</pre>
</pre>




==Configurazione==
==PROCEDIAMO==


Non necessita di modifiche...
===METODO 1: `apt-get source && dpkg-buildpackage`===
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.


==Utilizzo==
Per scaricare i sorgenti, seguiamo questa procedura:
Per avere tutto in ordine, creiamo una cartella di lavoro
<pre>
$ mkdir nomepacchetto && cd nomepacchetto
</pre>


Una volta installata, dobbiamo aggiornare la lista dei file.
Ora possiamo scaricare i sorgenti:
Per fare questo è sufficiente dare il seguente comando:
<pre>
<pre>
# apt-file update
$ apt-get source nomepacchetto
</pre>
</pre>
così verranno scaricate le liste...


'''Attenzione''': sono file piuttosto corposi, fino a 8Mb...quindi vi consiglio di non usarlo con una normale connessione dial-up...
cos� facendo, scaricheremo 3 file, che verranno decompressi in una cartella
(nomepacchetto-ver.sio.ne)


Vediamo, ora, le principali funzioni:
Ora possiamo entrare in questa cartella, scaricare la patch e applicarla:
<pre>
<pre>
# apt-file update
$ cd nomepacchetto-ver.sio.ne
$ wget http://indirizzo/per/la/patch.patch
</pre>
</pre>
Aggiorna gli archivi dei contenuti dei pacchetti.


supponendo che la patch non sia compressa...
<pre>
$ patch -p1 < patch.patch
</pre>


se compressa:
<pre>
<pre>
# apt-file purge
$ zcat patch.patch | patch -p1
</pre>
</pre>
Rimuove tutti gli archivi di apt-file scaricati.


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>
<pre>
# apt-file search <testo>
# apt-get buid-dep 'nomepacchetto_da_installare'
</pre>
</pre>
Cerca, e stampa a video l'elenco dei pacchetti che contengono <testo>.


una volta giunta a termine la compilazione, troveremo (nella cartella
nomepacchetto da noi creata) una serie di file .deb!
ora possiamo installarli:
<pre>
<pre>
# apt-file list <nomepacchetto>
# dpkg -i nomepacchetto_ver.sio.ne.deb
</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 : Mosta 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`===


== Esempio ==
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.


Per cercare in quale pacchetto è contenuto un eseguibile si può usare:
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>
<pre>
# apt-file search bin/nome-eseguibile
# apt-build -p 0 --patch patch.patch install 'pacchetto'
</pre>
</pre>


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>).
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.


---- [[User:MaXeR|MaXeR]]
Bene, ora il pacchetto � installato nel vostro sistema!
1 760

contributi

Menu di navigazione