Ubuntu 18.04 Server / apt: Pakete installieren, entfernen und aktualisieren
Unter Ubuntu 18.04 Server aktualisiert apt update die Paketlisten. apt install, apt remove und apt upgrade installieren, entfernen und aktualisieren Pakete. Ein Listenabruf aktualisiert keine Programme. Prüfen Sie die vorgesehenen Paketänderungen vor einer Entfernung oder einer umfassenden Paketaktualisierung.
Aufgabe von APT und Vorbereitungen
APT (Advanced Package Tool) ist eine Werkzeugsammlung, die Software anhand von Paket- und Abhängigkeitsinformationen aus Paketquellen verwaltet. Abhängigkeiten sind Bibliotheken oder andere Pakete, die ein Programm zusätzlich benötigt. Die Beispiele beziehen sich auf APT 1.6 in Ubuntu 18.04; konkrete Versionen und Änderungen hängen von Paketquellen und installiertem Bestand ab.
Die reguläre Sicherheitswartung für Ubuntu 18.04 LTS endete im Mai 2023. Prüfen Sie bei bestehenden Servern auch die erweiterte Sicherheitswartung durch Ubuntu Pro oder Ihren Plan für ein Betriebssystem-Upgrade. Ein Spiegelserverwechsel oder apt upgrade verlängert den Support nicht. Siehe den offiziellen Ubuntu-Veröffentlichungszyklus.
Installation, Entfernung und Listenaktualisierung erfordern normalerweise sudo-Rechte, Suche und Informationsabfragen hingegen nicht. Sichern Sie auf Produktionsservern Einstellungen und wichtige Daten und planen Sie mögliche Dienstneustarts ein. Verzichten Sie anfangs auf die automatische Bestätigung mit -y, um die Änderungen selbst zu prüfen.
apt ist für die interaktive Arbeit im Terminal gedacht. Für Skripte sollten Sie bei wichtigen Kompatibilitätsanforderungen an Ausgabe und Verhalten apt-get und apt-cache bevorzugen. Insbesondere unterscheiden sich apt upgrade und apt-get upgrade in der standardmäßigen Behandlung von Abhängigkeiten. Siehe das Ubuntu-18.04-Handbuch zu apt.
Pakete suchen und installieren
Das Beispiel verwendet tree zur Darstellung von Verzeichnisstrukturen. Ersetzen Sie es auf Ihrem Server durch das benötigte Paket, prüfen Sie aber zuerst Beschreibung und Installationskandidaten.
- Laden Sie aktuelle Paketinformationen aus den Quellen. Beheben Sie etwaige Fehler, bevor Sie fortfahren.
sudo apt update
- Suchen Sie das Paket und prüfen Sie seine Details.
apt-cache policyunterscheidet installierte Version, Kandidatenversion und Paketquellen.
apt search tree
apt show tree
apt-cache policy tree
apt search durchsucht auch Beschreibungen; daher können Treffer ohne tree im Namen erscheinen. Prüfen Sie mit apt show Beschreibung, Abhängigkeiten und Größe und vergleichen Sie Installed und Candidate in apt-cache policy. Fehlt ein Kandidat, kontrollieren Sie zunächst Quellen und Listenabruf. Siehe das Handbuch zu apt-cache.
- Simulieren Sie die Installation, um neue, aktualisierte oder entfernte Pakete zu prüfen, und installieren Sie anschließend tatsächlich.
sudo apt-get --simulate install tree
--simulate ändert keine Pakete. Der Plan gilt jedoch für den Zustand zum Simulationszeitpunkt. Lesen Sie deshalb auch die Bestätigung unmittelbar vor der wirklichen Installation. Brechen Sie bei unerwarteten Entfernungen ab und prüfen Sie Abhängigkeiten und Paketquellen.
sudo apt install tree
- Prüfen Sie nach der Installation den Paketeintrag und ob das Programm ausführbar ist.
dpkg-query -W tree
tree --version
Der erste Befehl zeigt registrierten Paketnamen und Version, der zweite die Versionsinformationen des Programms. Muss keine neue Version installiert werden, kann APT melden, dass das Paket bereits aktuell ist. Erforderliche Abhängigkeiten werden mitinstalliert. Das Handbuch zu apt-get beschreibt die Operationen und Simulationsoptionen.
Paketlisten und installierte Pakete aktualisieren
update aktualisiert nur die Paketlisten aus den Quellen, ohne installierte Programme zu ändern. Prüfen Sie verfügbare Aktualisierungen mit den folgenden Befehlen.
sudo apt update
apt list --upgradable
apt list --installed
apt list --upgradable zeigt aktualisierbare, apt list --installed installierte Pakete. apt list allein kann Pakete anhand von Namenskriterien auflisten, aber eine umfangreiche Ausgabe erzeugen.
Für die übliche Aktualisierung installierter Pakete verwenden Sie sudo apt upgrade. Unter Ubuntu 18.04 kann apt upgrade erforderliche neue Abhängigkeiten installieren, entfernt aber keine bestehenden Pakete. Das standardmäßige apt-get upgrade installiert dagegen auch keine neuen Pakete und kann deshalb Aktualisierungen zurückhalten.
sudo apt upgrade
sudo apt full-upgrade kann bestehende Pakete entfernen, um Abhängigkeiten aufzulösen. Führen Sie es nicht automatisch aus, nur weil ein normales Upgrade Pakete zurückhält: Prüfen Sie zuerst Installationen, Entfernungen und Auswirkungen auf wichtige Dienste. Es ist außerdem kein Distributions-Upgrade-Befehl, der Ubuntu 18.04 auf eine andere Ubuntu-Version umstellt.
Bleiben Aktualisierungen übrig, prüfen Sie mit apt-mark showhold auch absichtlich zurückgehaltene Pakete. Für einzelne Pakete oder ausschließlich Sicherheitsaktualisierungen siehe die Anleitung zur gezielten Paket- oder Sicherheitsaktualisierung. Prüfen Sie anschließend erneut apt list --upgradable und bewerten Sie gesondert, ob laufende Dienste oder der Kernel neu gestartet werden müssen.
Pakete entfernen und Abhängigkeiten oder Cache bereinigen
Wählen Sie die Methode danach, welche Einstellungen erhalten bleiben sollen und was entfernt werden soll. Die folgenden Befehle sind Alternativen, keine vollständig nacheinander auszuführende Anleitung.
| Befehl | Entfernungsumfang |
|---|---|
apt remove tree |
Entfernt das Paket, lässt dessen verwaltete Konfigurationsdateien normalerweise bestehen. |
apt purge tree |
Entfernt das Paket und seine verwalteten Konfigurationsdateien. Das bedeutet nicht, dass alle Dateien in Benutzerverzeichnissen gelöscht werden. |
apt autoremove |
Entfernt automatisch installierte Abhängigkeiten, die APT inzwischen als unnötig einstuft. |
Um beispielsweise tree zu entfernen, simulieren Sie zunächst den Vorgang und prüfen alle betroffenen Pakete. Danach folgt die tatsächliche Entfernung. Stellen Sie den ändernden Befehlen aus der Tabelle wie unten sudo voran.
sudo apt-get --simulate remove tree
sudo apt remove tree
Sollen auch Einstellungen entfernt werden, wählen Sie nach Prüfung sudo apt purge tree. Ein versehentlich mit remove entferntes Paket lässt sich mit sudo apt install tree erneut installieren. Durch purge gelöschte eigene Einstellungen kehren dadurch jedoch möglicherweise nicht zurück; dafür brauchen Sie eine Sicherung.
Prüfen Sie auch vor dem Bereinigen der Abhängigkeiten die Liste. Fahren Sie nicht fort, wenn direkt verwendete Werkzeuge oder betrieblich notwendige Pakete enthalten sind.
sudo apt-get --simulate autoremove
sudo apt autoremove
Ein weiterhin benötigtes Paket, das zur automatischen Entfernung vorgeschlagen wird, können Sie mit sudo apt-mark manual PACKAGE als manuell installiert markieren. Ersetzen Sie PACKAGE durch den tatsächlichen Namen. Die Markierung repariert keine anderen Abhängigkeitsprobleme. Siehe das Handbuch zu apt-mark.
Um installierte Programme zu behalten und nur heruntergeladene Paketdateien zu löschen, verwenden Sie sudo apt clean. sudo apt autoclean bereinigt zwischengespeicherte Paketdateien, die nicht mehr heruntergeladen werden können. Diese Befehle entfernen keine installierten Pakete wie autoremove.
Paketquellen prüfen und Spiegelserver wechseln
Unter Ubuntu 18.04 stehen Paketquellen üblicherweise in /etc/apt/sources.list und einzelnen Dateien unter /etc/apt/sources.list.d/. Ermitteln Sie bei langsamen Downloads oder Spiegelserverfehlern zuerst den in der Fehlermeldung genannten Host und die tatsächliche Konfigurationsdatei.
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
Wählen Sie aus der offiziellen Liste der Ubuntu-Archivspiegel. Sie unterscheidet sich von der CD-Spiegelliste für Installations-ISOs. Prüfen Sie neben räumlicher Nähe auch Synchronisationsstand und Verfügbarkeit von bionic. Kein bestimmter Spiegelserver ist garantiert immer der schnellste.
- Sichern Sie die Datei, die Sie tatsächlich bearbeiten werden. Existiert der folgende Sicherungsname bereits, wählen Sie einen anderen, um die alte Sicherung zu erhalten.
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.backup
- Öffnen Sie die Datei im Standardeditor und ändern Sie nur die URI des betreffenden Ubuntu-Spiegels. Steht der Eintrag in einer eigenen Datei, sichern und bearbeiten Sie diese.
sudoedit /etc/apt/sources.list
Die folgende Zeile erläutert das Format; ersetzen Sie damit nicht die gesamte Datei. Erhalten Sie benötigte Suites wie bionic und bionic-updates sowie bestehende Komponenten wie main und universe. Ersetzen Sie nicht pauschal Sicherheits-, Ubuntu-Pro- oder Drittanbieteradressen.
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
- Aktualisieren Sie nach dem Speichern die Listen und prüfen Sie Kandidatenversion und Herkunft des benötigten Pakets. Installieren oder aktualisieren Sie nicht, solange Fehler bestehen.
sudo apt update
apt-cache policy tree
Die Syntax erklärt das Ubuntu-18.04-Handbuch zu sources.list. Ein 404-Fehler rechtfertigt nicht, bionic durch den Codenamen einer anderen Ubuntu-Version zu ersetzen. Prüfen Sie zunächst den Spiegelinhalt und den aktuell unterstützten Quellenpfad.
Fehler beheben und Wiederherstellungsgrenzen verstehen
- Paket nicht gefunden: Prüfen Sie Schreibweise, Fehler von apt update, benötigte Quellenkomponenten und unterstützte Architekturen. Ein Befehl macht ein Paket nicht verfügbar, das in den eingetragenen Quellen fehlt.
- Sperrfehler: Prüfen Sie, ob ein anderer apt- oder dpkg-Vorgang oder eine automatische Aktualisierung läuft, und warten Sie auf dessen reguläres Ende. Löschen Sie nicht zuerst Sperrdateien und beenden Sie den Prozess nicht gewaltsam.
- Signatur- oder Release-Dateifehler: Prüfen Sie URI, Distribution, Schlüsselkonfiguration und Serverzeit. Deaktivieren Sie keine Echtheitsprüfung und fügen Sie keine Quelle ohne Vertrauensprüfung hinzu.
Wurde ein vorheriger Paketvorgang tatsächlich unterbrochen und läuft keine andere Verwaltungsaufgabe, kann die folgende Reihenfolge ausstehende Konfiguration abschließen und die Abhängigkeitsreparatur prüfen. Der erste Befehl konfiguriert tatsächlich Pakete; lesen Sie seine Ausgabe. Der zweite zeigt nur den Reparaturplan.
sudo dpkg --configure -a
sudo apt-get --simulate --fix-broken install
Führen Sie sudo apt --fix-broken install nur aus, wenn die Reparatur erforderlich ist und der Plan keine unerwarteten Entfernungen wichtiger Pakete vorsieht. Wenden Sie Reparaturbefehle nicht wiederholt auf Fehler mit unterschiedlichen Ursachen an.
Um nur einen Spiegelwechsel rückgängig zu machen, stellen Sie die gesicherte Konfigurationsdatei wieder her und aktualisieren die Paketlisten. Wurde eine andere Datei bearbeitet, verwenden Sie deren Sicherung.
sudo cp -a /etc/apt/sources.list.backup /etc/apt/sources.list
sudo apt update
Dies stellt ausschließlich die Paketquellen wieder her. Bereits installierte, entfernte oder aktualisierte Pakete und Dienstdaten werden nicht zurückgesetzt. Verwenden Sie für einen notwendigen Rückbau auf Produktionsservern separat vorbereitete Konfigurations- und Datensicherungen oder Snapshots sowie den Wiederherstellungsablauf des jeweiligen Dienstes.




