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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
Nessun oggetto della modifica
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]]

Versione delle 21:18, 2 gen 2010

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.


Installazione

Niente di più semplice, ovviamente

# apt-get install apt-file


Configurazione

Non necessita di modifiche... Nel file sono presenti due sezioni:

  1. dove collocare i file archivio e come rinominarli (all'interno del file è presente uno specchietto riassuntivo delle variabili utilizzabili...)
  2. le sintassi dei comandi utilizzati per scaricare i file.

Queste direttive, salvo casi particolari, non necessitano di modifiche.

Utilizzo

Una volta installata, dobbiamo aggiornare la lista dei file. Per fare questo è sufficiente dare il seguente comando:

# apt-file update

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

Vediamo, ora, le principali funzioni:

# apt-file update

Aggiorna gli archivi dei contenuti dei pacchetti.


# apt-file purge

Rimuove tutti gli archivi di apt-file scaricati.


# apt-file search <testo>

Cerca, e stampa a video l'elenco dei pacchetti che contengono <testo>.


# apt-file list <nomepacchetto>

Stampa a video il contenuto dei pacchetti corrispondenti a <nomepacchetto>.


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.


Esempio

Per cercare in quale pacchetto è contenuto un eseguibile si può usare:

# apt-file search bin/nome-eseguibile

troverà tutti i pacchetti che contengono file che comincino per nome-eseguibile e che siano in una directory che finisce per bin (come /bin/, /sbin/, /usr/bin, /usr/sbin).


MaXeR