Linux-Paketmanagement
Mit einer Paketverwaltung suchst, installierst und aktualisierst Du Software aus konfigurierten Paketquellen. Sie berücksichtigt dabei Abhängigkeiten zwischen Paketen. Welche Befehle Du verwendest, hängt von Deiner Distribution ab.
Die Beispiele verwenden sudo für Systemänderungen. Ersetze Platzhalter wie <paket> durch einen tatsächlichen Paketnamen, ohne die spitzen Klammern einzugeben. Paketnamen und verfügbare Versionen können sich zwischen Distributionen unterscheiden.
Debian und Ubuntu: APT
| Aufgabe | Befehl |
|---|---|
| Pakete suchen | apt search <suchbegriff> |
| Paketinformationen anzeigen | apt show <paket> |
| Paket installieren | sudo apt install <paket> |
| Paket entfernen, bestimmte systemweite Konfigurationen behalten | sudo apt remove <paket> |
| Paket einschließlich seiner von der Paketverwaltung erfassten Konfiguration entfernen | sudo apt purge <paket> |
| Paketlisten aktualisieren | sudo apt update |
| Verfügbare Paketaktualisierungen installieren | sudo apt upgrade |
apt update installiert keine Updates. Es aktualisiert die Informationen über verfügbare Pakete. apt upgrade installiert verfügbare Aktualisierungen aus den konfigurierten Quellen; zurückgehaltene Pakete sind möglich. Es führt keinen Wechsel auf eine neue Distributionsversion durch.
apt ist für die interaktive Arbeit gedacht. Für Skripte sind die dafür vorgesehenen Schnittstellen von apt-get und apt-cache geeigneter. Beispiele sind apt-get install, apt-get update, apt-cache search und apt-cache show.
Tipp: Auf einem Ubuntu-Desktop kannst Du ergänzend die grafische Paketverwaltung Synaptic verwenden. Falls sie fehlt und in Deinen Paketquellen verfügbar ist:
Das Entfernen eines Pakets mit purge löscht nicht automatisch persönliche Einstellungen in Deinem Heimatverzeichnis.
Fedora, CentOS Stream und RHEL: DNF
| Aufgabe | Befehl |
|---|---|
| Pakete suchen | dnf search <suchbegriff> |
| Paketinformationen anzeigen | dnf info <paket> |
| Paket installieren | sudo dnf install <paket> |
| Paket entfernen | sudo dnf remove <paket> |
| Metadaten neu abrufen und zwischenspeichern | sudo dnf --refresh makecache |
| Verfügbare Paketaktualisierungen installieren | sudo dnf upgrade |
dnf update ist bei DNF ein Alias für dnf upgrade: Es aktualisiert Pakete und ist kein Gegenstück zu apt update. Die genaue Befehlsausgabe und einzelne Optionen können sich zwischen DNF-Versionen unterscheiden.
Bei RHEL 8 und 9 basiert auch der kompatible Aufruf yum auf DNF. Angaben zu älteren YUM-Versionen solltest Du daher nicht pauschal auf aktuelle Systeme übertragen. Für RHEL können Paketquellen zusätzlich eine passende Registrierung oder Subskription voraussetzen. CentOS Linux wird nicht mehr gepflegt; die Beispiele beziehen sich auf CentOS Stream.
openSUSE und SUSE Linux Enterprise: Zypper
| Aufgabe | Befehl |
|---|---|
| Pakete suchen | zypper search <suchbegriff> |
| Paketinformationen anzeigen | zypper info <paket> |
| Paket installieren | sudo zypper install <paket> |
| Paket entfernen | sudo zypper remove <paket> |
| Metadaten der Paketquellen aktualisieren | sudo zypper refresh |
| Reguläre Paketupdates, beispielsweise auf Leap | sudo zypper update |
| Tumbleweed auf den aktuellen Distributionsstand bringen | sudo zypper dup |
Die Kurzformen ref und up stehen für refresh und update. Für die laufende Aktualisierung von openSUSE Tumbleweed wird zypper dup verwendet. Übertrage diesen Befehl nicht ungeprüft auf andere SUSE-Produkte oder einen Versionswechsel; dort gelten die jeweiligen Upgrade-Anleitungen.
Unterschiede zwischen Distributionen
- Paketformate: Debian und Ubuntu verwenden überwiegend DEB-Pakete; Fedora, RHEL und SUSE verwenden RPM-Pakete. Dasselbe Format garantiert keine Kompatibilität zwischen Distributionen.
- Paketquellen: Verfügbarkeit, Paketnamen und unterstützte Versionen hängen von den eingebundenen Quellen ab.
- Aktualisierungspolitik: Stabile Veröffentlichungen setzen andere Schwerpunkte als Rolling Releases. Sicherheitskorrekturen können zurückportiert werden, ohne dass die sichtbare Hauptversion einer Anwendung wechselt.
- Abhängigkeiten: Prüfe vor einer Entfernung, welche weiteren Pakete die Paketverwaltung ebenfalls entfernen möchte.
Snap: Anwendungen zusätzlich bereitstellen
Snap ist ein von Canonical entwickeltes Format zur Verteilung von Anwendungen. Der Dienst snapd verwaltet Installation, Ausführung und Updates. Snaps bündeln viele benötigte Komponenten oder beziehen sie über gemeinsame Basis- und Inhalts-Snaps. Sie ersetzen nicht die gesamte Paketverwaltung des Betriebssystems.
Die Verfügbarkeit hängt von Distribution, Architektur und Anwendung ab. Auf vielen Ubuntu-Installationen ist snapd bereits vorhanden. Falls es fehlt, kannst Du es auf einem entsprechend eingerichteten Ubuntu-System mit sudo apt install snapd installieren. Für andere Distributionen gelten deren Installationsanleitungen.
| Aufgabe | Befehl |
|---|---|
| Anwendungen suchen | snap find <suchbegriff> |
| Informationen und angebotene Kanäle anzeigen | snap info <snapname> |
| Installierte Snaps auflisten | snap list |
| Snap installieren, beispielsweise Firefox | sudo snap install firefox |
| Einzelnen Snap aktualisieren | sudo snap refresh <snapname> |
| Alle Snaps aktualisieren | sudo snap refresh |
| Snap entfernen | sudo snap remove <snapname> |
| Schnittstellenverbindungen anzeigen | snap connections <snapname> |
| Daten-Snapshot erstellen | sudo snap save <snapname> |
| Vorhandene Snapshot-Sets auflisten | snap saved |
| Daten und Einstellungen aus einem Snapshot-Set wiederherstellen | sudo snap restore <set-id> |
| Befehlsübersicht anzeigen | snap help --all |
Die Wiederherstellung verwendet die Set-ID aus snap saved und überschreibt entsprechende aktuelle Daten. Sie installiert nicht einfach eine frühere Paketversion. Die Befehle snap update, snap confinement und snap autoremove sind keine regulären Snap-Befehle.
Sicherheitsmodell und Updates
Snaps mit strict confinement erhalten eingeschränkten Zugriff auf das System. Freigegebene Schnittstellen können weitere Zugriffe erlauben. Classic-Snaps unterliegen dieser Isolation nicht in gleicher Weise; devmode dient der Entwicklung ohne vollständige Durchsetzung der Einschränkungen. Snap ist daher keine pauschale Garantie für die Sicherheit einer Anwendung.
Schnittstellen verbindest Du beispielsweise nach folgendem Schema:
Welche Verbindungen sinnvoll und erlaubt sind, hängt vom Snap ab. Prüfe dazu snap connections und die Dokumentation der Anwendung.
Updates erfolgen standardmäßig automatisch innerhalb des gewählten Kanals. Sie bedeuten nicht zwangsläufig einen Wechsel zur neuesten verfügbaren Hauptversion. Zeitplanung und zurückgestellte Updates können den Zeitpunkt beeinflussen.
Weiterführende Dokumentation
- Ubuntu: Paketverwaltung
- DNF-Befehlsreferenz
- openSUSE: Tumbleweed aktualisieren
- Snap: Updates verwalten
- Snap: Sicherheitsmodell
- Snap: Daten-Snapshots