apt-get-Befehl unter Linux: Pakete aktualisieren, installieren und entfernen
Lerne apt-get auf Debian- und Ubuntu-Systemen: Paketquellen aktualisieren, Pakete installieren, upgraden, entfernen, Abhängigkeiten prüfen und den Cache verwalten.
apt-get ist ein Kommandozeilenwerkzeug für die Paketverwaltung auf Debian-basierten Linux-Distributionen. Mit dem Befehl lassen sich Softwarepakete und ihre Abhängigkeiten installieren, aktualisieren, entfernen und prüfen.
Dieses Tutorial richtet sich an Einsteiger und Administratoren von Debian, Ubuntu und verwandten Distributionen. Grundkenntnisse im Terminal, bei sudo und bei Dateien und Verzeichnissen sind hilfreich. Eine Einführung bietet der Artikel Einführung in Linux.
Was ist apt-get?
APT steht für „Advanced Package Tool“ und ist das Paketverwaltungssystem von Debian-basierten Distributionen. Ein Paket ist eine installierbare Softwareeinheit mit Program Dateien, Metadaten und Angaben zu benötigten Abhängigkeiten.
apt-get führt Paketverwaltungsaktionen im Terminal aus. Für Skripte und automatisierte Abläufe ist es besonders geeignet, weil seine Bedienoberfläche und Ausgabe auf stabile, nicht-interaktive Verwendung ausgelegt sind.
Der Befehl apt bietet eine modernere, benutzerfreundliche Oberfläche für interaktive Terminal-Sitzungen. Beide Befehle greifen auf dasselbe APT-System zu. Für Skripte wird häufig apt-get verwendet; für manuelle Arbeit ist apt oft übersichtlicher.
Verändernde Aktionen benötigen administrative Rechte, weil Dateien unter Systemverzeichnissen geändert, Pakete installiert oder entfernt und die Paketdatenbank aktualisiert werden. Deshalb beginnt ein typischer Befehl mit sudo:
sudo apt-get install curl
Paketquellen und Paketinformationen
Ein Repository, auf Deutsch Paketquelle, ist ein Server oder Verzeichnis, aus dem APT Paketlisten und Paketdateien bezieht. Die Paketlisten enthalten Metadaten über verfügbare Pakete, Versionen, Abhängigkeiten und Prüfsummen.
Die zentrale Konfigurationsdatei ist:
/etc/apt/sources.list
Zusätzliche Quellen liegen üblicherweise in Dateien unter:
/etc/apt/sources.list.d/
Eine Repository-Zeile folgt grundsätzlich diesem Schema:
deb [Optionen] URI SUITE KOMPONENTE...
deb bezeichnet eine Quelle für fertige Binärpakete. deb-src bezeichnet eine Quelle für Paketquellcode. Die konkrete URI, Suite und Komponente hängen von Distribution und Version ab.
Die Konfiguration der Quellen bestimmt, welche Paketlisten APT laden kann. Erst nach apt-get update kennt APT die aktuellen verfügbaren Versionen aus diesen Quellen. Eine Installation verwendet anschließend diese lokalen Metadaten, um passende Pakete und Abhängigkeiten auszuwählen.
Paketlisten mit update aktualisieren
Mit update lädt APT aktuelle Paketlisten und Metadaten aus den konfigurierten Quellen:
sudo apt-get update
Dieser Befehl aktualisiert nicht die bereits installierten Programme. Er erneuert nur die lokale Kenntnis darüber, welche Pakete und Versionen verfügbar sind. Vor einem Upgrade oder einer Installation sollte deshalb meist zuerst update ausgeführt werden.
Typische erfolgreiche Ausgabezeilen zeigen, dass eine Quelle erreicht und eine Paketliste geladen wurde. Meldungen wie „Ign“, „Err“ oder Hinweise auf fehlende Signaturen verdienen Aufmerksamkeit. Ein Fehler kann durch eine falsche URL, eine nicht passende Suite, DNS- oder Netzwerkprobleme, einen Proxy oder einen ungültigen Signaturschlüssel entstehen.
sudo apt-get update
# Danach beispielsweise:
sudo apt-get upgrade
Installierte Pakete mit upgrade aktualisieren
upgrade aktualisiert installierte Pakete, sofern dies ohne das Entfernen von Paketen und ohne komplexe Änderungen an Abhängigkeiten möglich ist:
sudo apt-get update
sudo apt-get upgrade
Mit -u oder der ausgeschriebenen Option --show-upgraded werden die betroffenen Pakete angezeigt:
sudo apt-get upgrade -u
Eine Vorschau ohne Änderungen ist mit -s oder --simulate möglich:
sudo apt-get upgrade --simulate
upgrade, dist-upgrade und full-upgrade im Vergleich
dist-upgrade kann Abhängigkeiten umfassender auflösen als upgrade. Dafür darf APT neue Pakete installieren und notwendige Pakete entfernen. Die moderne gleichwertige Bezeichnung ist full-upgrade.
sudo apt-get dist-upgrade
sudo apt-get full-upgrade
Vor allem bei dist-upgrade sollte die Simulation geprüft werden:
sudo apt-get update
sudo apt-get dist-upgrade --simulate
Kontrolliere dabei insbesondere die Liste der zu entfernenden Pakete. Ein Distributions-Upgrade ist nicht dasselbe wie ein Wechsel auf eine neue Hauptversion von Debian oder Ubuntu. Dafür sind häufig distributionsspezifische Werkzeuge und zusätzliche Vorbereitungsschritte erforderlich.
Pakete installieren
Ein Paket wird mit seinem Namen installiert:
sudo apt-get install PAKETNAME
Mehrere Pakete können in einem Schritt angegeben werden:
sudo apt-get install curl wget
APT löst erforderliche Abhängigkeiten automatisch auf und installiert die zusätzlich benötigten Pakete. Eine bestimmte Version kann angegeben werden, wenn diese in den aktivierten Quellen verfügbar ist:
sudo apt-get install PAKETNAME=VERSION
Vor größeren Installationen empfiehlt sich eine Simulation:
sudo apt-get --simulate install PAKETNAME
So lassen sich neue, zu aktualisierende und möglicherweise zu entfernende Pakete vorab erkennen.
Pakete entfernen: remove, purge und autoremove
remove entfernt ein Paket, lässt aber systemweite Konfigurationsdateien in der Regel zurück:
sudo apt-get remove PAKETNAME
purge entfernt zusätzlich die zugehörigen systemweiten Konfigurationsdateien:
sudo apt-get purge PAKETNAME
Automatisch installierte Abhängigkeiten, die kein anderes Paket mehr benötigt, können mit autoremove gefunden und entfernt werden:
sudo apt-get autoremove
Paketdatenbank und Abhängigkeiten prüfen
check untersucht, ob der Paketstatus inkonsistent ist oder Abhängigkeiten nicht erfüllt sind:
sudo apt-get check
Der Befehl dient hauptsächlich der Diagnose. Bei unterbrochenen Installationen oder fehlenden Abhängigkeiten kann ein Reparaturversuch mit -f install helfen:
sudo apt-get -f install
Auch dieser Befehl kann Systemänderungen durchführen. Lies die vorgeschlagene Aktion und mögliche Paketentfernungen vor der Bestätigung.
Paket-Cache verwalten
Heruntergeladene Paketarchive werden normalerweise unter /var/cache/apt/archives/ zwischengespeichert. Sie sind nicht die bereits installierten Programme.
Mit clean wird dieser Cache vollständig geleert:
sudo apt-get clean
Installierte Pakete bleiben dabei erhalten. autoclean ist zurückhaltender und entfernt nur alte Archive, die aus den konfigurierten Quellen nicht mehr heruntergeladen werden können:
sudo apt-get autoclean
Protokolle und Nachvollziehbarkeit
Paketverwaltungsprotokolle helfen dabei, Änderungen am System nachzuvollziehen. Das detaillierte dpkg-Protokoll liegt typischerweise hier:
less /var/log/dpkg.log
Die APT-Historie zeigt unter anderem Installationen, Aktualisierungen und Entfernungen:
less /var/log/apt/history.log
Für eine gezielte Untersuchung kann auch nach Paketnamen gesucht werden. Beachte, dass ältere Protokolle abhängig von der Logrotation komprimiert oder in zusätzliche Dateien ausgelagert sein können.
Fehlerbehebung bei apt-get
Fehler bei apt-get update
Ermittelt zunächst die betroffene Datei unter /etc/apt/sources.list oder in /etc/apt/sources.list.d/. Prüfe anschließend URL, Distribution beziehungsweise Suite, Repository-Komponente, Netzwerk, DNS und Signaturschlüssel. Eine nicht vertrauenswürdige oder inkompatible Fremdquelle sollte vorübergehend deaktiviert werden, statt Sicherheitsprüfungen zu umgehen.
Pakete werden bei upgrade zurückgehalten
Aktualisiere zuerst die Paketlisten. Wenn ein Paket neue Abhängigkeiten oder eine Entfernung benötigt, kann upgrade es zurückhalten. Prüfe die möglichen Änderungen mit:
sudo apt-get update
sudo apt-get dist-upgrade --simulate
apt-mark showhold
Unerfüllte Abhängigkeiten
Eine unterbrochene Paketaktion, inkompatible Fremdquellen oder nicht vollständig konfigurierte Pakete können die Ursache sein. Beginne mit:
sudo apt-get check
sudo apt-get -f install
Untersuche danach widersprüchliche Paketversionen und Fremdquellen.
Gesperrter Paketmanager
Eine Sperrdatei bedeutet häufig, dass bereits ein anderer APT-, dpkg- oder grafischer Aktualisierungsprozess läuft. Lass diesen Vorgang regulär abschließen und versuche es danach erneut. Sperrdateien sollten nicht blind gelöscht werden.
Kein Speicherplatz
Prüfe den freien Speicher und bereinige bei Bedarf den Paket-Cache:
df -h
sudo apt-get clean
sudo apt-get autoremove
Bei autoremove muss die vorgeschlagene Liste kontrolliert werden.
Paketname wird nicht gefunden
Aktualisiere die Paketlisten und suche nach dem tatsächlichen Paketnamen:
sudo apt-get update
apt-cache search SUCHBEGRIFF
Falls das Paket weiterhin fehlt, prüfe aktivierte Repository-Komponenten und die passende Paketquelle. Mehr Informationen bietet der Artikel apt-cache-Befehl.
Ein sicherer Arbeitsablauf
- Prüfe, ob die Paketquellen zur installierten Distribution passen.
- Aktualisiere die Paketlisten mit
sudo apt-get update. - Simuliere größere Installationen, Entfernungen oder vollständige Upgrades.
- Kontrolliere besonders die Liste entfernter Pakete und die Änderungen an wichtigen Diensten.
- Führe die Aktion mit administrativen Rechten aus und lies die Ausgabe.
- Untersuche bei Problemen
apt-get check,apt-get -f installund die Protokolle.
Prüfungsrelevante Merksätze
updateaktualisiert Paketlisten, nicht installierte Programme.- Die normale Reihenfolge lautet:
sudo apt-get update, danachsudo apt-get upgrade. upgradevermeidet normalerweise notwendige Paketentfernungen;dist-upgradebeziehungsweisefull-upgradelöst Abhängigkeiten umfassender auf.removelässt systemweite Konfiguration meist zurück,purgeentfernt sie.autoremovekann mehrere Pakete entfernen und muss deshalb kontrolliert werden.cleanentfernt Cache-Archive, nicht installierte Software.- Ein Distributions-Versionswechsel ist nicht automatisch ein
dist-upgrade.
Zur Vertiefung eignen sich die Artikel über das APT-Paketverwaltungssystem, Paketverwaltung mit dpkg und Paketmanager und Paketverwaltung.