Modul 4 · 4.1
Deutsch
Paketverwaltung mit apt
Modul 4: Software und Updates · Lesezeit: 10 Minuten
Lernziel: Nach dieser Lektion können Sie Software mit apt installieren, aktualisieren und entfernen, sehen, woher ein Paket stammt, und erkennen, welche Updates Sicherheitsupdates sind.
Kernbegriffe: Paket, Paketquelle (Repository), sources.list, .sources-Datei (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, Sicherheitsquelle, dnf
Warum eine Paketverwaltung?
Unter Windows laden Sie ein Installationsprogramm von einer Website herunter. Auf einem Linux-Server tun Sie das fast nie. Software kommt als Paket aus einer Paketquelle (Repository): einem Server der Distribution mit Tausenden von Programmen, die alle für Ihre Version von Debian oder Ubuntu gebaut und getestet sind. Das Programm, das diese Pakete herunterlädt, installiert und aktualisiert, heißt Paketverwaltung. Unter Debian und Ubuntu ist das apt (mit dpkg darunter), unter AlmaLinux und Rocky Linux dnf.
Das hat drei große Vorteile:
- Ein Befehl aktualisiert alles. Der Webserver, der SSH-Server, die Bibliotheken und der Kernel stammen aus derselben Quelle. Sie müssen nicht für jedes Programm auf einer Website nachsehen, ob es eine neue Version gibt.
- Die Herkunft wird geprüft. Jede Paketquelle ist mit einem Schlüssel signiert. apt lehnt Pakete ab, deren Signatur nicht stimmt.
- Abhängigkeiten werden aufgelöst. Benötigt nginx eine Bibliothek, installiert apt diese automatisch mit und räumt sie später wieder auf.
Die Paketquellen: Woher kommt die Software?
Welche Quellen apt verwendet, steht in /etc/apt/. Lange Zeit war das eine einzige Datei sources.list mit Zeilen wie:
deb http://deb.debian.org/debian bookworm mainUbuntu 24.04 und neuer, die Cloud-Images von Debian und immer mehr neue Installationen verwenden das neuere deb822-Format: einzelne Dateien mit der Endung .sources in /etc/apt/sources.list.d/. Eine alte sources.list lässt sich mit sudo apt modernize-sources umwandeln (apt 3, Debian 13). Zum Beispiel unter Debian 13:
anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgLesen Sie das so: Die Suite ist die Version (trixie ist Debian 13; noble ist Ubuntu 24.04), die Komponente ist ein Teil der Quelle (main bei Debian; main, universe, restricted und multiverse bei Ubuntu), und Signed-By gibt an, mit welchem Schlüssel die Quelle signiert sein muss. Letzteres ist wichtig: Ein Schlüssel gehört zu einer einzigen Quelle, nicht zu allen Quellen gleichzeitig. Fügen Sie später eine Quelle eines Herstellers hinzu (Docker, Caddy, PostgreSQL), erhält diese ihre eigene Schlüsseldatei und ihre eigene Signed-By-Zeile (Lektion 9.2).
Die Quelle mit -security im Namen ist die Sicherheitsquelle. Aus ihr kommen die Sicherheitsupdates, meist noch am selben Tag, an dem eine Sicherheitslücke bekannt wird. Unter Ubuntu heißt diese Suite noble-security (oder entsprechend dem Namen Ihrer Version).
Verwenden Sie noch die alte sources.list, funktioniert alles ganz normal. Mischen Sie nur nicht dieselbe Quelle in beiden Formaten, denn dann beschwert sich apt über doppelte Einträge.
update, upgrade und full-upgrade
Der Unterschied zwischen diesen drei Begriffen ist die erste Stolperfalle für Einsteiger.
| Befehl | Was er tut |
|---|---|
apt update | Lädt die Liste herunter, welche Pakete und Versionen in den Quellen verfügbar sind. Installiert nichts. |
apt upgrade | Aktualisiert installierte Pakete auf die neueste Version aus dieser Liste. Entfernt nie etwas. Ein Update, das ein anderes Paket entfernen müsste, wird übersprungen. |
apt full-upgrade | Dasselbe, darf aber bei Bedarf auch Pakete entfernen oder neue installieren. Nötig bei einem Release-Upgrade (Lektion 4.3) und manchmal bei einem neuen Kernel. |
Also immer zuerst update, dann upgrade:
anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1](Die Versionsnummern oben sind ein Beispiel.) Hinter dem Namen steht, aus welcher Suite die neue Version stammt. Alles mit -security ist ein Sicherheitsupdate: Diese Updates möchten Sie so schnell wie möglich einspielen. -updates sind andere stabile Updates, etwa neue Zeitzonendaten.
Danach:
anna@web1:~$ sudo apt upgradeapt zeigt an, was sich ändert, und bittet um Bestätigung. Lesen Sie diese Liste. Steht dort "The following packages will be REMOVED" (die folgenden Pakete werden entfernt), ist etwas Ungewöhnliches im Gange, und Sie sollten zuerst herausfinden, warum.
Installieren, entfernen und aufräumen
anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx # Programm entfernt, Konfiguration in /etc bleibt
anna@web1:~$ sudo apt purge nginx # Programm und Konfiguration entfernt
anna@web1:~$ sudo apt autoremove # aufräumen, was niemand mehr brauchtDer Unterschied zwischen remove und purge ist praktisch: Möchten Sie etwas vorübergehend entfernen und später mit denselben Einstellungen neu installieren, verwenden Sie remove. Möchten Sie wirklich sauber neu anfangen, purge.
Suchen und weitere Informationen:
anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
Installed: 1:10.0p1-7
Candidate: 1:10.0p1-7+deb13u1
Version table:
1:10.0p1-7+deb13u1 500
500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
*** 1:10.0p1-7 500
500 http://deb.debian.org/debian trixie/main amd64 Packagesapt-cache policy ist der Befehl, den Sie verwenden, wenn Sie wissen möchten, woher ein Paket stammt und welche Version apt wählen wird. Die *** steht bei der installierten Version, Candidate ist das, was ein Upgrade installieren würde.
Debian-Versionen und die Version eines Programms
Eine häufige Klage: "In Debian steckt eine alte Version von nginx." Das stimmt, und das ist Absicht. Debian und Ubuntu frieren die Versionen bei der Veröffentlichung eines Releases ein und fügen danach nur noch Sicherheitskorrekturen und Behebungen schwerer Fehler hinzu, ohne neue Funktionen. Deshalb kann ein Paket mit einer "alten" Versionsnummer trotzdem alle aktuellen Sicherheitskorrekturen enthalten: Sie wurden in die alte Version zurückportiert (Backport). Sie erkennen das am Suffix, etwa +deb13u1 oder ubuntu0.1.
Vergleichen Sie also nie nur die Versionsnummer mit der Website des Herstellers, um zu beurteilen, ob Sie verwundbar sind. Achten Sie auf die Sicherheitsmeldungen Ihrer Distribution: Der Debian Security Tracker (security-tracker.debian.org) und die Ubuntu Security Notices (ubuntu.com/security/notices) geben für jede Sicherheitslücke an, ob Ihre Version bereits korrigiert ist.
Ein paar Regeln für einen ruhigen Server
- Installieren Sie nur, was Sie brauchen. Jedes Paket ist Code, der aktualisiert werden muss, und manchmal ein Dienst, der lauscht (Lektion 5.1).
- Lieber aus der Distribution als von einer Website. Ein Programm, das Sie selbst kompilieren oder als einzelne Datei herunterladen, aktualisiert
apt upgradenicht. Dann müssen Sie die Sicherheitsmeldungen selbst verfolgen. - Eine zusätzliche Quelle nur vom Hersteller selbst, mit eigenem Schlüssel und
Signed-By. Fügen Sie nie einen Schlüssel "für alles" hinzu und nie eine Quelle von einer unbekannten Website (Lektion 4.3). - Lesen Sie, was apt fragt. Bei einem Upgrade kann apt fragen, ob Sie eine geänderte Konfigurationsdatei durch die neue Version des Herstellers ersetzen möchten. Wissen Sie nicht, was Sie daran geändert haben, wählen Sie "keep the local version" (lokale Version behalten, die Voreinstellung) und sehen Sie sich später mit
diffden Unterschied an: Die neue Version liegt daneben als.dpkg-dist.
Unter AlmaLinux und Rocky Linux
Dort heißt die Paketverwaltung dnf, und die Pakete heißen .rpm. Die Befehle ähneln denen von apt: dnf check-update (die Liste), dnf upgrade (aktualisieren, update und upgrade in einem), dnf install, dnf remove, dnf info. Die Quellen stehen in /etc/yum.repos.d/*.repo. Viele zusätzliche Programme (etwa fail2ban) stammen aus der separaten Quelle EPEL, die Sie zuerst mit dnf install epel-release aktivieren. Nur Sicherheitsupdates anzeigen können Sie mit dnf updateinfo list --security.
In der Praxis: die VPS-Oberfläche
Bei WebOké und den meisten anderen Anbietern richtet die Installation Ihres VPS die Standardquellen der Distribution bereits korrekt ein. Daran müssen Sie meist nichts ändern. Aktualisieren Sie den Server direkt nach der ersten Anmeldung mit apt update und apt upgrade (Lektion 1.2), und erstellen Sie vor größeren Änderungen einen Snapshot im Panel Ihres Anbieters.
Zusammenfassung
- Software kommt unter Debian und Ubuntu aus signierten Paketquellen; apt lädt herunter, installiert, aktualisiert und räumt auf.
apt updatelädt nur die Liste herunter;apt upgradeaktualisiert, ohne zu entfernen;apt full-upgradedarf auch entfernen.- Sicherheitsupdates kommen aus der Suite mit
-securityim Namen;apt list --upgradableundapt-cache policyzeigen, woher eine Version stammt. - Eine alte Versionsnummer mit
+deb13u1oderubuntu0.xkann alle Korrekturen enthalten (Backport): Achten Sie auf die Sicherheitsmeldungen Ihrer Distribution. - Eine zusätzliche Quelle nur vom Hersteller selbst, mit eigenem Schlüssel in
Signed-By.
Quiz
Aufgabe
Aufgabe Z4.1: Welche Updates sind Sicherheitsupdates? In der Beispieldatei apt-upgradable.txt steht die Ausgabe von apt list --upgradable und apt-cache policy eines Debian 13-Servers. Beantworten Sie: Welche Pakete stammen aus der Sicherheitsquelle, welches Paket stammt aus einer Quelle eines Herstellers statt von Debian, welche Version von openssh-server ist derzeit installiert, und welches Paket ist ein gewöhnliches stabiles Update ohne Sicherheitsgrund? Das Programm vergleicht mit dem festen Lösungsschlüssel. Haben Sie bereits einen eigenen Server, führen Sie dieselben Befehle aus und sehen Sie sich an, was Sie erhalten.
Weiterführende Informationen
- Ihren VPS absichern: die ersten fünf Minuten
- Erste Schritte mit Ihrem VPS
- Debian-Handbuch für Systemadministratoren, Kapitel 6 (apt): https://debian-handbook.info/browse/stable/apt.html
- Handbuchseite
sources.list(5)(deb822-Format): https://manpages.debian.org/trixie/apt/sources.list.5.en.html - Debian Security Tracker: https://security-tracker.debian.org/tracker/
