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.
| Werkzeug | Hauptaufgabe | Ändert installierte Pakete? |
|---|---|---|
apt-cache | Lokale Paketmetadaten abfragen und auswerten | Nein |
apt-get | Paketlisten und installierte Pakete verwalten | Je nach Unterbefehl ja |
apt | Benutzerfreundliche interaktive APT-Bedienung | Je 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
| Unterbefehl | Zweck | Beispiel | Wichtige Ausgabe |
|---|---|---|---|
search | Paketnamen und Beschreibungen durchsuchen | apt-cache search network mapper | Paketname und Kurzbeschreibung |
showpkg | Versions- und Abhängigkeitsstruktur prüfen | apt-cache showpkg nmap | Versionen, Abhängigkeiten, Reverse Dependencies |
show | Detaillierte Paketmetadaten anzeigen | apt-cache show nmap | Beschreibung, Maintainer, Architektur, Größe und Version |
stats | Statistiken der lokalen Paketdatenbank anzeigen | apt-cache stats | Anzahl von Namen, Versionen, Abhängigkeiten und Cache-Größe |
unmet | Nicht erfüllbare Abhängigkeiten auflisten | apt-cache unmet | Nicht auflösbare Paketbeziehungen |
depends | Vorwärtsabhängigkeiten eines Pakets anzeigen | apt-cache depends nmap | Benötigte, empfohlene und weitere Beziehungen |
rdepends | Rückwärtsabhängigkeiten anzeigen | apt-cache rdepends libssl3 | Pakete, die auf das angegebene Paket verweisen |
pkgnames | Bekannte Paketnamen auflisten | apt-cache pkgnames doc | Paketnamen 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.
| Typ | Bedeutung | Praktische Auswirkung |
|---|---|---|
Depends | Normale, erforderliche Abhängigkeit | Das Paket benötigt die angegebene Funktion oder ein kompatibles Paket. |
PreDepends | Abhängigkeit, die bereits vor der Installation oder Konfiguration erfüllt sein muss | APT muss diese Beziehung besonders früh berücksichtigen. |
Recommends | Empfohlenes Paket für den üblichen Funktionsumfang | Es ist normalerweise sinnvoll, aber nicht zwingend erforderlich. |
Suggests | Optionaler Hinweis auf ein ergänzendes Paket | Das Paket kann zusätzliche Funktionen oder Dokumentation bieten. |
Conflicts | Die genannten Pakete dürfen nicht gleichzeitig verwendet werden | Eine Installation kann die Entfernung oder Auswahl eines anderen Pakets erfordern. |
Breaks | Eine bestimmte Version oder Kombination funktioniert nicht korrekt zusammen | APT verhindert oder verändert die problematische Kombination. |
Replaces | Das Paket darf Dateien eines anderen Pakets übernehmen | Relevant 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-Befehl | Mögliche apt-Alternative | Anwendungsfall | Hinweis zur Ausgabe |
|---|---|---|---|
apt-cache search | apt search | Pakete anhand von Namen und Beschreibung finden | Die Darstellung kann interaktiver und versionsabhängig sein. |
apt-cache show | apt show | Paketmetadaten anzeigen | Felder und Format können abweichen. |
apt-cache depends | apt depends | Abhängigkeiten untersuchen | Die Beziehungstypen bleiben das zentrale Auswertungselement. |
apt-cache pkgnames | apt list | Keine direkte 1:1-Entsprechung; apt list listet Paketkandidaten nach Mustern | pkgnames 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 updateaus und prüfe Fehlermeldungen. - Das benötigte Repository ist nicht konfiguriert oder nicht erreichbar. Kontrolliere
/etc/apt/sources.listund 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 pkgnameseinen möglichen Namensanfang.
showpkg findet das Paket nicht
- Prüfe die Schreibweise des Paketnamens mit
apt-cache searchoderapt-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 updateaus. - 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 showpkgundapt-cache depends. Verwende vor dem Entfernen eine Simulation des Paketmanagers.
Praktischer Ablauf für die Paketprüfung
- Aktualisiere bei veralteten oder fehlenden Listen die Metadaten mit
sudo apt-get update. - Suche bei unbekanntem Paketnamen mit
apt-cache search SUCHBEGRIFF. - Prüfe die ausführlichen Metadaten mit
apt-cache show PAKETNAME. - Untersuche die Versions- und Strukturinformationen mit
apt-cache showpkg PAKETNAME. - Bewerte vor einer Installation die ausgehenden Beziehungen mit
apt-cache depends PAKETNAME. - Bewerte vor dem Entfernen einer Bibliothek oder eines Kernpakets die Rückwärtsabhängigkeiten mit
apt-cache rdepends PAKETNAME. - Verwende
apt-cache statsfür einen groben Überblick undapt-cache unmetals Diagnosehilfe bei widersprüchlichen Paketdaten.
Zusammenfassung
apt-cache searchfindet Pakete in Namen und Beschreibungen.apt-cache showzeigt lesbare Paketmetadaten;showpkghilft bei Versionen und Abhängigkeitsstrukturen.apt-cache dependsuntersucht Vorwärtsabhängigkeiten,rdependsRückwärtsabhängigkeiten.apt-cache pkgnameslistet Paketnamen und kann nach einem Präfix filtern.apt-cache statsliefert Cache-Statistiken, währendapt-cache unmetnicht auflösbare Beziehungen diagnostiziert.- Bei fehlenden oder veralteten Ergebnissen ist
sudo apt-get updateder erste Prüfschritt.