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

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
m (→‎Utilizzo: typo)
m (verificata)
 
(24 versioni intermedie di 8 utenti non mostrate)
Riga 1: Riga 1:
==Introduzione==
{{APT
|precedente=apt-cache
|successivo=apt-mark
}}
{{Versioni compatibili|Jessie|Stretch|Buster}}
== 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 o quando si ha bisogno di cercare un file appartenente a pacchetti non installati sul sistema.


Da qualche anno si sono diffusi i 'pen drive', delle pennine usb con dei chip di memoria, per portare sempre con se ogni informazione.
== Installazione ==
Linux, in questo campo, ha sempre sofferto di un problema: il mount e umount delle periferiche...
Niente di più semplice, ovviamente con [[privilegi di amministrazione]]:
Ora, grazie a questo interessante pacchetto, � possibile automatizzare questa procedura e, anzi, renderla ancora pi� semplice e comoda.
 
 
==Installazione==
Usbmount � incluso in Debian a partire da Sarge (quindi � presente anche in Testing ed Unstable).<br/>
L'installazione, quindi, � alla ''debian way'':
<pre>
<pre>
# apt-get install usbmount
# apt install apt-file
</pre>
</pre>


L'errore che si potrebbe riscontrare � la mancanza di udev, la cui risoluzione � molto semplice:
== Configurazione ==
Il file di configurazione, facoltativo e che va creato manualmente se si intendono modificare le impostazioni di default, è <code>/etc/apt/apt-file.conf</code>. Per maggiori informazioni si rimanda alla lettura del manuale (<code>man apt-file</code>).
 
== Utilizzo ==
Una volta installato, dobbiamo aggiornare la lista dei file e popolare la cache che <code>apt-file</code> utilizzerà per le sue ricerche. Per fare questo è sufficiente dare il seguente comando:
<pre>
<pre>
# apt-get install udev
# apt-file update
</pre>
</pre>
così verranno scaricati i file "Packages.gz" per i vari [[repository]] presenti nel file <code>/etc/apt/sources.list</code> e contenenti la lista di tutti i pacchetti disponibili. Questi file, a seconda dei repository impostati, possono raggiungere dimensioni di svariati MByte<br/>
La directory che conterrà la cache di <code>apt-file</code> sarà:
;~/.cache/apt-file/:se il comando è stato eseguito da utente normale
;/var/cache/apt/apt/file/:se il comando è stato eseguito da [[root]], e sarà consultabile da tutti gli utenti del sistema


Il comando non necessita di essere eseguito come root.


==Configurazione==
Vediamo, ora, le principali funzioni.


Il pacchetto non necessita di riconfigurazione, in quanto i valori di default sono ottimali. Analizziamo comunque i file di configurazione e le opzioni: il file contenente la configurazione di usbmount � '''/etc/usbmount/usbmount.conf'''.<br/>
=== Aggiornamento della cache ===
Le direttive sono:<br/>
<pre>
# apt-file update
</pre>
Aggiorna la cache di <code>apt-file</code> .<br/>
Questo è il comando che bisognerebbe eseguire sempre prima di ogni ricerca per fare in modo che quest'ultima possa operare su dati aggiornati. In alternativa è possibile creare un job di [[Cron]] che effettui l'aggiornamento della cache ad ogni avvio del sistema; per questo scopo è sufficiente eseguire il comando "crontab -e" da utente normale (o da root o da entrambi) e inserire le seguenti righe:
<pre>
# aggiornamento al boot della cache di apt-file
@reboot apt-file -N update
</pre>


; MOUNTPOINTS : Indicano le directory in cui dovranno essere montate le periferiche. Viene sempre utilizzata la prima disponibile (cosa molto comoda) e, se non sono presenti, vengono create.<br/>
=== Ricerca di un file ===
 
<pre>
; FILESYSTEMS : Contiene la lista dei filesystem da provare, quando si esegue il mount del device. Il mio consiglio � di avere prima vfat e poi msdos, per evitare problemi di 'storpiatura' dei nomi dei file.<br/>
$ apt-file search <testo>
 
</pre>
; MOUNTOPTIONS : Serve per indicare le opzioni da passare al mount del device. Se non � presente, consiglio l'aggiunta dell'opzione 'quiet' che elimina i messaggi di errore relativi all'assenza di permessi nei filesystem di tipo fat.<br/>
Cerca e mostra tutti i file che hanno <testo> nel proprio nome, oltre al pacchetto in cui sono contenuti.<br/>
 
Esempio:
; FS_MOUNTOPTIONS : Configurazioni specifiche per un determinato filesystem. La sintassi � del tipo <pre>-fstype=TYPE,OPTIONS</pre> dove '''TYPE''' � la stringa identificativa del filesystem, e '''OPTIONS''' sono le opzioni da assegnare a quel determinato filesystem (''man mount'' per i dettagli su tutte le opzioni disponibili).
<pre>
 
$ apt-file search bin/nome-eseguibile
; VERBOSE : Utile per il debug (e se qualche cosa non va come deve). In caso di dubbio, lasciare su 'no'.<br/>
</pre>
Questo comando troverà tutti i pacchetti che contengono file che cominciano per ''nome-eseguibile'' e che si trovano in una directory che finisce per bin (come <code>/bin/</code>, <code>/sbin/</code>, <code>/usr/bin</code>, <code>/usr/sbin</code>).


===Supporto a vfat===
=== Visualizzazione dei contenuti di un pacchetto ===
Nell'installazione di default non � configurato il supporto per il filesystem vfat (quello utilizzato normalmente nelle fotocamere digitali e nelle pennine usb). Per abilitarlo sono necessarie tre piccole modifiche al file di configurazione '''/etc/usbmount/usbmount.conf'''.
 
Per prima cosa dobbiamo aggiungere, alla lista dei filesystem riconoscibili, quello '''vfat'''. Dopo la modifica, la riga dell'opzione '''FILESYSTEMS''' dovrebbe essere simile alla seguente:
<pre>FILESYSTEMS="vfat ext2 ext3"</pre>
come si pu� notare ho posizionato vfat all'inizio della riga, cos� da guadagnare un po' di tempo nella fase di riconoscimento.
 
Dal messaggio di attenzione posto sopra l'opzione appena modificata notiamo che � necessario modificare anche '''MOUNTOPTIONS''', aggiungendo l'opzione ''sync'' (se non gi� presente):
<pre>MOUNTOPTIONS="sync,noexec,nodev,noatime"</pre>
 
La seconda modifica riguarda le opzioni da passare al comando di mount per il filesystem vfat... prendiamo spunto dal commento riportato sopra l'opzione '''FS_MOUNTOPTIONS''', e modifichiamo la riga nel seguente modo:
<pre>FS_MOUNTOPTIONS="-fstype=vfat,gid=floppy,dmask=0007,fmask=0117"</pre>
Ovviamente le opzioni sono personalizzabili a piacimento.
 
Per applicare i cambiamenti, riavviamo hotplug:
<pre># /etc/init.d/hotplug restart</pre>
 
==Utilizzo==
 
L'utilizzo � piuttosto semplice.
� sufficiente inserire il dispositivo, aspettare un secondo, e recarsi nella directory /media/usb (o usb0, usb1, ...), dove verr� montata la periferica.
Per poter leggere e scrivere, bisogna appartenere al gruppo 'floppy': per ottenere ci� e sufficiente un
<pre>
<pre>
# adduser nomeutente floppy
$ apt-file list <nomepacchetto>
</pre>
</pre>
Ovviamente il gruppo � modificabile nelle impostazioni di usbmount.
Mostra il contenuto di <nomepacchetto>.<br/>
Per quanto riguarda l'umount, non bisogna preoccuparsi: le periferiche sono montate con la flag 'sync' attiva, che comporta un accesso in scrittura in tempo reale. Per evitare perdite di dati basta aspettare il termine della copia dei dati, dopo di che � possibile rimuoverla direttamente (facendo attenzione a non aver aperte applicazioni che accedono al mountpoint del device).
Si noti che questo comando è molto simile a "dpkg -L <nomepacchetto>" tranne che per un aspetto non di poco conto: il pacchetto non deve necessariamente essere installato.<br/>
 
Esempio:
<pre>$ apt-file list apt</pre>
mostrerà il contenuto del pacchetto '''apt'''. L'opzione <code>--fixed-string</code> (abbreviata: <code>-F</code>) è implicita con questo comando, ma si può disabilitare con <code>--substring-match</code>, che se utilizzata mostrerà il contenuto di tutti i pacchetti che contengono la stringa ''apt'' nel loro nome.


==Conclusioni==
=== Opzioni ===
Tra le opzioni disponibili, ricordiamo quelle principali (di uso comune):
; <code>--ignore-case | -i </code>: permette di effettuare ricerca case-insensitive;
; <code>--fixed-string | -F</code>:utile per delimitare la ricerca solo al solo pattern effettivamente digitato;
; <code>--package-only | -l</code>: mostra solo il nome del pacchetto, e non quello dei file, utile quando si esegue una ricerca usando un nome molto comune;
; <code> --regexp | -x </code>: tratta come un pattern di una espressione regolare (in [[perl]] per la precisione, per maggiori informazioni si veda: <code>man pcrepattern</code>).


UsbMount � una utility ancora giovane, che sicuramente verr� migliorata, ed ampliata. Sicuramente diventer� un must su tutti i computer (sinceramente, non riesco a farne a meno ^_^)!
{{Autori
|Autore=[[User:MaXeR|MaXeR]]
|Verificata_da=
:[[Utente:S3v|S3v]] 17:31, 7 giu 2013 (CEST)
:[[Utente:Ombra|Ombra]] 01:15, 12 gen 2016 (CET)
:[[Utente:HAL 9000|HAL 9000]] 15:19, 14 lug 2019 (CEST)
|Numero_revisori=3
}}


---- [[User:MaXeR|MaXeR]]
[[Categoria:Apt]]

Versione attuale delle 13:19, 14 lug 2019

APT
Arrow left.png

Gestori di pacchetti

Comandi utili

Configurazione del sistema

Altro

Arrow right.png



Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

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 o quando si ha bisogno di cercare un file appartenente a pacchetti non installati sul sistema.

Installazione

Niente di più semplice, ovviamente con privilegi di amministrazione:

# apt install apt-file

Configurazione

Il file di configurazione, facoltativo e che va creato manualmente se si intendono modificare le impostazioni di default, è /etc/apt/apt-file.conf. Per maggiori informazioni si rimanda alla lettura del manuale (man apt-file).

Utilizzo

Una volta installato, dobbiamo aggiornare la lista dei file e popolare la cache che apt-file utilizzerà per le sue ricerche. Per fare questo è sufficiente dare il seguente comando:

# apt-file update

così verranno scaricati i file "Packages.gz" per i vari repository presenti nel file /etc/apt/sources.list e contenenti la lista di tutti i pacchetti disponibili. Questi file, a seconda dei repository impostati, possono raggiungere dimensioni di svariati MByte
La directory che conterrà la cache di apt-file sarà:

~/.cache/apt-file/
se il comando è stato eseguito da utente normale
/var/cache/apt/apt/file/
se il comando è stato eseguito da root, e sarà consultabile da tutti gli utenti del sistema

Il comando non necessita di essere eseguito come root.

Vediamo, ora, le principali funzioni.

Aggiornamento della cache

# apt-file update

Aggiorna la cache di apt-file .
Questo è il comando che bisognerebbe eseguire sempre prima di ogni ricerca per fare in modo che quest'ultima possa operare su dati aggiornati. In alternativa è possibile creare un job di Cron che effettui l'aggiornamento della cache ad ogni avvio del sistema; per questo scopo è sufficiente eseguire il comando "crontab -e" da utente normale (o da root o da entrambi) e inserire le seguenti righe:

# aggiornamento al boot della cache di apt-file
@reboot apt-file -N update

Ricerca di un file

$ apt-file search <testo>

Cerca e mostra tutti i file che hanno <testo> nel proprio nome, oltre al pacchetto in cui sono contenuti.
Esempio:

$ apt-file search bin/nome-eseguibile

Questo comando troverà tutti i pacchetti che contengono file che cominciano per nome-eseguibile e che si trovano in una directory che finisce per bin (come /bin/, /sbin/, /usr/bin, /usr/sbin).

Visualizzazione dei contenuti di un pacchetto

$ apt-file list <nomepacchetto>

Mostra il contenuto di <nomepacchetto>.
Si noti che questo comando è molto simile a "dpkg -L <nomepacchetto>" tranne che per un aspetto non di poco conto: il pacchetto non deve necessariamente essere installato.
Esempio:

$ apt-file list apt

mostrerà il contenuto del pacchetto apt. L'opzione --fixed-string (abbreviata: -F) è implicita con questo comando, ma si può disabilitare con --substring-match, che se utilizzata mostrerà il contenuto di tutti i pacchetti che contengono la stringa apt nel loro nome.

Opzioni

Tra le opzioni disponibili, ricordiamo quelle principali (di uso comune):

--ignore-case | -i
permette di effettuare ricerca case-insensitive;
--fixed-string | -F
utile per delimitare la ricerca solo al solo pattern effettivamente digitato;
--package-only | -l
mostra solo il nome del pacchetto, e non quello dei file, utile quando si esegue una ricerca usando un nome molto comune;
--regexp | -x
tratta come un pattern di una espressione regolare (in perl per la precisione, per maggiori informazioni si veda: man pcrepattern).




Guida scritta da: MaXeR Swirl-auth80.png Debianized 80%
Estesa da:
Verificata da:
S3v 17:31, 7 giu 2013 (CEST)
Ombra 01:15, 12 gen 2016 (CET)
HAL 9000 15:19, 14 lug 2019 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized