Debian

Ricerca di pacchetti Debian

Ricerca di pacchetti Debian

Debian 9, nome in codice "Stretch", ha un enorme repository di oltre 68.000 pacchetti. Che si tratti di giochi, caratteri, editor, database o strumenti di sviluppo, è probabile che lo troverai lì. La chiave, tuttavia, è trova è. A meno che tu non conosca il nome esatto del pacchetto, trovare un particolare pacchetto in un repository così grande è come cercare un ago in un pagliaio. A volte, il nome del pacchetto è diverso dal nome del programma. Ad esempio, iostat, un utile programma per riportare le statistiche di CPU e I/O del disco, è impacchettato sotto il nome sysstat. Altre volte, non conosci né il nome del pacchetto né il nome del comando. Invece, conosci solo la sua funzione, cosa dovrebbe fare.

Per cercare i pacchetti, esistono diversi metodi con diversi livelli di potenza e usabilità. Il sito web Debian ha un elenco di tutti i pacchetti Debian. Quindi, puoi utilizzare la funzione di ricerca del tuo browser o scaricare l'elenco come file di testo compresso e utilizzare grep. In ogni caso, è necessario molto lavoro manuale per filtrare l'elenco. La buona notizia è che sono disponibili potenti strumenti automatizzati per accelerare il filtraggio.

Debian fornisce gestori di pacchetti sia grafici che a riga di comando per cercare e filtrare i pacchetti. Gli strumenti basati su GUI, come Synaptic, generalmente eccellono nell'usabilità. Tuttavia, non tutte le macchine, in particolare i server di produzione, hanno il desktop grafico installato. Per quelle macchine, Synaptic semplicemente non è un'opzione. In questo post, ci concentriamo sugli strumenti da riga di comando per cercare i pacchetti Debian.


Informazioni di base

Gli amministratori di sistema Debian definiscono i sorgenti dei pacchetti nel file /etc/apt/sources.elenco. Tra le altre cose, il file specifica che solo i pacchetti di una particolare versione di Debian (e.g., Stretch vs Buster) e da alcune categorie di componenti (e.g., main, contrib e non-free) possono essere scaricati. I metadati di tutti i pacchetti idonei vengono scaricati nella cache dei pacchetti locale, tramite il comando apt-get update.

I manutentori dei pacchetti a monte possono aggiungere e rimuovere pacchetti in qualsiasi momento. Per assicurarti che la cache dei tuoi pacchetti locale contenga le informazioni sui metadati più recenti, dovresti aggiornare la cache ("apt-get update") prima di eseguire una ricerca.

Ora che sei pronto per la ricerca, puoi farlo come utente normale. Non è necessario diventare root per eseguire una ricerca. Questo perché una ricerca effettua semplicemente query, non modifiche, alla cache dei pacchetti. Inoltre, la macchina non ha nemmeno bisogno di essere in linea perché i comandi di ricerca accedono solo alla cache locale, non ai repository remoti.

L'ambito di una ricerca è limitato a quanto specificato nelle fonti.elenco file. Ad esempio, se il file consente solo pacchetti di componenti main e contrib, le tue ricerche non restituiranno pacchetti non liberi.

Riassumere:

  1. Prima di eseguire una ricerca, esegui "apt-get update" per aggiornare la cache dei pacchetti.
  2. Puoi eseguire un comando di ricerca come utente normale (nessun privilegio di root richiesto).
  3. Non è necessaria alcuna connessione Internet per eseguire un comando di ricerca.
  4. I risultati della ricerca sono limitati all'ambito definito dalle fonti.elenco file.

apt-cache

Se conosci il nome del pacchetto, anche se parzialmente, puoi passare il nome parziale come argomento dell'espressione regolare a apt-cache. Ad esempio, sai che il nome del pacchetto è una variazione del tema da dos a unix, come dostounix, dos2unix, dos-to-unix, ecc. Il comando di ricerca e il suo output sono i seguenti:

$ apt-cache search --names-only dos.+unix
dos2unix - converte le terminazioni delle righe dei file di testo tra CRLF e LF

Appunti:

  1. -names-only (o -n in breve) specifica che solo i nomi dei pacchetti, non le descrizioni, sono abbinati. (Il valore predefinito è sia il nome che la descrizione.)
  2. dos.+unix è un'espressione regolare che corrisponde al nome del pacchetto dos2unix. Fare riferimento a regex(7) per la guida alla sintassi.

Cosa fai se sai solo cosa fa il pacchetto, io.e., la sua funzione, ma non il suo nome? In questo caso, stai cercando un programma per convertire file di testo dal formato DOS a UNIX. Il comando di ricerca da utilizzare e il suo output sono i seguenti:

$  apt-cache search convert dos unix
dos2unix - converte le terminazioni delle righe dei file di testo tra CRLF e LF
capovolgi - converte le estremità delle righe dei file di testo tra i formati Unix e DOS
fondu - converti tra formati di font Mac e UNIX
tofrodos - Converte DOS <-> File di testo Unix, alias tofromdos

Per impostazione predefinita, apt-cache cerca di far corrispondere le parole chiave di ricerca sia al nome del pacchetto che alla descrizione lunga del pacchetto. La speranza qui è che le parole chiave funzionali corrispondano alle parole che il manutentore del pacchetto usa nella sua lunga descrizione. Nota che più parole chiave (converti, dos, unix) sono messe insieme con AND.

adatto

Il comando apt è uno strumento di gestione dei pacchetti più recente che unisce le funzionalità di base di apt-get e apt-cache. È progettato per essere utilizzato in modo interattivo, piuttosto che in uno script. Ad esempio, l'output apt è colorato per migliorare la leggibilità. Estetica a parte, i comandi apt e apt-cache condividono una sintassi simile, incluse le opzioni di comando.

L'esempio seguente cerca un pacchetto facendo corrispondere l'espressione regolare dos.+unix, solo per i nomi dei pacchetti (per impostazione predefinita, sia per il nome che per la descrizione).

$  apt search --names-only dos.+unix
Ordinamento... Fatto
Ricerca a testo integrale... Fatto
dos2unix/stabile, ora 7.3.4-3 amd64 [installato]
convertire le terminazioni della riga del file di testo tra CRLF e LF

apt-file

Sebbene apt-cache (e apt) possano aiutarti a cercare un pacchetto abbinando parole chiave funzionali, la ricerca è spesso incostante. Il successo dipende troppo da come il manutentore del pacchetto scrive la lunga descrizione del pacchetto. In realtà, tuttavia, potresti conoscere ulteriori informazioni sul pacchetto, come il nome del comando o un file incluso nel pacchetto. Lo strumento da utilizzare quindi è apt-file.

Il comando apt-file non è installato di default su un sistema Debian. Per installare, esegui come root:

$ apt-get install apt-file

Prima di eseguire apt-file per la prima volta, aggiorna la cache dei pacchetti aggiornando la cache dei pacchetti locale ("apt-get update").

Supponiamo di voler trovare il pacchetto che contiene il comando iostat. Il comando da utilizzare e l'output abbreviato sono i seguenti:

$ apt-file search iostat
…   <12 lines snipped>…
linux-manual-4.9: /usr/share/man/man9/rpc_count_iostats_metrics.9.gz
linux-manual-4.9: /usr/share/man/man9/rpc_free_iostats.9.gz
manpages-fr-extra: /usr/share/man/fr/man8/nfsiostat.8.gz
munin-plugins-extra: /usr/share/munin/plugins/iostat
munin-plugins-extra: /usr/share/munin/plugins/iostat_ios
nagios-plugin-check-multi: /usr/share/doc/nagios-plugin-check-multi/examples/nagiostats.cmd
nfs-common: /usr/sbin/nfsiostat
nfs-common: /usr/share/man/man8/nfsiostat.8.gz
nixstatsagent: /usr/lib/python2.7/dist-packages/nixstatsagent/plugins/iostat.pi
sysstat: /usr/bin/cifsiostat
sysstat: /usr/bin/iostat
sysstat: /usr/share/man/man1/cifsiostat.1.gz
sysstat: /usr/share/man/man1/iostat.1.gz
zsh-common: /usr/share/zsh/functions/Completion/Unix/_iostat

apt-file funziona confrontando l'argomento iostat come sottostringa con i nomi di percorso di tutti i file in un pacchetto. La ricerca sopra restituisce 46 risultati, i.e., un totale di 46 file nella cache locale contengono iostat nei loro nomi di percorso, che è molto da esaminare manualmente.

Per restringere la ricerca, trasforma l'argomento in un'espressione regolare usando il flag -x.

$  apt-file -x  search   '/iostat$'
munin-plugins-extra: /usr/share/munin/plugins/iostat
sysstat: /usr/bin/iostat

L'espressione regolare, /iostat$, trova solo i nomi di percorso che terminano esattamente con iostat. Per la sintassi delle espressioni regolari, fare riferimento a perlreref(1).

Il nuovo output ha solo 2 risultati e puoi leggere rapidamente il nome del pacchetto (sysstat) che contiene il comando iostat.


Conclusione

Le distribuzioni Linux in generale e Debian, in particolare, sono note per i loro enormi repository di pacchetti ufficiali. Ma trovare quello che desideri tra decine di migliaia di pacchi può essere una vera sfida. Siate certi che non è necessario conoscere il nome esatto del pacchetto. I comandi apt-cache e apt possono filtrare i pacchetti in base alle parole chiave nella descrizione del pacchetto. In alternativa, se conosci il nome del file binario del programma, il comando apt-file può usarlo per identificare i pacchetti che contengono un file con lo stesso nome.

I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...
I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...