Verwenden der Apt-Cache-Suche

10

Ich lerne, wie man apt benutzt. Wenn ich ein mache apt-cache search git , um alle Pakete zu sehen, die mit git übereinstimmen, sehe ich eine Reihe von Paketen, deren Beschreibungen nichts mit git zu tun haben. Warum ist das so und wie kann ich das beheben? (Ubuntu 12.04.2 LTS).

Warum wird die Suchfunktion auch in einem Befehl gefunden, dessen Name "Cache" enthält? Was hat die Suchfunktion mit Caches zu tun?

Vielen Dank.

Jason Posit
quelle

Antworten:

12

Wenn Sie nur nach Namen suchen möchten, verwenden Sie das --names-onlyArgument. Für weitere Informationen lesen Sie die man apt-cache, es wäre nützlich.

ssoto
quelle
6

Wenn Sie einen apt-cache search <package name>Befehl ausführen , führen Sie eine Abfrage für die auf Ihrem lokalen Computer gespeicherten Informationen nach verfügbaren Paketen durch. Dies ist der Cache aus Ihren "abonnierten" Repositorys. Das heißt, der Befehl führt eine Abfrage für die Repositorys durch, die Sie in USC (Ubuntu Software Center) oder Synaptic eingerichtet haben.

Laut apt-cacheManpage /etc/apt/sources.listist dies der Ort, an dem Informationen in der Abfrage abgerufen werden sollen. Es gibt einige zusätzliche Speicherorte für andere Arten von Paketinformationen. Siehe man apt-cachefür weitere Details.

Im Wesentlichen werden beim Ausführen apt-cache search gitalle Instanzen verfügbarer Pakete zurückgegeben, die die Wortfolge "git" im Paketnamen sowie in der Paketbeschreibung enthalten.

Dies bedeutet beispielsweise, dass jedes Paket, das möglicherweise die Wortfolge "git" enthält, wie das Wort "di git al" in seiner Beschreibung, ebenfalls als Ergebnis zurückgegeben wird. Bitte beachten Sie die Fettschrift im vorherigen Satz.

Wenn Sie nur an Paketen interessiert sind, die sich speziell mit git - dem Versionsverwaltungsmanager - befassen, müssen Sie Ihre Abfrage auf die Verwendung eines regulären Ausdrucks beschränken, um die Suchergebnisse restriktiver zu gestalten.

Beispielsweise:

sudo apt-cache search ^git$

gibt Ergebnisse zurück, die explizit nur die Phrase "git" im Paketnamen enthalten.

Beispielsweise:

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

Der Befehl: sudo apt-cache search ^git

gibt Ergebnisse für Pakete zurück, die mit der Phrase "git" beginnen:

Beispielsweise:

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

Das heißt, Sie müssen Ihre Abfragen des Paket-Cache optimieren, um spezifischer auf Ihr Interesse zu reagieren. Hoffe das hilft.

Kevin Bowen
quelle
" apt-cache search ^git$gibt nur Ergebnisse zurück, die" git "im Paketnamen enthalten". Ich verstehe das nicht, weil zum Beispiel git-man(aus der zweiten Ausgabe, die Sie gepostet haben) auch enthält git. Können Sie erklären, was das Caret und die $ -Symbole bedeuten? Ich weiß, dass das Caret "beginnt mit" bedeutet, aber dann widerspricht dies der zweiten Ausgabe, die Sie gepostet haben (Ausgabe von ^git), weil sie zurückgibt easygit=).
Alaa Ali
Oooh. Das ^bedeutet Pakete und Beschreibungen , die mit beginnen git. Okay, die zweite Ausgabe wird verstanden. Was kommt also ^git$zurück? Pakete, die mit gitund ... beginnen?
Alaa Ali
@Alaa Stellen Sie sich die Zeichen "^" und "$" als Anker für Ihre Abfrage vor. apt-cache search ^git$wird speziell das Git-Paket zurückgeben. apt-cache search ^gitgibt Pakete zurück, die mit der Phrase "git" beginnen und weniger spezifisch sind.
Kevin Bowen
Man könnte ein allgemeineres Suchergebnis erhalten, indem man die Abfrage apt-cache search ^ git ausführt? `
Kevin Bowen
Um eine farbenfrohere Ausgabe zu erhalten, könnte man Ihr Kommando mitapt-cache search ^git | grep --color git
Georg
0

Dies ist eine indirekte Antwort auf Ihre Frage, die jedoch immer noch damit zusammenhängt, da es um die Paketverwaltung geht. Ich persönlich benutze Eignung anstelle von Apt-Get. Eignung ist das synaptische Äquivalent zum Terminal.

Suchen,

sudo aptitude search $keyword

Andere Befehle

sudo aptitude install
sudo aptitude update
sudo aptitude upgrade

Um aptitude zu installieren,

sudo apt-get install aptitude
llt
quelle
Beachten Sie, dass die Eignung auf Multiarch-Systemen immer noch problematisch sein kann. Daher ist es in Ordnung, sie für Abfragen / Suchen zu verwenden, nicht jedoch für das Installieren / Entfernen von Paketen.
Guntbert
help.ubuntu.com/community/MultiArch erklärt, wie Eignung für Multiarch-Anliegen eingesetzt werden kann
22.
Diese Seite erwähnt nur aptitude why- wie ich schon sagte "benutze es für Abfragen" - die Seite ist auch ziemlich alt (bearbeitet am 08.02.2012) - also bleibt meine Warnung bestehen.
Guntbert
Aha. Ich bin ein Eignungsbenutzer. Können Sie mich also auf einen Artikel verweisen, in dem es heißt, es sei ein Problem für das Multiarch-System? Möglicherweise muss ich dann wieder zu apt-get wechseln.
11.
bugs.launchpad.net/ubuntu/+source/aptitude/+bug/831768 , es scheint vor kurzem behoben worden zu sein. Ich bin immer noch vorsichtig. Debian empfiehlt auch apt-get (docs for wheezy)
guntbert
0

Installieren Sie apt-xapian-index und verwenden Sie bei der Suche die Axi-Cache-Suche anstelle von apt-cache. Sie erhalten viel bessere Ergebnisse

zaonline
quelle