ubuntuusers.de

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:

Wiki/Icons/terminal.png 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:

  1. Ohne Angabe eines Paketnamens. Hierbei werden alle zur Zeit nicht mehr benötigten Abhängigkeiten deinstalliert (remove)

  2. 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:

  1. Zur Deinstallation eines Pakets inklusive Löschung der globalen Konfiguration. Dies entspricht remove mit dem Parameter --purge

  2. 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.

Diese Revision wurde am 9. September 2022 15:51 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, Paketverwaltung, Installation, Server, System