VMware ESXi and vSphere Cluster Management
apt-get-Befehl: Pakete unter Debian und Ubuntu verwalten
Lerne apt-get unter Debian und Ubuntu: Paketquellen aktualisieren, Software installieren, upgraden, entfernen, Fehler beheben und den Paketcache verwalten.
apt-get ist ein Kommandozeilenwerkzeug zur Verwaltung von Softwarepaketen auf Debian, Ubuntu und verwandten Linux-Distributionen. Mit ihm aktualisierst du Paketlisten, installierst Programme, führst Upgrades durch, entfernst Pakete und untersuchst Abhängigkeitsprobleme.
Die meisten Paketaktionen verändern systemweite Dateien und benötigen daher administrative Rechte. Üblicherweise wird der Befehl mit sudo ausgeführt. Die Beispiele setzen grundlegende Terminalkenntnisse und ein funktionierendes Debian-basiertes System voraus.
APT und apt-get einordnen
APT steht für Advanced Package Tool. Es ist die Paketverwaltungsinfrastruktur von Debian-basierten Systemen. APT kennt Paketquellen, Paketversionen und Abhängigkeiten und arbeitet bei der eigentlichen Paketdatenbank eng mit dpkg zusammen.
apt-get ist ein Kommandozeilenprogramm für konkrete Paketaktionen. Daneben gibt es den Befehl apt. apt ist vor allem für die interaktive Nutzung durch Menschen gestaltet und fasst häufig verwendete Funktionen übersichtlich zusammen. apt-get bietet eine traditionell stabile und gut skriptbare Kommandozeilenschnittstelle. Für Automatisierung und Administrationsskripte ist deshalb meist apt-get die passendere Wahl.
Wie APT Paketquellen und Abhängigkeiten nutzt
Ein Repository ist eine Paketquelle. Sie stellt Paketdateien und Metadaten bereit. Der lokale Paketindex enthält Informationen darüber, welche Pakete verfügbar sind, welche Versionen angeboten werden und welche Abhängigkeiten ein Paket besitzt.
APT liest die Quellenkonfiguration aus /etc/apt/sources.list und aus zusätzlichen Dateien im Verzeichnis /etc/apt/sources.list.d/. Eine typische Quellzeile beschreibt den Eintragstyp, eine URI, die Distribution oder Suite und eine oder mehrere Komponenten:
deb URI SUITE COMPONENTEN
# Beispielhafte Struktur:
deb https://example.invalid/debian stable main
deb bezeichnet eine Quelle für installierbare Binärpakete. deb-src bezeichnet eine Quelle für Quellpakete, aus denen Software gebaut werden kann. Die URI verweist auf den Server, die Suite beschreibt beispielsweise eine Distribution oder einen Release-Zweig, und Komponenten teilen das Archiv nach Inhalt und Lizenzmodell auf.
Je nach Distribution können Komponenten wie main, universe, restricted oder multiverse vorkommen. Die genaue Bedeutung und Verfügbarkeit hängt von der jeweiligen Distribution und ihrem Release ab.
Fremdquellen sollten nur verwendet werden, wenn sie vertrauenswürdig sind und exakt zur installierten Distribution und Suite passen. Eine unpassende Quelle kann inkompatible Versionen, Konflikte oder Sicherheitsrisiken verursachen. Signaturprüfungen dürfen nicht pauschal abgeschaltet werden.
Paketquellen kontrollieren
grep -Rhv '^[[:space:]]*#' /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
Der Befehl zeigt aktive, nicht auskommentierte Quellzeilen an. Änderungen an diesen Dateien sollten dokumentiert und anhand der offiziellen Dokumentation der Distribution oder des jeweiligen Anbieters geprüft werden.
Paketlisten mit apt-get update aktualisieren
sudo apt-get update
update lädt die Metadaten aus allen aktivierten Paketquellen neu und aktualisiert den lokalen Paketindex. Dabei werden unter anderem verfügbare Paketversionen und Abhängigkeitsinformationen eingelesen. Installierte Programme werden durch diesen Befehl nicht verändert.
Führe update normalerweise vor einer Installation oder einem Upgrade aus:
sudo apt-get update && sudo apt-get upgrade
Erfolgreiche Ausgaben zeigen typischerweise, dass Indexdateien von Quellen abgerufen oder bereits aktuell sind. Fehlermeldungen müssen dagegen ernst genommen werden. Ein nicht erreichbarer Server, eine falsche Suite, eine fehlende Release-Datei oder eine ungültige Signatur kann dazu führen, dass APT die betreffende Quelle nicht verwendet.
Häufige Fehler bei update
- Namensauflösung oder Zeitüberschreitung: Netzwerk, DNS, Proxy, Firewall und die Erreichbarkeit des Mirrors prüfen.
- Keine Release-Datei oder nicht signiert: URL, Suite und Vertrauenswürdigkeit der Quelle kontrollieren. Eine veraltete oder eingestellte Quelle korrigieren oder deaktivieren.
- Signaturfehler: Die Repository-Konfiguration und die dokumentierte Schlüsselverwaltung des Anbieters prüfen. Signaturprüfungen nicht umgehen.
- Gemischte Distributionen: Fremdquellen oder Einträge für einen anderen Release-Zweig können Abhängigkeiten unauflösbar machen.
Installierte Pakete aktualisieren
Reguläres Upgrade
sudo apt-get update
sudo apt-get upgrade
upgrade aktualisiert installierte Pakete, sofern die Aktualisierung ohne das Entfernen regulär installierter Pakete und ohne problematische Abhängigkeitsänderungen möglich ist. Mit --show-upgraded oder der Kurzform -u werden die aktualisierten Pakete ausdrücklich angezeigt:
sudo apt-get upgrade --show-upgraded
Wenn für ein Upgrade neue Abhängigkeiten installiert werden müssen, kann folgende Option helfen:
sudo apt-get upgrade --with-new-pkgs
Full-upgrade und dist-upgrade
sudo apt-get full-upgrade
sudo apt-get dist-upgrade
dist-upgrade ist die traditionelle Bezeichnung; full-upgrade ist das heutige Synonym. Diese Aktion darf zur Auflösung geänderter Abhängigkeiten Pakete installieren oder entfernen. Dadurch kann sie auch Konflikte lösen, die ein normales upgrade zurückhält.
Prüfe bei kritischen Systemen zunächst den Plan und führe das Upgrade in einem Wartungsfenster mit aktueller Sicherung aus:
sudo apt-get --simulate full-upgrade
Besonders viele unerwartete Entfernungen sind ein Grund, den Vorgang abzubrechen und zunächst Paketquellen, Pinning, Konflikte und einen möglichen Release-Wechsel zu untersuchen.
Pakete installieren
Einzelne und mehrere Pakete
sudo apt-get update
sudo apt-get install nmap
sudo apt-get install curl wget git
Die Syntax lautet apt-get install PAKETNAME. Du kannst mehrere Paketnamen in einem Aufruf angeben. APT ermittelt notwendige Abhängigkeiten automatisch und installiert sie, sofern sie aus den konfigurierten Quellen verfügbar und miteinander vereinbar sind.
Version oder Release-Suite auswählen
sudo apt-get install PAKET=VERSION
sudo apt-get install -t SUITE PAKET
Mit PAKET=VERSION forderst du eine bestimmte verfügbare Version an. Die Version muss im Paketindex bekannt sein. -t beziehungsweise --target-release bevorzugt eine bestimmte Release-Suite. Das sollte nur mit kompatiblen Quellen und bewusstem Versionsmanagement eingesetzt werden.
Installation simulieren
sudo apt-get --simulate install PAKETNAME
sudo apt-get -s install PAKETNAME
Eine Simulation berechnet die geplanten Installationen, Upgrades, Entfernungen und Konfigurationsänderungen, ohne die Pakete tatsächlich zu verändern. Sie ist besonders nützlich, bevor mehrere Pakete installiert oder produktive Systeme geändert werden.
Lokale .deb-Dateien
Eine lokale .deb-Datei ist kein gewöhnlicher Paketname aus einem Repository. Für die direkte Installation sind dpkg oder das interaktivere apt üblich. dpkg installiert die Datei, löst aber Abhängigkeiten nicht automatisch aus. APT kann anschließend helfen, fehlende Abhängigkeiten aus konfigurierten Quellen zu ergänzen.
Pakete entfernen und bereinigen
| Aktion | Programmpaket entfernt | Konfiguration entfernt | Automatische Abhängigkeiten betroffen | Typischer Einsatz |
|---|---|---|---|---|
remove | Ja | Üblicherweise nein | Nein, nicht als Hauptzweck | Programm entfernen, Einstellungen behalten |
purge | Ja | Systemweite Paketkonfiguration ja | Nein, nicht als Hauptzweck | Programm vollständig bereinigen |
autoremove | Ja, bei nicht mehr benötigten Paketen | Üblicherweise nicht vollständig | Ja | Automatisch installierte Abhängigkeiten entfernen |
autopurge | Ja, bei nicht mehr benötigten Paketen | Ja | Ja | Abhängigkeiten samt Paketkonfiguration bereinigen |
remove und purge
sudo apt-get --simulate remove nmap
sudo apt-get remove nmap
sudo apt-get --simulate purge nmap
sudo apt-get purge nmap
remove entfernt das Programmpaket, lässt systemweite Konfigurationsdateien aber normalerweise zurück. purge entfernt zusätzlich die zugehörige Paketkonfiguration. Dateien im persönlichen Benutzerverzeichnis werden dadurch nicht automatisch entfernt.
autoremove und autopurge
sudo apt-get --simulate autoremove
sudo apt-get autoremove
sudo apt-get --simulate autopurge
sudo apt-get autopurge
autoremove sucht automatisch installierte Pakete, die von keinem anderen installierten Paket mehr benötigt werden. autopurge verbindet diese Bereinigung mit dem Entfernen der zugehörigen Konfigurationsdateien. Prüfe die Liste immer vorher. Ein Metapaket oder eine Desktop-Umgebung kann von vielen Abhängigkeiten abhängen; eine unbedachte Entfernung kann daher wichtige Funktionen beseitigen.
Abhängigkeiten und Paketdatenbank prüfen
Eine Abhängigkeit ist ein zusätzlich benötigtes Paket oder eine Versionsbedingung. Ein Konflikt bedeutet, dass Pakete oder Versionen nicht gemeinsam installiert werden können. APT versucht, diese Bedingungen automatisch aufzulösen. Das gelingt jedoch nicht immer, etwa bei unterbrochenen Aktionen, veralteten Paketlisten oder inkompatiblen Quellen.
sudo apt-get check
check prüft die Struktur der Paketabhängigkeiten. Bei einer unterbrochenen Konfiguration kann dieser Schritt folgen:
sudo dpkg --configure -a
Der Befehl konfiguriert bereits ausgepackte, aber noch nicht fertig eingerichtete Pakete. Danach kann eine Reparatur fehlender oder defekter Abhängigkeiten sinnvoll sein:
sudo apt-get --fix-broken install
# gleichbedeutend:
sudo apt-get -f install
Wenn apt-get update selbst wegen Netzwerk-, Signatur- oder Quellenfehlern scheitert, müssen diese Ursachen zuerst behoben werden. Eine Reparaturoption ersetzt keine korrekte Repository-Konfiguration.
Paketcache verwalten
Heruntergeladene .deb-Archive liegen normalerweise im Cache-Verzeichnis /var/cache/apt/archives/. Der Cache kann Installationen beschleunigen, belegt aber mit der Zeit Speicherplatz.
sudo apt-get autoclean
sudo apt-get clean
autoclean entfernt nur Archivdateien, die nicht mehr herunterladbar oder veraltet sind. clean leert den Download-Cache vollständig. Nach clean müssen Pakete bei einer späteren Installation erneut heruntergeladen werden.
Protokolle und Nachvollziehbarkeit
APT und dpkg protokollieren Paketaktionen. Die wichtigsten Dateien sind:
| Pfad | Bedeutung | Wann relevant |
|---|---|---|
/etc/apt/sources.list | Zentrale Konfiguration der Paketquellen | Quellen, Suites und Komponenten kontrollieren |
/etc/apt/sources.list.d/ | Zusätzliche Quelllistendateien | Fremdquellen und ergänzende Archive untersuchen |
/var/cache/apt/archives/ | Heruntergeladene Paketarchive | Speicherverbrauch und Cache bereinigen |
/var/log/dpkg.log | Detailliertes dpkg-Protokoll | Installierte, entfernte und konfigurierte Pakete zeitlich nachvollziehen |
/var/log/apt/history.log | Zusammenfassung der APT-Aktionen | Zeitpunkte sowie installierte, entfernte oder aktualisierte Pakete prüfen |
/var/log/apt/term.log | Detaillierte Terminalausgaben von APT | Fehler, Dialoge und Ablauf einer Paketaktion untersuchen |
tail -n 30 /var/log/apt/history.log
tail -n 50 /var/log/dpkg.log
Ältere Logs werden häufig rotiert und komprimiert. Bei einer längeren Untersuchung müssen daher auch ältere Logdateien berücksichtigt werden.
Sicherer Arbeitsablauf
- Repository-Konfiguration in
/etc/apt/sources.listund/etc/apt/sources.list.d/kontrollieren. - Paketindex aktualisieren:
sudo apt-get update. - Die geplante Aktion simulieren, zum Beispiel mit
sudo apt-get --simulate install PAKETNAME. - Die angezeigten Installationen, Upgrades und Entfernungen prüfen.
- Die Aktion ausführen und die Ausgabe auf Fehler achten.
- Bei größeren Änderungen Logs und Systemzustand kontrollieren.
Bei einer Meldung über eine Sperrdatei läuft meist bereits ein anderer APT- oder dpkg-Prozess, etwa eine grafische Paketverwaltung oder ein automatischer Update-Dienst. Warte den Vorgang ab oder identifiziere ihn gezielt. Beende Prozesse nur, wenn ihr Zustand sicher beurteilt werden kann. Sperrdateien dürfen nicht blind gelöscht werden, weil dadurch die Paketdatenbank beschädigt werden kann.
Typische Fehler systematisch beheben
Installation wegen nicht erfüllbarer Abhängigkeiten abgebrochen
sudo apt-get updateausführen und Fehler in den Quellen beheben.- Mit
sudo apt-get checkden Paketstatus prüfen. - Bei unterbrochener Konfiguration
sudo dpkg --configure -aausführen. - Danach gegebenenfalls
sudo apt-get --fix-broken installverwenden. - Bei wiederkehrenden Problemen Fremdquellen, gemischte Distributionen und Paket-Pinning untersuchen.
Upgrade möchte unerwartet viele Pakete entfernen
sudo apt-get --simulate upgrade
sudo apt-get --simulate full-upgrade
Bestätige die Änderung nicht, bevor die Ursache klar ist. Mögliche Gründe sind Abhängigkeitswechsel, Paketkonflikte, unpassende Quellen oder ein nicht korrekt vorbereitetes Release-Upgrade. Für umfangreiche Änderungen sind Sicherungen und ein Wartungsfenster ratsam.
Root-Dateisystem ist fast voll
- Zuerst
sudo apt-get autocleanals vorsichtige Cache-Bereinigung verwenden. - Mit
sudo apt-get --simulate autoremovenicht mehr benötigte Abhängigkeiten prüfen. - Bei Bedarf
sudo apt-get cleaneinsetzen und den erneuten Downloadbedarf beachten.
Wichtige apt-get-Aktionen im Vergleich
| Befehl | Zweck | Ändert installierte Pakete? | Wichtige Hinweise |
|---|---|---|---|
update | Paketindex aus Quellen neu laden | Nein | Vor Installationen und Upgrades ausführen |
install | Pakete und Abhängigkeiten installieren | Ja | Mehrere Namen, Versionen und Ziel-Suites möglich |
upgrade | Reguläre Aktualisierung installierter Pakete | Ja | Entfernt regulär keine installierten Pakete |
full-upgrade / dist-upgrade | Abhängigkeiten umfassend auflösen | Ja | Kann Pakete installieren oder entfernen |
remove | Programmpaket entfernen | Ja | Konfiguration bleibt üblicherweise erhalten |
purge | Paket samt systemweiter Konfiguration entfernen | Ja | Persönliche Dateien werden nicht automatisch entfernt |
autoremove | Nicht mehr benötigte automatische Abhängigkeiten entfernen | Ja | Vorher simulieren, um Metapakete zu schützen |
check | Abhängigkeitsstruktur prüfen | Nein | Hilfreich bei Diagnose |
clean | Gesamten Paketcache leeren | Installierte Pakete nein | Spätere Installationen laden Archive erneut |
autoclean | Veraltete oder nicht mehr ladbare Archive entfernen | Installierte Pakete nein | Konservative Cache-Bereinigung |
Kurzübersicht für die Praxis
# Paketindex erneuern
sudo apt-get update
# Ein Paket installieren
sudo apt-get install PAKETNAME
# Aktionen vorab prüfen
sudo apt-get --simulate upgrade
# Regulär aktualisieren
sudo apt-get upgrade
# Umfangreicher aktualisieren
sudo apt-get --simulate full-upgrade
sudo apt-get full-upgrade
# Paket entfernen oder vollständig bereinigen
sudo apt-get remove PAKETNAME
sudo apt-get purge PAKETNAME
# Abhängigkeiten prüfen und reparieren
sudo apt-get check
sudo dpkg --configure -a
sudo apt-get --fix-broken install
# Cache bereinigen
sudo apt-get autoclean
Für die interaktive Alternative und weiterführende Paketverwaltung ist der apt-get-Befehl die stabile Grundlage; verwandte Werkzeuge wie apt-cache, dpkg und APT-Pinning ergänzen ihn bei Suche, Diagnose und Versionssteuerung.