Translation(s): English - Italiano
Dove è? (in Debian)
- In quale pacchetto è?
- Dove è?
Le risposte a queste domande, ed altre ancora, per il proprio sistema Debian...
Una delle domande più frequenti su Debian è "Dove è?"
Per fortuna questa è una di quelle domande che hanno metodi ben codificati che permettono di trovare le risposte.
Contents
- Dove è? (in Debian)
- "Quando si digita 'pippo', quale file viene eseguito?"
- "Dove è il file 'pippo.pluto' nel sistema?"
- "Sul sistema c'è un file 'quux', a quale pacchetto appartiene"
- "Sul sistema non è presente il file 'quux', ma serve. Quale pacchetto deve essere installato?"
- "È stato installato il pacchetto 'zort', come si può sapere quali file ha portato?"
- Quali file sono usati per la configurazione del pacchetto 'troz'?
- "Quale pacchetto ha la roba 'noot'?"
- "Quale programma o funzione che fa 'snork' è presente sul sistema?"
Qualche parola sugli strumenti:
Gli strumenti di cui si parla in questo documento (apropos, /msg apt in ?FreeNode, dlocate, dpkg, find, grep, grep-available, locate, http://packages.debian.org/, whatis, whereis) hanno tutti molte opzioni in più e sono molto più potenti di quel poco che viene qui mostrato. Per sfruttare al massimo questi strumenti, così come altri, vedere le loro pagine man.
"Quando si digita 'pippo', quale file viene eseguito?"
Strumenti:
which pippo
whereis pippo
type pippo (almeno per gli utenti con bash)
Quando si digita un nome di programma sulla riga di comando, la shell cerca un file eseguibile con quel nome in un insieme di directory elencate dalla variabile d'ambiente PATH ed esegue il primo eseguibile trovato che corrisponde. Si può visualizzare il valore attuale di PATH digitando 'echo $PATH' e lo si può modificare, come ogni altra variabile d'ambiente (vedere la documentazione della propria shell per i dettagli).
Il comando which mostra il percorso completo dell'eseguibile che verrebbe eseguito. Esiste anche un comando whereis che dice la posizione sia del programma sia della sua pagina man, ma whereis cerca solo in un percorso prefissato e non trova cose che sono in aggiunte locali al proprio PATH.
Il comando type mostra informazioni anche su comandi che non sono propriamente file eseguibili. Esso stesso non è un file eseguibile ma un comando interno della shell bash, la shell comune in Debian. Per aiuto provare help type.
"Dove è il file 'pippo.pluto' nel sistema?"
Strumenti:
locate pippo.pluto
find / -name pippo.pluto
Il comando GNU find è il coltellino svizzero tra gli strumenti di ricerca nel file system ed è così potente che ciò che viene mostrato qui non rappresenta nemmeno la superficie delle sue funzionalità. Lo si può usare nel modo più basilare per trovare la posizione di un file, in questo modo: 'find / -name pippo.pluto'. '/' è la directory da cui far partire la ricerca, perciò se si ha un'idea di dove cercare, si può specificarla qui e find non perderà tempo a cercare nel resto del disco. Per esempio, se si stesse cercando un file pippo.pluto nella propria directory home, si userebbe: 'find $HOME -name pippo.pluto'.
Anche il comando locate è utile per questo semplice compito di trovare file e spesso darà il risultato molto più velocemente di find. Usa un database della maggior parte dei nomi di file nel sistema (che è configurabile) e, dato che questa informazione è già tutta presente nel database, locate non deve cercare in giro in tutto il disco come fa find. Il modo di uso di locate è semplicemente 'locate pippo.pluto'.
Il lato negativo di locate è che la creazione di questo database di nomi di file ha un suo prezzo, perciò viene di solito fatta una volta al giorno (da un compito di cron). Ciò significa che se si sta cercando un file che esiste da meno di un giorno, si deve forzare l'aggiornamento del database eseguendo il comando updatedb (o /etc/cron.daily/find), oppure si deve usare find.
Notare che se il file che si sta cercando è stato installato dal sistema di gestione dei pacchetti di Debian, gli strumenti usati per rispondere alle domande seguenti possono spesso rispondere anche a questa, perciò possono essere usati al posto di quelli appena descritti.
"Sul sistema c'è un file 'quux', a quale pacchetto appartiene"
Strumenti:
dpkg -S quux
dlocate quux
apt-file search quux
Se si desidera scoprire a quale particolare pacchetto Debian sia associato un file installato, si può usare uno di questi comandi. La relazione tra dlocate e dpkg -S è molto simile a quella tra locate e find descritta sopra. dlocate è molto più veloce, ma non è sempre aggiornato con i cambiamenti dell'ultimo minuto per ciò che riguarda i file installati di recente.
Notare che dlocate non è presente in modo predefinito in tutti i sistemi, perciò potrebbe essere necessario installarlo.
apt-file, benché non il metodo migliore, può essere usato per trovare file nel sistema, ma usa un database che può essere aggiornato, come può non esserlo. Vedere la sezione seguente per maggiori dettagli.
"Sul sistema non è presente il file 'quux', ma serve. Quale pacchetto deve essere installato?"
Strumenti:
zgrep Contents-<ARCH>.gz
Su wiki:Self:OPN IRC: /msg apt find quux
apt-file search quux
Trovare informazioni su file che non sono presenti di solito richiede andare a cercare altrove. Una fonte di informazioni è il comodo e bello modulo di ricerca web di packages.debian.org. Se si è connessi alla Rete Open Projects, si può anche chiedere al bot IRC apt con '/msg apt find quux'.
Se si desidera essere in grado di fare interrogazioni su questo tipo di informazioni in locale, si può recuperare un file Contents che elenca tutti i file in tutti i pacchetti di una particolare distribuzione. Tutti i mirror Debian contengono questo file nella sottodirectory appropriata in debian/dists/ con il nome "Contents-ARCH.gz", dove ARCH è il nome dell'architettura della macchina (es. i386 o powerpc). Perciò per ottenere l'elenco di tutti i file in ciascun pacchetto della distribuzione testing per l'architettura i386, si deve prendere debian/dists/testing/Contents-i386.gz dal proprio mirror Debian preferito.
Una volta ottenuto il file Contents, si può cercare un file particolare digitando 'zgrep quux Contents-<ARCH>.gz'. zgrep è semplicemente un grep che permette di cercare in file compressi senza prima scompattarli con gunzip.
Esiste anche uno strumento che fa una cosa simile al metodo descritto in precedenza: apt-file. Si può uare apt-get install apt-file, poi apt-file update per aggiornare il suo database (necessario solo una volta ogni tanto). Poi si può usare apt-file search quux per ottenere un elenco di tutti i pacchetti che contengono un file il cui nome contiene l'espressione regolare 'quux'. Il vantaggio di questo metodo è che si tratta di uno strumento Debian, è più facile da mantenere, più facile da usare e funziona off-line (cioè non è necessaria la connessione alla rete come quando si usa packages.debian.org).
"È stato installato il pacchetto 'zort', come si può sapere quali file ha portato?"
Strumenti:
dpkg -L zort
dlocate -L zort
cat /var/lib/dpkg/info/zort.list
Se si è appensa installato un pacchetto, ma non si è sicuri da dove iniziare ad usarlo, si può richiedere un elenco di tutti i file che questo ha installato. In questo modo, si possono scoprire i nomi dei file di documentazione e degli eseguibili.
Notare che dlocate non viene installato in modo predefinito su tutti i sistemi, perciò potrebbe essere necessario installarlo.
Quali file sono usati per la configurazione del pacchetto 'troz'?
Strumenti:
dlocate -conf troz
cat /var/lib/dpkg/info/troz.conffiles
Se si vuole sapere quali file sono usati da un pacchetto per le impostazioni della propria configurazione, questi comandi lo dicono. Questi file saranno quelli da modificare per regolare il pacchetto secondo i propri desideri, anche se la maggior parte dei pacchetti non richiede modificazioni.
I file di configurazione sono speciali anche perché, a differenza degli altri file associati ad un pacchetto, non vengono cancellati quando un pacchetto viene rimosso. Ciò permette di installare, rimuovere e aggiornare pacchetti, di passare da un pacchetto ad un altro e di tornare al vecchio se si cambia idea, senza mai perdere la propria configurazione.
Se si decide di non volere veramente mai più un pacchetto, eliminandolo con purge, invece di rimuoverlo, ripulirà anche tutti i file di configurazione.
"Quale pacchetto ha la roba 'noot'?"
Strumentis:
apt-cache search noot
grep-available noot
Forse si sta cercando un pacchetto con, per esempio, freecell, ma non si desidera cercare in base al nome del file perché non si conosce il nome esatto di nessun file nel pacchetto. Ciò che si vuole fare è cercare nelle descrizioni dei pacchetti disponibili. Uno qualsiasi di questi metodi funzionerà. grep-available è di fatto solo un'interfaccia diversa a apt-cache, ma per alcuni può essere più comoda essendo più simile a grep. Tuttavia grep-available non è installato in modo predefinito su tutti i sistemi, perciò potrebbe essere necessario installarlo.
"Quale programma o funzione che fa 'snork' è presente sul sistema?"
Strumenti:
apropos snork
In realtà, questa domanda può spesso trovare risposta usando gli strumenti descritti per quella precedente. Questa domanda fornisce però una scusa per parlare di apropos. apropos cerca nella descrizione di una riga dei file o delle funzioni fornita dalle loro pagine man, e restituisce un elenco di cose che appaiono rilevanti. Per esempio, se si volesse vedere un elenco di tutte le utilità presenti nel sistema per lavorare su file HTML, si potrebbe usare 'apropos html'. Per ulteriori dettagli su un particolare programma, si può procedere leggendo la sua pagina man.
Questa pagina è stata originariamente scritta da KevinTurner il 25/2/2001. Sono ora disponibili altri strumenti che all'epoca non esistevano o che lui semplicemente non usava (es. dpkg-iasearch e apt-file); questo documento dovrebbe essere aggiornato per contenere anche queste informazioni.
2002/12/08 18:51 UTC (via web): Si dovrebbe parlare di dpkg-www, è molto utile per i principianti.