Linux Deutsch

apt-cache: Pakete suchen, Paketinformationen und Abhängigkeiten prüfen

Lerne apt-cache unter Debian und Ubuntu: Paketlisten durchsuchen, Metadaten und Abhängigkeiten prüfen, Reverse Dependencies anzeigen und Probleme diagnostizieren.

apt-cache ist ein Kommandozeilenwerkzeug für Debian- und Ubuntu-Systeme. Es durchsucht und analysiert die lokal gespeicherten APT-Paketmetadaten. Damit findest du Pakete, prüfst Versionen und untersuchst Abhängigkeiten, ohne ein Paket zu installieren oder zu entfernen.

APT ist das Paketverwaltungssystem von Debian und darauf basierenden Distributionen. Ein Repository ist eine konfigurierte Paketquelle, aus der APT Paketlisten und Pakete beziehen kann. Der lokale Paketcache enthält dabei vor allem Informationen über Paketnamen, Versionen, Beschreibungen und Abhängigkeiten.

Voraussetzungen und wichtige Begriffe

Für die Beispiele brauchst du ein Terminal und grundlegende Kenntnisse über Linux-Befehle. Hilfreich sind außerdem Grundkenntnisse zu Software-Repositories, Paketnamen und dem sicheren Einsatz von sudo. Eine Einführung bietet der Artikel Das APT-Paketverwaltungssystem.

  • Paketname: die eindeutige Kennung eines installierbaren Pakets. Sie muss nicht dem Namen des darin enthaltenen Programms entsprechen.
  • Paketversion: eine konkrete Ausgabe eines Pakets, die aus einer Paketquelle verfügbar sein kann.
  • Paketmetadaten: beispielsweise Beschreibung, Version, Architektur, Maintainer, Dateigröße und Abhängigkeiten.
  • Abhängigkeit: eine Beziehung, bei der ein Paket ein anderes Paket oder eine bestimmte Version benötigt.
  • Reverse Dependency: ein anderes Paket, das vom betrachteten Paket abhängt.

apt-cache und apt-get: der Unterschied

apt-cache arbeitet lesend mit der lokalen APT-Paketdatenbank. Typische Aufgaben sind das Suchen nach Paketnamen, das Anzeigen von Paketbeschreibungen und das Untersuchen von Abhängigkeiten.

apt-get ist dagegen ein Verwaltungswerkzeug. Es kann Paketlisten aktualisieren sowie Pakete installieren, aktualisieren oder entfernen. Der Befehl apt-cache führt keine dieser Änderungen aus.

WerkzeugHauptaufgabeÄndert installierte Pakete?
apt-cacheLokale Paketmetadaten abfragen und auswertenNein
apt-getPaketlisten und installierte Pakete verwaltenJe nach Unterbefehl ja
aptBenutzerfreundliche interaktive APT-BedienungJe nach Unterbefehl ja

Paketlisten vor der Abfrage aktualisieren

Die Ergebnisse von apt-cache hängen vollständig von den lokal vorhandenen Paketlisten ab. Fehlen Listen, sind sie veraltet oder ist ein benötigtes Repository nicht eingerichtet, kann eine Suche unvollständig bleiben oder kein Paket finden.

Aktualisiere die Paketlisten bei Bedarf mit:

sudo apt-get update

Dieser Befehl lädt aktuelle Repository-Metadaten herunter. Er installiert dabei keine Pakete. Fehlermeldungen, etwa zu nicht erreichbaren Quellen oder ungültigen Repository-Einträgen, solltest du beachten, bevor du die Ergebnisse interpretierst.

Die Paketquellen werden insbesondere in /etc/apt/sources.list und in zusätzlichen Dateien unter /etc/apt/sources.list.d/ festgelegt. Eine robuste Prüfung funktioniert auch dann, wenn die zentrale Datei nicht vorhanden ist:

cat /etc/apt/sources.list 2>/dev/null; ls -la /etc/apt/sources.list.d/

Die Ausgabe kann je nach Distribution und Konfiguration unterschiedlich aussehen. Achte darauf, dass Distribution, Release und Repository-Komponenten zusammenpassen.

Pakete mit apt-cache search finden

search durchsucht Paketnamen und Paketbeschreibungen. Du kannst einen bekannten Namen verwenden oder anhand einer Funktionsbeschreibung suchen:

apt-cache search nmap

Ein Beispiel für die Suche nach einem Netzwerk-Mapper ist:

apt-cache search network mapper

Die Trefferliste enthält typischerweise den Paketnamen, einen Bindestrich und eine Kurzbeschreibung. Bei einer Funktionssuche können neben dem gewünschten Programm auch Bibliotheken, Dokumentation oder verwandte Werkzeuge erscheinen. Lies deshalb die Kurzbeschreibungen und prüfe anschließend das passende Paket genauer.

Mehrere Suchwörter verfeinern die Suche nicht immer wie eine exakte Phrase. APT berücksichtigt die Wörter in Paketnamen und Beschreibungen. Verwende bei wenigen oder unerwarteten Treffern zusätzlich allgemeinere Begriffe oder suche direkt nach einem vermuteten Paketnamen.

Detailinformationen zu einem Paket abrufen

Struktur mit apt-cache showpkg prüfen

Wenn der Paketname bekannt ist, zeigt showpkg technische Informationen zur Paketstruktur:

apt-cache showpkg nmap

Typische Abschnitte nennen verfügbare Paketversionen, Abhängigkeiten und Reverse Dependencies. Die Ausgabe beschreibt also, welche Versionen APT kennt, welche Pakete das betrachtete Paket benötigt und welche anderen Pakete darauf Bezug nehmen.

Ein Paketname und eine Paketversion sind nicht dasselbe. nmap bezeichnet das Paket allgemein. Eine Ausgabe wie 7.93+dfsg-1 bezeichnet eine konkrete Version. Welche Version angezeigt wird, hängt von den lokalen Paketlisten und den konfigurierten Quellen ab.

Metadaten mit apt-cache show anzeigen

show ist für die normalen Paketmetadaten meist übersichtlicher:

apt-cache show nmap

Je nach APT-Version und Distribution können unter anderem Beschreibung, Maintainer, Architektur, Dateigröße, Paketversion und Repository-Versionen erscheinen. Gibt es mehrere verfügbare Versionen, kann die Ausgabe mehrere Datensätze enthalten.

Wichtige apt-cache-Unterbefehle

UnterbefehlZweckBeispielWichtige Ausgabe
searchPaketnamen und Beschreibungen durchsuchenapt-cache search network mapperPaketname und Kurzbeschreibung
showpkgVersions- und Abhängigkeitsstruktur prüfenapt-cache showpkg nmapVersionen, Abhängigkeiten, Reverse Dependencies
showDetaillierte Paketmetadaten anzeigenapt-cache show nmapBeschreibung, Maintainer, Architektur, Größe und Version
statsStatistiken der lokalen Paketdatenbank anzeigenapt-cache statsAnzahl von Namen, Versionen, Abhängigkeiten und Cache-Größe
unmetNicht erfüllbare Abhängigkeiten auflistenapt-cache unmetNicht auflösbare Paketbeziehungen
dependsVorwärtsabhängigkeiten eines Pakets anzeigenapt-cache depends nmapBenötigte, empfohlene und weitere Beziehungen
rdependsRückwärtsabhängigkeiten anzeigenapt-cache rdepends libssl3Pakete, die auf das angegebene Paket verweisen
pkgnamesBekannte Paketnamen auflistenapt-cache pkgnames docPaketnamen mit dem Präfix doc

Paketcache-Statistiken mit apt-cache stats

Mit stats erhältst du einen groben Überblick über die lokale APT-Paketdatenbank:

apt-cache stats

Je nach Version nennt die Ausgabe beispielsweise die Anzahl bekannter Paketnamen, Paketversionen und Abhängigkeiten sowie den Speicherverbrauch beziehungsweise die Größe der Cache-Daten. Diese Werte beschreiben die lokale Datenbasis, nicht den gesamten Zustand des Systems.

Nicht erfüllbare Abhängigkeiten mit apt-cache unmet prüfen

Der Unterbefehl unmet sucht im Cache nach Abhängigkeiten, die anhand der bekannten Paketversionen nicht erfüllt oder nicht aufgelöst werden können:

apt-cache unmet

Das ist eine Diagnosehilfe, wenn Paketquellen fehlerhaft, widersprüchlich oder unvollständig sind. Häufige Ursachen sind gemischte Releases, inkompatible Drittanbieterquellen oder eine benötigte Version, die in keiner eingerichteten Quelle verfügbar ist.

Die Ausgabe repariert nichts automatisch. Analysiere die genannten Paketnamen und Versionsbedingungen, prüfe die Quellen und führe nach einer Korrektur erneut sudo apt-get update aus. Entferne nicht allein aufgrund dieser Diagnoseausgabe Pakete.

Vorwärtsabhängigkeiten mit apt-cache depends

Mit depends untersuchst du, welche Paketbeziehungen von einem Paket ausgehen:

apt-cache depends nmap

Die Ausgabe kann zwingende und optionale Beziehungen enthalten. Vor einer Installation hilft sie dabei einzuschätzen, welche zusätzlichen Pakete benötigt oder empfohlen werden.

TypBedeutungPraktische Auswirkung
DependsNormale, erforderliche AbhängigkeitDas Paket benötigt die angegebene Funktion oder ein kompatibles Paket.
PreDependsAbhängigkeit, die bereits vor der Installation oder Konfiguration erfüllt sein mussAPT muss diese Beziehung besonders früh berücksichtigen.
RecommendsEmpfohlenes Paket für den üblichen FunktionsumfangEs ist normalerweise sinnvoll, aber nicht zwingend erforderlich.
SuggestsOptionaler Hinweis auf ein ergänzendes PaketDas Paket kann zusätzliche Funktionen oder Dokumentation bieten.
ConflictsDie genannten Pakete dürfen nicht gleichzeitig verwendet werdenEine Installation kann die Entfernung oder Auswahl eines anderen Pakets erfordern.
BreaksEine bestimmte Version oder Kombination funktioniert nicht korrekt zusammenAPT verhindert oder verändert die problematische Kombination.
ReplacesDas Paket darf Dateien eines anderen Pakets übernehmenRelevant bei Übergängen, Umbenennungen oder Paketaufteilungen.

Rückwärtsabhängigkeiten mit apt-cache rdepends

rdepends kehrt die Blickrichtung um. Der Befehl listet Pakete auf, die das angegebene Paket benötigen oder in einer Paketbeziehung darauf verweisen:

apt-cache rdepends libssl3

Diese Abfrage ist besonders nützlich, bevor du eine Bibliothek oder ein Kernpaket entfernst. Eine große oder unerwartete Liste bedeutet nicht automatisch, dass jedes aufgeführte Paket installiert ist. Die Paketdatenbank kann auch Pakete kennen, die nur in den Paketlisten vorhanden sind.

Die Ausgabe kann je nach Distribution, Release und APT-Version variieren. Virtuelle Pakete, alternative Abhängigkeiten und verschiedene Beziehungstypen können zusätzliche Treffer erklären. Ergänze die Untersuchung bei Bedarf mit apt-cache showpkg und apt-cache depends. Für eine konkrete Entfernaktion ist außerdem eine Simulation des Paketmanagers sinnvoll.

Paketnamen mit apt-cache pkgnames auflisten

pkgnames gibt bekannte Paketnamen aus. Ohne Argument kann die Liste sehr lang sein:

apt-cache pkgnames

Ein optionales Präfix schränkt die Ausgabe ein. Dieses Beispiel zeigt Paketnamen, die mit doc beginnen:

apt-cache pkgnames doc

Das unterscheidet sich von search: pkgnames prüft den Anfang eines Paketnamens und liefert keine Volltextsuche in Beschreibungen. Wenn du nach einer Funktion suchst, verwendest du apt-cache search. Wenn du nur einen möglichen Namensanfang kontrollieren möchtest, ist pkgnames passender.

apt-cache und moderne apt-Entsprechungen

apt-cache ist auf vielen Debian-basierten Systemen weiterhin vorhanden. Für interaktive Nutzung wird teilweise der modernere, benutzerfreundlichere Befehl apt verwendet. Ältere Anleitungen und Skripte enthalten weiterhin häufig apt-cache. Ausgabe, Warnungen und verfügbare Optionen können sich zwischen Distributionen und APT-Versionen unterscheiden.

apt-cache-BefehlMögliche apt-AlternativeAnwendungsfallHinweis zur Ausgabe
apt-cache searchapt searchPakete anhand von Namen und Beschreibung findenDie Darstellung kann interaktiver und versionsabhängig sein.
apt-cache showapt showPaketmetadaten anzeigenFelder und Format können abweichen.
apt-cache dependsapt dependsAbhängigkeiten untersuchenDie Beziehungstypen bleiben das zentrale Auswertungselement.
apt-cache pkgnamesapt listKeine direkte 1:1-Entsprechung; apt list listet Paketkandidaten nach Musternpkgnames liefert reine Paketnamen und kann direkt nach Präfix filtern; apt list zeigt typischerweise zusätzlich Version und Status.

Für reproduzierbare Skripte solltest du die jeweils unterstützte Schnittstelle und die Manpage deiner Distribution prüfen. Für manuelle Abfragen sind sowohl apt-cache als auch passende apt-Unterbefehle nützlich.

Typische Fehler und ihre Lösung

Die Suche liefert keine Ergebnisse

  • Die Paketlisten wurden noch nicht aktualisiert. Führe sudo apt-get update aus und prüfe Fehlermeldungen.
  • Das benötigte Repository ist nicht konfiguriert oder nicht erreichbar. Kontrolliere /etc/apt/sources.list und die Dateien in /etc/apt/sources.list.d/.
  • Der Suchbegriff passt weder zum Paketnamen noch zur Beschreibung. Versuche allgemeinere Begriffe oder prüfe mit apt-cache pkgnames einen möglichen Namensanfang.

showpkg findet das Paket nicht

  • Prüfe die Schreibweise des Paketnamens mit apt-cache search oder apt-cache pkgnames.
  • Aktualisiere die Paketlisten.
  • Prüfe, ob Distribution, Release und Repository-Komponenten das Paket tatsächlich anbieten.

unmet zeigt nicht erfüllbare Abhängigkeiten

  • Analysiere die genannten Paketnamen und Versionsbeschränkungen.
  • Prüfe, ob Quellen unterschiedlicher Releases oder inkompatible Drittanbieterquellen vermischt wurden.
  • Kontrolliere, ob die benötigte Version in einer konfigurierten Quelle verfügbar ist.
  • Korrigiere die Repository-Konfiguration und führe anschließend erneut sudo apt-get update aus.
  • Entferne keine Pakete allein aufgrund der Ausgabe von apt-cache unmet.

rdepends liefert mehr Treffer als erwartet

  • Verschiedene Beziehungstypen können berücksichtigt werden.
  • Virtuelle Pakete und alternative Abhängigkeiten können zusätzliche Einträge erzeugen.
  • Die Paketdaten unterscheiden sich zwischen Distributionen und Releases.
  • Untersuche kritische Fälle ergänzend mit apt-cache showpkg und apt-cache depends. Verwende vor dem Entfernen eine Simulation des Paketmanagers.

Praktischer Ablauf für die Paketprüfung

  1. Aktualisiere bei veralteten oder fehlenden Listen die Metadaten mit sudo apt-get update.
  2. Suche bei unbekanntem Paketnamen mit apt-cache search SUCHBEGRIFF.
  3. Prüfe die ausführlichen Metadaten mit apt-cache show PAKETNAME.
  4. Untersuche die Versions- und Strukturinformationen mit apt-cache showpkg PAKETNAME.
  5. Bewerte vor einer Installation die ausgehenden Beziehungen mit apt-cache depends PAKETNAME.
  6. Bewerte vor dem Entfernen einer Bibliothek oder eines Kernpakets die Rückwärtsabhängigkeiten mit apt-cache rdepends PAKETNAME.
  7. Verwende apt-cache stats für einen groben Überblick und apt-cache unmet als Diagnosehilfe bei widersprüchlichen Paketdaten.

Zusammenfassung

  • apt-cache search findet Pakete in Namen und Beschreibungen.
  • apt-cache show zeigt lesbare Paketmetadaten; showpkg hilft bei Versionen und Abhängigkeitsstrukturen.
  • apt-cache depends untersucht Vorwärtsabhängigkeiten, rdepends Rückwärtsabhängigkeiten.
  • apt-cache pkgnames listet Paketnamen und kann nach einem Präfix filtern.
  • apt-cache stats liefert Cache-Statistiken, während apt-cache unmet nicht auflösbare Beziehungen diagnostiziert.
  • Bei fehlenden oder veralteten Ergebnissen ist sudo apt-get update der erste Prüfschritt.