usando la ricerca di apt-cache


11

Sto imparando a usare apt. Quando faccio uno apt-cache search git per vedere tutti i pacchetti che corrispondono a git, vedo un mucchio di pacchetti le cui descrizioni non hanno nulla a che fare con git. Perché è così e come posso ripararlo? (Ubuntu 12.04.2 LTS).

Inoltre, perché la funzionalità di ricerca si trova in un comando che ha "cache" nel suo nome? Cosa c'entra la funzionalità di ricerca con le cache?

Grazie.

Risposte:


13

Se vuoi solo cercare per nome, usa l' --names-onlyargomento. Per ulteriori informazioni, leggere il man apt-cache, sarebbe utile.


6

Quando si esegue un apt-cache search <package name>comando, si esegue una query con le informazioni memorizzate sul computer locale per i pacchetti disponibili. Questa è la cache dei repository "sottoscritti". Cioè, il comando sta eseguendo una query sui repository che hai impostato in USC (Ubuntu Software Center) o Synaptic.

Secondo la apt-cachepagina man, /etc/apt/sources.listè la posizione da cui recuperare le informazioni nella query. Ci sono un paio di posizioni aggiuntive per altri tipi di informazioni sul pacchetto. Vedi man apt-cacheper maggiori dettagli.

In sostanza, l'esecuzione apt-cache search gitrestituirà tutte le istanze dei pacchetti disponibili contenenti la sequenza di parole "git" nel nome del pacchetto, nonché nella descrizione del pacchetto.

Ad esempio, ciò significa che qualsiasi pacchetto che può contenere la sequenza di parole "git", come la parola "di git al", nella sua descrizione verrà restituito come risultato. Si prega di notare il grassetto nella frase precedente.

Se sei interessato solo a pacchetti che riguardano specificamente git, il gestore del controllo del codice sorgente, dovrai limitare la tua query all'utilizzo di un'espressione regolare per rendere i risultati della ricerca più restrittivi.

Per esempio:

sudo apt-cache search ^git$

restituirà risultati che contengono esplicitamente solo la frase "git" nel nome del pacchetto.

Per esempio:

sudo apt-cache search ^git$
git - fast, scalable, distributed revision control system

Il comando: sudo apt-cache search ^git

restituirà risultati per i pacchetti che iniziano con la frase "git":

Per esempio:

sudo apt-cache search ^git
git - fast, scalable, distributed revision control system
git-core - fast, scalable, distributed revision control system (obsolete)
git-doc - fast, scalable, distributed revision control system (documentation)
git-man - fast, scalable, distributed revision control system (manual pages)
gitk - fast, scalable, distributed revision control system (revision tree visualizer)
easygit - git for mere mortals
gforge-plugin-scmgit - Git plugin for FusionForge (transitional package)
git-all - fast, scalable, distributed revision control system (all subpackages)
git-annex - manage files with git, without checking their contents into git
git-arch - fast, scalable, distributed revision control system (arch interoperability)
...

Detto questo, dovrai ottimizzare le tue query sulla cache del pacchetto per essere più specifici per il tuo interesse. Spero che sia di aiuto.


" apt-cache search ^git$restituirà solo risultati che contengono" git "nel nome del pacchetto". Non capisco questo, perché, ad esempio git-man(dal secondo output che hai pubblicato) contiene anche git. Puoi spiegarci cosa significano il punto di inserimento e i simboli $? So che il punto di inserimento significa "inizia con", ma questo contraddice con il secondo output che hai pubblicato (output di ^git), perché sta ritornando easygit=).
Alaa Ali,

Oooh. I ^mezzi pacchetti e descrizioni che iniziano con git. Va bene, la seconda uscita è compresa. Quindi cosa ^git$ritorna? Pacchetti che iniziano con gite ...?
Alaa Ali,

@Alaa Pensa ai caratteri "^" e "$" come ancore alla tua query. apt-cache search ^git$restituirà, in particolare, il pacchetto git. apt-cache search ^gitrestituirà i pacchetti che iniziano con la frase "git" e saranno meno specifici.
Kevin Bowen,

Si potrebbe ottenere un risultato di ricerca più generalizzato eseguendo la query apt-cache search ^ git? `
Kevin Bowen

Per avere un output più colorato, si potrebbe migliorare il tuo comando conapt-cache search ^git | grep --color git
georg

0

Questa è una risposta indiretta alla tua domanda, ma ancora correlata ad essa poiché riguarda la gestione dei pacchetti. Personalmente uso aptitude invece di apt-get. aptitude è l' equivalente sinaptico del terminale.

Cercare,

sudo aptitude search $keyword

Altri comandi

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Per installare aptitude,

sudo apt-get install aptitude

Tieni presente che aptitude può ancora essere problematico su sistemi multiarch - quindi è ok usarlo per query / ricerche, ma non per l'installazione / rimozione di pacchetti.
Guntbert,

help.ubuntu.com/community/MultiArch spiega come aptitude può essere usato per problemi multiarch
1313

Quella pagina menziona solo aptitude why- come ho detto "usalo per le query" - anche la pagina è piuttosto vecchia (modificata il 2012-02-08) - quindi il mio avvertimento è ancora valido.
Guntbert,

Vedo. Sono un utente aptitude, quindi puoi indicarmi un articolo in cui si dice che è un problema sul sistema multiarch? Allora potrei dover tornare a apt-get.
LLT

bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , sembra che sia stato corretto di recente. Sono ancora diffidente. Debian raccomanda anche apt-get (documenti per wheezy)
guntbert

0

Installa apt-xapian-index e usa la ricerca axi-cache durante la ricerca invece di apt - cache. Otterrai risultati molto migliori

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.