VMware ESXi and vSphere Cluster Management

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

Lerne apt-cache auf Debian- und Ubuntu-Systemen: Pakete suchen, Metadaten und Abhängigkeiten prüfen, Reverse-Abhängigkeiten analysieren und Cache-Statistiken auswerten.

apt-cache ist ein Kommandozeilenwerkzeug für Debian-, Ubuntu- und andere APT-basierte Linux-Distributionen. Es liest lokal gespeicherte Paketlisten und Paketmetadaten aus und hilft dabei, Pakete zu suchen, Versionen zu prüfen und Abhängigkeiten zu analysieren.

Wichtig: apt-cache installiert, entfernt und aktualisiert keine Pakete. Für eine Aktualisierung der lokalen Paketlisten wird beispielsweise apt-get update verwendet.

Was ist APT und wofür dient apt-cache?

APT ist das Paketverwaltungssystem von Debian-basierten Linux-Distributionen. Ein Paket ist ein vorbereites Softwarepaket mit Dateien, Versionsangaben, Beschreibung und Beziehungen zu anderen Paketen.

apt-cache greift auf den lokalen Paketcache zu. Dieser enthält Paketlisten und Metadaten, die APT aus konfigurierten Paketquellen beziehungsweise Repositories heruntergeladen hat.

  • Unbekannte Paketnamen über Suchbegriffe finden
  • Paketbeschreibungen, Versionen und Herkunft untersuchen
  • Direkte Abhängigkeiten eines Pakets anzeigen
  • Pakete mit Reverse-Abhängigkeiten ermitteln
  • Unerfüllte Abhängigkeiten zusammenfassen
  • Statistiken über die lokale Paketdatenbank anzeigen

Datenquelle und Aktualität des Paketcache

APT lädt Paketlisten aus den aktivierten Paketquellen. Die zentrale Konfiguration befindet sich in /etc/apt/sources.list. Zusätzliche Quellen werden üblicherweise in Dateien unter /etc/apt/sources.list.d/ definiert.

Die Befehle von apt-cache können nur Informationen anzeigen, die lokal vorhanden sind. Ist eine Paketliste veraltet, fehlt eine Paketquelle oder gehört ein Paket nicht zur verwendeten Distribution und Version, kann die Abfrage unvollständig bleiben.

sudo apt-get update

Dieser Befehl lädt aktuelle Paketlisten aus den konfigurierten Quellen. Er installiert normalerweise keine Pakete, sondern aktualisiert die Informationsbasis, die anschließend auch apt-cache verwendet.

Wichtige apt-cache-Unterbefehle

UnterbefehlSyntaxZweckTypischer Anwendungsfall
searchapt-cache search <begriff>Pakete nach Namen und Beschreibung suchenUnbekannten Paketnamen finden
showpkgapt-cache showpkg <paketname>Detaillierte Cache- und Beziehungsinformationen anzeigenVersionen, Abhängigkeiten und Reverse-Abhängigkeiten prüfen
statsapt-cache statsStatistiken des lokalen Caches ausgebenUmfang der Paketdatenbank überblicken
unmetapt-cache unmetUnerfüllte Abhängigkeiten zusammenfassenPaketprobleme zunächst eingrenzen
dependsapt-cache depends <paketname>Beziehungen eines Pakets zu anderen Paketen anzeigenBenötigte und optionale Pakete untersuchen
rdependsapt-cache rdepends <paketname>Pakete anzeigen, die vom angegebenen Paket abhängenAuswirkungen einer Entfernung abschätzen
pkgnamesapt-cache pkgnames [präfix]Bekannte Paketnamen ausgebenPaketnamen mit bekanntem Anfang erkunden

Pakete mit apt-cache search suchen

Mit search durchsuchst du Paketnamen und Paketbeschreibungen. Die grundlegende Syntax lautet:

apt-cache search <suchbegriff> [weiterer-suchbegriff]

Ein praktisches Beispiel ist die Suche nach einem Netzwerk-Mapper:

apt-cache search network mapper

Die Ausgabe enthält typischerweise eine Zeile pro Treffer: zuerst den Paketnamen, danach eine kurze Beschreibung. So lässt sich der genaue Paketname ermitteln, auch wenn du ihn noch nicht kennst.

Mehrere Suchbegriffe schränken die Suche in der Regel ein. Die Begriffe werden nicht automatisch zu einem einzigen Paketnamen zusammengesetzt. Entscheidend ist, dass passende Begriffe in den Paketnamen oder Beschreibungen vorkommen. Bei zu wenigen Treffern helfen allgemeinere Begriffe oder eine Suche mit nur einem Suchwort.

Paketinformationen mit apt-cache showpkg anzeigen

showpkg liefert ausführlichere Informationen zu einem bekannten Paket:

apt-cache showpkg nmap

In der Ausgabe können unter anderem folgende Bereiche vorkommen:

  • Available versions: Versionen, die im lokalen Cache bekannt sind
  • Reverse Depends: Pakete, die das betrachtete Paket benötigen oder darauf verweisen
  • Dependencies: Beziehungen, die das betrachtete Paket zu anderen Paketen besitzt
  • Package lists: Paketlistenbezug, in dem das Paket gefunden wurde

Für eine kompaktere Paketbeschreibung kann ergänzend apt-cache show verwendet werden. Dort stehen typischerweise Felder wie Paketname, Version, Architektur, Beschreibung und Abhängigkeiten im Vordergrund. showpkg eignet sich dagegen besonders zur Betrachtung der Beziehungen und Cache-Struktur.

Paketcache mit apt-cache stats auswerten

Der Befehl benötigt keinen Paketnamen:

apt-cache stats

Die Ausgabe enthält Kennzahlen über die lokale Paketdatenbank. Je nach APT-Version können beispielsweise folgende Werte erscheinen:

  • Known packages: Anzahl der bekannten Paketnamen
  • Packages: Anzahl der im Cache erfassten Paketdatensätze
  • Versions: Anzahl bekannter Paketversionen
  • Dependencies: Anzahl gespeicherter Abhängigkeitsbeziehungen
  • Package lists: Umfang und Anzahl der eingelesenen Paketlisten

Die Werte sind keine festen Eigenschaften des Betriebssystems. Sie hängen von Distribution und Release, aktivierten Quellen, Architektur und dem Zeitpunkt der letzten Aktualisierung ab.

Unerfüllte Abhängigkeiten mit apt-cache unmet prüfen

Eine unerfüllte Abhängigkeit liegt vor, wenn eine Abhängigkeitsanforderung mit den bekannten Paketen und Versionen nicht erfüllt werden kann. Eine Zusammenfassung erhältst du mit:

apt-cache unmet

Der Befehl ist nützlich, um bei Problemen mit dem Paketbestand einen ersten Überblick zu gewinnen. Er behebt jedoch keine Fehler. Für die Ursachenanalyse müssen unter anderem konkrete Paketversionen, Paketquellen und bereits zurückgehaltene oder teilweise geänderte Pakete untersucht werden.

Direkte Paketabhängigkeiten mit apt-cache depends

Mit depends untersuchst du die Beziehungen eines Pakets:

apt-cache depends nmap

Mögliche Beziehungsarten sind:

BeziehungBedeutungPraktische Auswirkung
DependsDas Paket benötigt ein anderes Paket für seine Funktion.APT muss eine passende Abhängigkeit bereitstellen.
PreDependsEine Abhängigkeit muss vor der Installation oder Konfiguration des Pakets erfüllt sein.Die Reihenfolge der Paketverarbeitung ist besonders wichtig.
RecommendsEin anderes Paket wird empfohlen, ist aber nicht immer zwingend erforderlich.Es erweitert häufig die erwartete Grundfunktion.
SuggestsEin anderes Paket wird als optionale Ergänzung vorgeschlagen.Die Installation ist für die Grundfunktion normalerweise nicht notwendig.
ConflictsDas Paket kann nicht zusammen mit bestimmten anderen Paketen verwendet werden.APT muss eine unvereinbare Kombination verhindern.
BreaksEine bestimmte Version oder Kombination eines anderen Pakets funktioniert nicht korrekt mit diesem Paket.APT kann eine Aktualisierung, Konfiguration oder Kombination blockieren.

Abhängigkeiten sind versions- und distributionsabhängig. Die Ausgabe beschreibt den Stand, der aus deinen aktiven Quellen und deinem lokalen Paketcache bekannt ist.

Reverse-Abhängigkeiten mit apt-cache rdepends

Eine Reverse-Abhängigkeit betrachtet eine Beziehung aus der entgegengesetzten Richtung. Statt zu fragen, was nmap benötigt, fragst du, welche Pakete ein bestimmtes Paket benötigen:

apt-cache rdepends libssl3

Das ist besonders hilfreich, bevor du ein Bibliotheks- oder Systempaket entfernst oder ersetzt. Eine lange Liste bedeutet, dass viele Pakete auf diese Komponente verweisen können.

Direkte und indirekte Auswirkungen müssen unterschieden werden. rdepends zeigt die im Cache bekannten Beziehungen; daraus folgt nicht automatisch, dass jedes aufgeführte Paket gerade installiert ist oder dass jede Auswirkung nur eine Ebene entfernt bleibt. Für eine Risikoanalyse sollten zusätzlich der installierte Zustand, konkrete Paketversionen und direkte Abhängigkeiten geprüft werden.

Paketnamen mit apt-cache pkgnames auflisten

Ohne Argument gibt pkgnames alle bekannten Paketnamen aus:

apt-cache pkgnames

Mit einem Präfix lässt sich die Liste eingrenzen:

apt-cache pkgnames doc

Damit findest du beispielsweise Paketnamen, die mit doc beginnen. Bei großen Ausgaben ist eine seitenweise Anzeige sinnvoll:

apt-cache pkgnames doc | less

Wenn du nicht nur den Namensanfang kennst, ist apt-cache search meist geeigneter, weil dabei auch Paketbeschreibungen berücksichtigt werden.

apt-cache und moderne apt-Befehle

apt-cache bleibt für gezielte Abfragen und Skripte nützlich. Für die interaktive Arbeit im Terminal bietet der zusammengefasste Befehl apt häufig eine modernere Benutzeroberfläche.

Informationsaufgabeapt-cacheMögliche apt-AlternativeHinweis
Paketsucheapt-cache search <begriff>apt search <begriff>Beide durchsuchen verfügbare Paketinformationen.
Paketdetailsapt-cache show <paketname>apt show <paketname>apt-cache showpkg ist stärker auf Cache- und Beziehungsdetails ausgerichtet.
Paketnamen auflistenapt-cache pkgnames [präfix]apt listapt list zeigt eine andere, paketlistenorientierte Ausgabe und ist nicht vollständig gleichbedeutend.

In dieser Übersicht liegt der Schwerpunkt auf den speziellen apt-cache-Unterbefehlen search, showpkg, stats, unmet, depends, rdepends und pkgnames.

Fehlerdiagnose bei apt-cache-Abfragen

Die Suche liefert keine erwarteten Treffer

  • Aktualisiere zunächst die Paketlisten mit sudo apt-get update.
  • Prüfe, ob die benötigte Paketquelle aktiviert ist.
  • Verwende allgemeinere oder alternative Suchbegriffe.
  • Prüfe mit apt-cache pkgnames, ob ein möglicher Paketnamensanfang bekannt ist.
  • Berücksichtige, dass ein Paket für deine Distribution oder dein Release nicht verfügbar sein kann.

showpkg zeigt keine erwarteten Informationen

  • Kontrolliere die Schreibweise des Paketnamens.
  • Ermittle den Namen zunächst mit apt-cache search.
  • Aktualisiere die Paketlisten.
  • Prüfe die Repository-Konfiguration und die verwendete Distribution.

unmet meldet unerfüllte Abhängigkeiten

Ursachen können inkonsistente Paketlisten, fehlende Versionen aus den aktivierten Quellen, teilweise Änderungen oder zurückgehaltene Pakete sein. Untersuche die konkrete Beziehung mit apt-cache depends, prüfe verfügbare Versionen und Quellen und entferne kein Paket allein aufgrund der Zusammenfassung. Vor Änderungen kann apt-cache rdepends mögliche Auswirkungen sichtbar machen.

rdepends liefert eine sehr lange Liste

Bibliotheken und grundlegende Komponenten werden oft von vielen Paketen genutzt. Verwende die Ausgabe als Risikoanalyse, untersuche zusätzlich direkte Beziehungen mit depends und führe bei kritischen Systempaketen keine Entfernung ohne eine konkrete Prüfung durch die Paketverwaltung durch.

Praktischer Ablauf

  1. Aktualisiere bei veralteten Informationen die Paketlisten mit sudo apt-get update.
  2. Suche bei unbekanntem Namen mit apt-cache search.
  3. Prüfe Details und bekannte Versionen mit apt-cache showpkg oder der kompakteren Abfrage apt-cache show.
  4. Analysiere direkte Beziehungen mit apt-cache depends.
  5. Bewerte mögliche Folgen einer Änderung mit apt-cache rdepends.
  6. Verwende apt-cache unmet, wenn der Paketbestand Hinweise auf unerfüllte Beziehungen liefert.
  7. Nutze apt-cache stats, um den Umfang und Aktualisierungsstand der lokalen Datenbasis grob einzuordnen.

Prüfungsrelevante Zusammenfassung

  • apt-cache liest lokale APT-Paketinformationen und verändert den installierten Paketbestand nicht.
  • sudo apt-get update aktualisiert die Paketlisten aus /etc/apt/sources.list und den Dateien unter /etc/apt/sources.list.d/.
  • search findet Paketnamen und passende Beschreibungen.
  • showpkg zeigt ausführliche Versions-, Abhängigkeits- und Cache-Bezüge.
  • stats liefert Kennzahlen zur lokalen Paketdatenbank.
  • unmet fasst unerfüllte Abhängigkeiten zusammen, behebt sie aber nicht.
  • depends zeigt Beziehungen eines Pakets zu seinen Abhängigkeiten.
  • rdepends zeigt Pakete, die vom betrachteten Paket abhängen.
  • pkgnames listet bekannte Paketnamen vollständig oder nach Präfix gefiltert auf.

Weitere Grundlagen zur Verwendung des apt-cache-Befehls lassen sich anhand dieser Befehlsgruppen systematisch vertiefen.