apt-get
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
- Kommandos
- apt-get update
- apt-get upgrade
- apt-get dist-upgrade
- apt-get install
- apt-get clean
- apt-get autoclean
- apt-get remove
- apt-get autoremove
- apt-get purge
- apt-get build-dep
- apt-get check
- apt-get source
- apt-get help
- apt-get dselect-upgrade
- apt-get markauto
- apt-get unmarkauto
- apt-get changelog
- apt-get download
- Optionen
- Beispiele
- Tipps
- Links
Alle Kommandos von apt-get werden im Terminal eingegeben [1]. Allgemein besteht ein apt-get-Befehl aus den Optionsschaltern, dem "command" (Kommando) und gegebenenfalls aus einem oder mehreren Paketnamen. Manche Kommandos benötigen keine Angabe von Paketnamen. Allerdings benötigt apt-get außer im Fall von -h
oder --help
die Angabe eines Kommandos. Ein Paketname besteht nur aus dem Namen des Pakets ohne Versionsangabe.
Eine Übersicht der auf APT aufsetzenden Programme bzw. graphischen Oberflächen findet sich im Artikel Paketverwaltung.
Hinweis:
apt-get benötigt in den allermeisten Fällen Root-Rechte [2].
Die allgemeine Form sieht so aus:
[sudo] apt-get [OPTIONEN] KOMMANDO [PAKET1] [PAKET2]
Kommandos zu apt-get | ||
update | Neueinlesen der Paketlisten | |
upgrade | installierte Pakete wenn möglich auf verbesserte Version aktualisieren | |
install PAKET(E) | Installation von PAKET(E) | |
remove PAKET(E) | Deinstallation von PAKET(E) | |
autoremove [PAKET(E)] | Deinstallation ungenutzter Abhängigkeiten [inkl PAKET(E) ] | |
purge PAKET(E) | wie remove , zusätzlich werden alle globalen Konfigurationen von PAKET(E) entfernt | |
source PAKET(E) | Quelltext von PAKET(E) herunterladen, entpacken und Patches anwenden | |
build-dep PAKET(E) | zum Erstellen von PAKET(E) notwendigen Abhängigkeiten installieren | |
dist-upgrade | wie upgrade , nur können bei dem Vorgang auch Pakete installiert bzw. entfernt werden | |
dselect-upgrade | in dselect gemachten Anweisungen folgen | |
clean | Leeren des Paketcaches (Entfernen von zur Installation heruntergeladenen Paketen) | |
autoclean | wie clean , nur werden ausschließlich Pakete, die nicht mehr in den Quellen verfügbar sind, gelöscht | |
check | Überprüfung auf Abhängigkeitsfehler | |
markauto PAKET(E) | PAKET(E) als "automatisch installiert" markieren | Diese beiden Befehle gelten als veraltet, es sollten stattdessen apt-mark auto PAKET(E) bzw. apt-mark manual PAKET(E) verwendet werden! Siehe dazu auch apt-mark. |
unmarkauto PAKET(E) | PAKET(E) als "manuell installiert" markieren | |
changelog PAKET(E) | Herunterladen und Anzeige des Changelogs von PAKET(E) | |
download PAKET(E) | PAKET(E) herunterladen |
Kommandos¶
apt-get update¶
update
liest alle in der /etc/apt/sources.list und in /etc/apt/sources.list.d/ eingetragenen Paketquellen neu ein. Hierbei erfolgt eine Prüfung auf die Signatur der Paketlisten. update
benötigt keine Angabe von Paketnamen.
Dieser Schritt ist vor einem upgrade
, dist-upgrade
oder nach dem Hinzufügen einer neuen Quelle zu empfehlen, um die aktuellsten Informationen zu den verfügbaren Paketen zu erhalten.
sudo apt-get [Option(en)] update
apt-get upgrade¶
upgrade
bringt die installierten Pakete auf den neuesten in den Paketquellen verfügbaren Stand. Hierbei werden weder neue Pakete installiert noch durch neue Abhängigkeiten unnötig gewordene Pakete deinstalliert. upgrade
benötigt keine Angabe von Paketnamen.
sudo apt-get [Option(en)] upgrade
apt-get dist-upgrade¶
dist-upgrade
bringt die installierten Pakete auf den neuesten in den Paketquellen verfügbaren Stand. Hierbei werden im Gegensatz zu upgrade
neue Pakete installiert und durch neue Abhängigkeiten unnötig gewordene Pakete ersetzt, auch wenn dies alte Abhängigkeiten beeinflusst. dist-upgrade
benötigt keine Angabe von Paketnamen.
sudo apt-get [Option(en)] dist-upgrade
Hinweis:
dist-upgrade
führt kein Upgrade auf eine neue Ubuntu-Version durch.
apt-get install¶
install
lädt das Paket bzw. die Pakete inklusive der noch nicht installierten Abhängigkeiten (und eventuell der vorgeschlagenen weiteren Pakete) herunter und installiert diese. Wendet man install
auf ein bereits installiertes Paket an, wird dieses unabhängig vom aktuellen Status als "manuell installiert" markiert. install
benötigt die Angabe mindestens eines Paketnamens, es können beliebig viele Pakete gleichzeitig angegeben werden. Diese werden durch ein Leerzeichen voneinander getrennt.
sudo apt-get [Option(en)] install PAKET1 [PAKET2]
Es lässt sich auch eine bestimmte verfügbare Version eines Paketes angeben:
sudo apt-get [Option(en)] install PAKET1=VERSION [PAKET2=VERSION]
apt-get clean¶
clean
löscht die bereits heruntergeladenen Installationsdateien aus dem Paket-Cache /var/cache/apt/archives/ und gibt so Festplattenspeicher frei. clean
benötigt keine Angabe von Paketnamen.
sudo apt-get [Option(en)] clean
apt-get autoclean¶
autoclean
löscht alle heruntergeladenen Paketinstallationsdateien, die aktuell nicht mehr in den Quellen verfügbar sind (Unterschied: clean
löscht ausnahmslos alle Installationsdateien). autoclean
benötigt keine Angabe von Paketnamen:
sudo apt-get [Option(en)] autoclean
apt-get remove¶
remove
deinstalliert ein oder mehrere Paket(e). Die Konfigurationsdateien, die durch die manuelle oder Autokonfiguration des Pakets erstellt wurden, bleiben erhalten. remove
benötigt die Angabe mindestens eines Paketnamens. Wenn mehrere Pakete gleichzeitig gelöscht werden sollen, müssen diese durch Leerzeichen voneinander getrennt werden.
sudo apt-get [Option(en)] remove PAKET1 [PAKET2]
apt-get autoremove¶
autoremove
deinstalliert nicht mehr benötigte Pakete, die als Abhängigkeit installiert wurden. autoremove
kann auf zwei Arten verwendet werden:
Ohne Angabe eines Paketnamens. Hierbei werden alle zur Zeit nicht mehr benötigten Abhängigkeiten deinstalliert (
remove
)Mit Angabe eines oder mehrerer Paketnamen. Hierbei wird zuerst das oder die angegebenen Paket(e) deinstalliert (
remove
), dann die frei gewordenen Abhängigkeiten deinstalliert. Es werden dabei aber immer auch sonstige nicht mehr benötigten Abhängigkeiten deinstalliert, falls diese sich auf dem System befinden sollten.
autoremove
benötigt keine Angabe von Paketnamen:
sudo apt-get [Option(en)] autoremove [PAKET1] [PAKET2]
apt-get purge¶
purge
kann auf zwei Arten verwendet werden:
Zur Deinstallation eines Pakets inklusive Löschung der globalen Konfiguration. Dies entspricht
remove
mit dem Parameter--purge
Zum Löschen der globalen Konfiguration eines Pakets nach der Deinstallation mit
remove
purge
benötigt die Angabe mindestens eines Paketnamens. Sollen mehrere Pakete und ihre globalen Konfigurationsdateien gelöscht werden, werden diese durch Leerzeichen voneinander getrennt. Der gleiche Effekt lässt sich mit dem Kommando remove --purge
erzielen.
sudo apt-get [Option(en)] purge PAKET1 [PAKET2]
apt-get build-dep¶
build-dep
installiert die zum Erstellen von Paket aus dem Quelltext nötigen Abhängigkeiten. build-dep
benötigt die Angabe mindestens eines Paketnamens.
sudo apt-get [Option(en)] build-dep PAKET1 [PAKET2]
apt-get check¶
check
überprüft die Liste der installierten Pakete auf Abhängigkeitsfehler. check
benötigt keine Angabe eines Paketnamens.
sudo apt-get [Option(en)] check
apt-get source¶
source
lädt das Quelltext-Paket des Pakets in das aktuelle Verzeichnis herunter, entpackt es und wendet evtl. vorhandene Patches an. source
benötigt die Angabe mindestens eines Paketnamens, aber keine Root-Rechte.
apt-get [Option(en)] source PAKET1 …
apt-get help¶
help
zeigt den Hilfetext an. Er kann auch via Option -h
oder --help
aufgerufen werden. Eine ausführliche Informationsseite findet man in der Manpage zu apt-get.
apt-get help
apt-get dselect-upgrade¶
dselect-upgrade
führt die von dselect gemachten oder manuell markierten Änderungen aus. dselect-upgrade
benötigt keine Angabe eines Paketnamens.
sudo apt-get [Option(en)] dselect-upgrade
apt-get markauto¶
markauto
markiert die übergebenen Pakete als automatisch installiert. markauto
benötigt die Angabe mindestens eines Paketnamens.
sudo apt-get [Option(en)] markauto PAKET1 [PAKET2]
Dies gilt jedoch als veraltet, es sollte stattdessen verwendet werden:
sudo apt-mark auto PAKET1 [PAKET2]
Siehe dazu auch apt-mark.
apt-get unmarkauto¶
unmarkauto
markiert die übergebenen Pakete als "manuell installiert". unmarkauto
benötigt die Angabe mindestens eines Paketnamens.
sudo apt-get [Option(en)] unmarkauto PAKET1 [PAKET2]
Dies gilt jedoch als veraltet, es sollte stattdessen verwendet werden:
sudo apt-mark manual PAKET1 [PAKET2]
Siehe dazu auch apt-mark.
apt-get changelog¶
changelog
lädt den Änderungsbericht (Changelog) des angegebenen Paket herunter und zeigt ihn an. changelog
benötigt sinnvollerweise die Angabe eines Paketnamens, aber keine Root-Rechte.
apt-get [Option(en)] changelog PAKET
apt-get download¶
download
lädt die Installationsdateien des angegebenen Pakets in das aktuelle Verzeichnis herunter. download
benötigt die Angabe mindestens eines Paketnamens, aber ebenfalls keine Root-Rechte.
apt-get [Option(en)] download PAKET1 [PAKET2]
Unter älteren Ubuntu-Versionen kann man stattdessen die Option -d
(siehe unten) verwenden:
sudo apt-get -d --reinstall install PAKET1 [PAKET2]
Die heruntergeladenen Pakete sind dann im Ordner /var/cache/apt/archives/ zu finden.
Optionen¶
apt-get bietet zahlreiche Schalter, um das Verhalten zu beeinflussen.
Kommandozeilenoptionen zu apt-get | ||
Lange Option | Kürzel | Beschreibung |
--arch-only | Nur Pakete mit der zum System passenden Architektur werden heruntergeladen. | |
--assume-yes , --yes | -y | Interaktive Fragen werden automatisch mit "YES"/"JA" beantwortet - aber nur, wenn diese keine evtl. kritischen Änderungen wie das entfernen eine gehaltenen Pakets, die Installation eines nicht-authentifizierten Pakets oder das Entfernen eines benötigten Pakets bedingen. |
--compile , --build | -b | Den Quelltext kompilieren, nachdem er heruntergeladen wurde. Benutzung in Verbindung mit source . |
--config-file | -c | Die angegebene Konfigurationsdatei benutzen, die die Standardkonfiguration ersetzt. |
--diff-only | Nur das Diff-File eines Patchsets herunterladen. | |
--download-only | -d | Pakete werden nur heruntergeladen, nicht installiert. |
--fix-broken | -f | Fehlende Abhängigkeiten werden nachinstalliert, kaputte Pakete werden eventuell deinstalliert. Es erlaubt die Nutzung von install oder remove ohne Angabe von Paketnamen. |
--fix-missing , --ignore-missing | -m | Nicht downloadbare Pakete werden auf "hold" gesetzt. In Verbindung mit --no-download werden nur Pakete im Paket-Cache benutzt. |
--ignore-hold | Ein Paket wird trotz gesetztem Status "hold" auf die neueste Version gebracht. | |
--install-suggests | Vorgeschlagene Pakete werden mitinstalliert. | |
--list-cleanup | apt löscht nach update gespeicherte Listen aus Quellen, die nicht mehr in der sources.list stehen (standardmäßig aktiv). | |
--no-install-recommends | Empfohlene Pakete werden nicht automatisch installiert. | |
--no-list-cleanup | apt behält nach update die Paketlisten nicht mehr existenter Quellen der sources.list. Nützlich bei häufigem Wechsel des Mirrors. | |
--no-upgrade | Bereits installierte Pakete werden auf dem alten Stand belassen und nicht auf die neueste Version gebracht. In Verbindung mit install ist es so eventuell möglich, alte Abhängigkeiten beizubehalten. | |
--only-upgrade | Ausschließlich bereits installierte Pakete werden auf eine neue Version gebracht, keine neuen Pakete werden installiert. | |
--option | -o | Option: Die angegebene Option benutzen, statt dem in der Standardkonfiguration festgelegten Wert. |
--print-uris | Ausgabe der "download URIs" statt Herunterladen der Quellen bzw Pakete in Verbindung mit update oder install . | |
--purge | Wird in Verbindung mit remove oder autoremove benutzt. Es werden zusätzlich zu den Paketen Konfigurationsdateien gelöscht. | |
--quiet | -q | Programmausgabe ohne Fortschrittsanzeige mit logbarer Ausgabe. Erhöhung des "Stille"-Levels mit -qq möglich. -qq impliziert -y , um einen automatischen Ablauf zu ermöglichen. |
--reinstall | Ein bereits installiertes Paket wird in Verbindung mit install neu aus den Quellen installiert, obwohl es bereits auf der aktuellen Version ist. | |
--show-upgraded | -u | Ausgabe einer Liste aller Pakete, die auf die neueste Version gebracht werden. |
--simulate , --just-print , --dry-run , --recon , --no-act | -s | Die angedachten Änderungen werden simuliert, keine Änderung am System. Seit Version ?? ohne Root-Rechte möglich. |
--tar-only | Ausschließlich das TAR-File des Quelltextes herunterladen. | |
--target-release , --default-release | -t | Setzt die Priorität für die Quellen des genannten Release-Namens auf 990. |
--trivial-only | Gegenstück zu --assume-yes . Alle Fragen werden mit "NO" beantwortet, so dass nur unkritische Operationen automatisch ausgeführt werden. | |
--verbose-versions | -V | Die Textausgabe der heruntergeladenen Daten wird um die vollen Versionsangaben erweitert. |
Hinweis:
Im Internet findet man in älteren Artikeln, Foreneinträgen etc. zu apt-get
manchmal einen Hinweis auf die Option --force-yes
. Diese Option gilt ab apt-get Version 1.1 - also Ubuntu 16.04 und neuere Versionen - als veraltet und sollte nicht mehr verwendet werden. Weitere Hinweise dazu findet man in der der Manpage zu apt-get.
Wie bei Shell-Befehlen üblich, lassen sich kurze Optionen zu einem Block zusammenfassen. Beispiel:
apt-get -s -t lucid update
lässt sich zusammenfassen in
apt-get -st lucid update
Beispiele¶
Deinstallation inklusive Abhängigkeiten und Konfiguration¶
Durch die Kombinationen von Kommando und Optionen hat man die Möglichkeit, mehrere Aktionen zu bündeln. Zum Beispiel die Deinstallation eines Pakets, der dann nicht mehr benötigten Abhängigkeiten sowie die Löschung der zugehörigen systemweiten Konfiguration des Pakets.
sudo apt-get --purge autoremove PAKET
Hinweis:
Viele Anwendungsprogramme legen ihre spezifische Konfiguration durch den Benutzer in dessen Homeverzeichnis ab. Diese Daten werden niemals automatisch gelöscht.
Beispielskripte¶
Der Ablauf eines "update"-Vorgangs lässt sich als Skript abbilden und zum Beispiel mit cron aufrufen. Hier werden einige Beispiele je nach gewünschtem Ergebnis gezeigt, die allerdings nur einen kleinen Teil der Möglichkeiten von apt
nutzen.
Halbautomatische Aktualisierung¶
Falls man bei einem selten kontrollierten Rechner die Aktualisierungen vor dem Einspielen zwar einsehen möchte, aber den Zeitaufwand möglichst gering halten will, bietet sich (von diversen Automatismen abgesehen) folgender Ablauf an:
1 2 3 4 | #!/bin/bash apt-get update apt-get -d dist-upgrade apt-get autoclean |
Hier werden zuerst die Paketlisten auf den neuesten Stand gebracht, dann vorhandene Aktualisierungspakete heruntergeladen und schließlich in den Quellen nicht mehr vorhandene Pakete aus dem Cache gelöscht, um Speicherplatz zu sparen. Dieser Ablauf kann automatisiert werden, so dass bei der nächsten Anmeldung die nötigen Pakete für einen "update"-Vorgang bereits vorliegen.
Automatische Sicherheitsaktualisierung¶
Zusätzlich zum zuvor beschriebenen Verfahren kann man auch sicherheitskritische Aktualisierungen sofort einspielen:
1 2 3 4 5 | #!/bin/bash apt-get update apt-get -yt $(lsb_release -cs)-security dist-upgrade apt-get -d dist-upgrade apt-get autoclean |
Automatische Sicherheitsaktualisierung mit Einspielen unkritischer Pakete¶
Zusätzlich kann man unkritische Aktualisierungen auch automatisch einspielen und nur noch diejenigen Pakete manuell aktualisieren, die eine Nachfrage stellen:
1 2 3 4 5 | #!/bin/bash apt-get update apt-get -yt $(lsb_release -cs)-security dist-upgrade apt-get --trivial-only dist-upgrade apt-get autoclean |
Tipps¶
Tipps zum Umgang mit der Paketverwaltung finden sich im Artikel Paketverwaltung/Tipps.
Links¶
APT Übersichtsseite
apt-pinning - Festsetzen der Prioritäten von APT
apt - Kommandozeilenprogramm zum Verwalten und Durchsuchen von Paketen
Advanced Package Tool - Wikipedia
APT - Wartung u. Aktualisierung 🇬🇧 ⮷ (PDF) - 28 Seiten, 4,2 MB. Auszug aus dem "debian handbook", Kapitel 6, v. 14.11.2011
cron - Zeitgesteuerte automatische Ausführung von Skripten
cron-apt - Automatisierung der Aktualisierungsprozesse
dpkg - Debian-Paketmanager
Aktualisierungen (Abschnitt „Problematische-Aktualisierung-deinstallieren“) - Problematische Version deinstallieren
Recovery Modus - apt-get im Wiederherstellungsmodus anwenden
apt-get, apt-cache lässt sich schon lange mit apt abkürzen 🇩🇪 - Blog-Beitrag