6.1 Paketverwaltung und Updates Unter Linux wird Software meistens nicht einzeln von Webseiten heruntergeladen, sondern über eine Paketverwaltung installiert, aktualisiert und entfernt. Die Paketverwaltung sorgt dafür, dass Programme, Bibliotheken, Abhängigkeiten und Updates kontrolliert verwaltet werden. Für Fachinformatiker Systemintegration ist das wichtig, weil Server sicher, aktuell und nachvollziehbar administriert werden müssen. Merksatz: Paketverwaltung installiert, aktualisiert entfernt und verwaltet Software kontrolliert. Lernziele Nach dieser Seite solltest du erklären können: - was ein Paket ist - was ein Paketmanager ist - was ein Repository ist - was Abhängigkeiten sind - wie Updates grundsätzlich funktionieren - warum Sicherheitsupdates wichtig sind - was apt, dnf, zypper, pacman und apk sind - wie man Software installiert, entfernt und aktualisiert - welche typischen Fehler bei Paketverwaltung auftreten Grundidee Ein Linux-System besteht aus vielen Softwarepaketen. Ein Paket enthält zum Beispiel: - Programmdateien - Bibliotheken - Konfigurationsvorlagen - Dokumentation - Metadaten - Installationsskripte - Abhängigkeitsinformationen Die Paketverwaltung weiß, welche Pakete installiert sind, welche Versionen verfügbar sind und welche Pakete voneinander abhängen. Merksatz: Ein Paket ist eine verwaltete Softwareeinheit. Paketmanager Ein Paketmanager ist das Werkzeug, mit dem Software verwaltet wird. Er kann: - Pakete installieren - Pakete entfernen - Pakete aktualisieren - Paketinformationen anzeigen - Abhängigkeiten auflösen - Paketquellen nutzen - Versionsstände prüfen - Sicherheitsupdates einspielen Beispiele: Distribution Paketmanager Debian apt Ubuntu apt Fedora dnf Rocky Linux dnf openSUSE zypper Arch Linux pacman Alpine Linux apk Merksatz: Paketmanager unterscheiden sich je nach Distribution. Repository Ein Repository ist eine Paketquelle. Dort liegen Softwarepakete, Metadaten und Versionsinformationen. Ein System lädt aus Repositories Informationen darüber, welche Pakete verfügbar sind und welche Updates existieren. Beispiele für Repository-Inhalte: - Webserver - Datenbanken - Bibliotheken - Sicherheitsupdates - Systemwerkzeuge - Entwicklungswerkzeuge Merksatz: Repository = Paketquelle. Abhängigkeiten Viele Programme benötigen andere Pakete, damit sie funktionieren. Diese benötigten Pakete nennt man: Abhängigkeiten Beispiel: Ein Programm benötigt eine bestimmte Bibliothek. Die Paketverwaltung installiert diese Abhängigkeit automatisch mit, wenn sie fehlt. Vorteil: Programme werden nicht isoliert, sondern passend zum System installiert. Merksatz: Abhängigkeiten sind Pakete, die andere Pakete benötigen. Warum Paketverwaltung statt manueller Installation? Paketverwaltung hat viele Vorteile: - zentrale Installation - automatische Abhängigkeitsauflösung - einfache Updates - einfache Entfernung - nachvollziehbare Paketlisten - Sicherheitsupdates - Versionsverwaltung - saubere Integration ins System Manuelle Installation kann problematisch sein, weil: - Abhängigkeiten fehlen können - Updates unklar sind - Dateien schwer zu entfernen sind - Sicherheitsupdates nicht automatisch kommen - Versionskonflikte entstehen können Merksatz: Paketmanager sorgen für Ordnung, Updates und Nachvollziehbarkeit. Debian und Ubuntu: apt Debian und Ubuntu nutzen häufig: apt Typische Befehle: Befehl Bedeutung apt update Paketlisten aktualisieren apt upgrade installierte Pakete aktualisieren apt install paket Paket installieren apt remove paket Paket entfernen apt purge paket Paket inklusive Konfigurationsdateien entfernen apt search begriff Paket suchen apt show paket Paketinformationen anzeigen apt autoremove nicht mehr benötigte Abhängigkeiten entfernen Merksatz: apt update aktualisiert Paketlisten. apt upgrade aktualisiert installierte Pakete. apt update Der Befehl: apt update lädt aktuelle Paketlisten aus den Repositories. Wichtig: apt update installiert noch keine Updates. Es aktualisiert nur die Information darüber, welche Pakete und Versionen verfügbar sind. Merksatz: apt update aktualisiert die Paketinformationen, nicht die Software selbst. apt upgrade Der Befehl: apt upgrade aktualisiert installierte Pakete, wenn neuere Versionen verfügbar sind. Typische Nutzung: apt update apt upgrade Bedeutung: Erst Paketlisten aktualisieren, dann Pakete aktualisieren. Merksatz: update holt Listen. upgrade installiert Updates. Paket installieren mit apt Paket installieren: apt install nginx Bedeutung: Das Paket nginx wird installiert. Benötigte Abhängigkeiten werden automatisch mitinstalliert. Häufig benötigt man administrative Rechte: sudo apt install nginx Merksatz: apt install installiert Pakete. Paket entfernen mit apt Paket entfernen: apt remove nginx Das entfernt das Programm, aber Konfigurationsdateien können erhalten bleiben. Paket inklusive Konfigurationsdateien entfernen: apt purge nginx Nicht mehr benötigte Abhängigkeiten entfernen: apt autoremove Merksatz: remove entfernt Paket. purge entfernt Paket plus Konfiguration. Paket suchen mit apt Paket suchen: apt search nginx Paketinformationen anzeigen: apt show nginx Installierte Pakete anzeigen: apt list --installed Merksatz: apt search sucht Pakete. apt show zeigt Details. Fedora und Rocky Linux: dnf Fedora und Rocky Linux nutzen häufig: dnf Typische Befehle: Befehl Bedeutung dnf check-update verfügbare Updates prüfen dnf upgrade Pakete aktualisieren dnf install paket Paket installieren dnf remove paket Paket entfernen dnf search begriff Paket suchen dnf info paket Paketinformationen anzeigen Beispiele: dnf install nginx dnf upgrade dnf remove nginx Merksatz: dnf ist typisch für Fedora- und Enterprise-nahe Distributionen. openSUSE: zypper openSUSE nutzt häufig: zypper Typische Befehle: Befehl Bedeutung zypper refresh Paketquellen aktualisieren zypper update Pakete aktualisieren zypper install paket Paket installieren zypper remove paket Paket entfernen zypper search begriff Paket suchen zypper info paket Paketinformationen anzeigen Merksatz: zypper ist typisch für openSUSE. Arch Linux: pacman Arch Linux nutzt: pacman Typische Befehle: Befehl Bedeutung pacman -Syu System aktualisieren pacman -S paket Paket installieren pacman -R paket Paket entfernen pacman -Ss begriff Paket suchen pacman -Qi paket installiertes Paket anzeigen Merksatz: pacman ist typisch für Arch Linux. Alpine Linux: apk Alpine Linux nutzt: apk Typische Befehle: Befehl Bedeutung apk update Paketlisten aktualisieren apk upgrade Pakete aktualisieren apk add paket Paket installieren apk del paket Paket entfernen apk search begriff Paket suchen apk info paket Paketinformationen anzeigen Alpine ist besonders häufig bei kleinen Container-Images. Merksatz: apk ist typisch für Alpine Linux. Update, Upgrade und Dist-Upgrade Die Begriffe können je nach Distribution unterschiedlich verwendet werden. Bei Debian/Ubuntu gilt grob: Befehl Bedeutung apt update Paketlisten aktualisieren apt upgrade installierte Pakete aktualisieren apt full-upgrade Pakete aktualisieren, auch mit Entfernen/Ersetzen bei Bedarf Wichtig: full-upgrade kann stärker in das System eingreifen als upgrade. Merksatz: Nicht jedes Upgrade ist gleich tiefgreifend. Sicherheitsupdates Sicherheitsupdates schließen bekannte Schwachstellen. Sie sind wichtig, weil ungepatchte Systeme ein Risiko darstellen. Risiken ungepatchter Systeme: - Ausnutzung bekannter Sicherheitslücken - Malware-Infektion - unberechtigter Zugriff - Datenabfluss - Manipulation - Ausfall von Diensten - Compliance-Probleme Merksatz: Patchmanagement reduziert bekannte Risiken. Patchmanagement Patchmanagement bedeutet: Updates geplant, kontrolliert und nachvollziehbar einspielen. Dazu gehören: - Updates prüfen - Risiko bewerten - Wartungsfenster planen - Backup erstellen - Abhängigkeiten beachten - Updates installieren - Dienste prüfen - Logs prüfen - Rollback-Möglichkeit vorbereiten - Dokumentation aktualisieren Merksatz: Updates sind nicht nur Technik, sondern auch Prozess. Warum Updates nicht blind einspielen? Updates können Probleme verursachen. Beispiele: - Dienst startet nach Update nicht - Konfiguration ist nicht mehr kompatibel - Abhängigkeit ändert sich - API-Verhalten ändert sich - Kernel-Update benötigt Neustart - Softwareversion passt nicht zur Anwendung - Paket entfernt ältere Komponente Deshalb wichtig: testen sichern dokumentieren Wartungsfenster nutzen Merksatz: Sicherheitsupdates sind wichtig, aber produktive Systeme brauchen kontrollierte Änderungen. Kernel-Updates Kernel-Updates aktualisieren den Kern des Betriebssystems. Wichtig: Ein neuer Kernel wird häufig erst nach einem Neustart aktiv. Prüfen: uname -r zeigt den aktuell laufenden Kernel. Nach Kernel-Update: Neustart planen Bootfähigkeit prüfen Dienste prüfen Treiber oder Module beachten Merksatz: Kernel-Update braucht oft Neustart. Distribution-Upgrade Ein Distribution-Upgrade ist ein Wechsel auf eine neue Hauptversion der Distribution. Beispiele: Ubuntu 22.04 auf 24.04 Debian 12 auf Debian 13 Das ist umfangreicher als normale Paketupdates. Vorher wichtig: Backup Kompatibilität prüfen Release Notes lesen Drittanbieter-Repositories prüfen Wartungsfenster planen Rollback-Plan Testsystem nutzen Merksatz: Distribution-Upgrade ist größer als normales Update. Paketquellen und Drittanbieter-Repositories Neben offiziellen Repositories können Drittanbieter-Quellen eingebunden werden. Vorteile: neuere Software spezielle Anwendungen Herstellerpakete Risiken: Vertrauenswürdigkeit Sicherheitsrisiko Versionskonflikte unklare Updateversorgung Abhängigkeiten Paketquelle kann wegfallen Merksatz: Drittanbieter-Repositories nur bewusst und dokumentiert nutzen. GPG-Schlüssel und Paketvertrauen Viele Paketquellen nutzen Signaturen, damit Pakete und Paketlisten geprüft werden können. Grundidee: Das System prüft, ob Pakete aus einer vertrauenswürdigen Quelle stammen. Wichtig: Nur vertrauenswürdige Paketquellen und Schlüssel einbinden. Risiko: Eine unsichere Paketquelle kann manipulierte Software liefern. Merksatz: Paketquellen sind Vertrauensquellen. Paketinformationen prüfen Paketinformationen helfen, ein Paket vor der Installation einzuschätzen. Bei apt: apt show paket Typische Informationen: Version Beschreibung Abhängigkeiten Paketquelle Größe Maintainer Homepage Merksatz: Vor Installation prüfen, was installiert wird. Installierte Pakete anzeigen Bei apt: apt list --installed Nach bestimmtem Paket suchen: apt list --installed | grep nginx Alternativen je nach Distribution: dnf list installed pacman -Q apk info Merksatz: Installierte Pakete sollten nachvollziehbar sein. Paketdateien und Konfiguration Paketmanager installieren Dateien an bestimmte Orte. Beispiele: Programme nach /usr/bin Konfigurationen nach /etc Dienste nach systemd-Unit-Pfaden Daten nach /var/lib Logs nach /var/log Wichtig: Konfigurationsdateien können bei Updates besondere Behandlung bekommen. Änderungen sollten dokumentiert werden. Merksatz: Pakete verteilen Dateien an standardisierte Orte. Dienste nach Paketinstallation Ein installiertes Paket bedeutet nicht immer, dass der Dienst läuft. Nach Installation prüfen: systemctl status dienst systemctl is-enabled dienst ss -tulpen Beispiel: nginx ist installiert, aber der Dienst ist nicht gestartet. Dann nötig: systemctl start nginx systemctl enable nginx Merksatz: Installiert heißt nicht automatisch: Dienst läuft. Paket entfernen und Reste Beim Entfernen können Reste bleiben. Mögliche Reste: Konfigurationsdateien Datenverzeichnisse Logdateien Benutzerkonten systemd-Units Cache-Dateien Beispiel: apt remove paket entfernt meist nicht alle Konfigurationen. apt purge paket entfernt zusätzlich Paketkonfigurationen. Wichtig: Datenbanken oder Anwendungsdaten werden oft nicht automatisch gelöscht. Merksatz: Entfernen heißt nicht immer vollständig bereinigt. Autoremove autoremove entfernt Pakete, die als Abhängigkeiten installiert wurden und nicht mehr benötigt werden. Bei apt: apt autoremove Wichtig: Vorher prüfen, welche Pakete entfernt werden sollen. Merksatz: autoremove räumt nicht mehr benötigte Abhängigkeiten auf. Paketcache Paketmanager speichern heruntergeladene Paketdaten teilweise im Cache. Bei apt kann man aufräumen mit: apt clean oder: apt autoclean Nutzen: Speicherplatz freigeben Merksatz: Paketcache kann Speicherplatz belegen. Typische Fehler: Paketlisten veraltet Fehlerbild: Paket wird nicht gefunden Mögliche Ursache: Paketlisten sind veraltet. Bei apt prüfen: apt update Danach erneut: apt search paket apt install paket Merksatz: Wenn apt ein Paket nicht findet, zuerst Paketlisten prüfen. Typische Fehler: Repository nicht erreichbar Fehlerbild: Paketmanager kann keine Paketlisten laden. Mögliche Ursachen: kein Internet DNS-Problem Proxy-Problem Repository offline falsche Paketquelle Zertifikatsproblem Firewall blockiert Prüfen: Netzwerkverbindung DNS Repository-URL Proxy Uhrzeit Merksatz: Paketfehler können Netzwerkfehler sein. Typische Fehler: Abhängigkeitskonflikt Fehlerbild: Paket kann nicht installiert werden, weil Abhängigkeiten nicht erfüllt sind. Mögliche Ursachen: gemischte Paketquellen falsche Distribution-Version Drittanbieter-Repository Paketversion passt nicht unvollständiges Upgrade Merksatz: Abhängigkeitsprobleme entstehen oft durch Versions- oder Repository-Konflikte. Typische Fehler: Paketdatenbank gesperrt Fehlerbild bei apt: Could not get lock Bedeutung: Ein anderer Paketverwaltungsprozess läuft gerade oder wurde nicht sauber beendet. Mögliche Ursachen: automatisches Update läuft anderer apt-Prozess offen vorheriger Vorgang abgebrochen Sicheres Vorgehen: prüfen, ob ein Paketprozess läuft warten, wenn Updates aktiv sind nicht blind Sperrdateien löschen Merksatz: Paketdatenbank-Sperren nicht unüberlegt entfernen. Typische Fehler: Speicherplatz voll Paketinstallationen können fehlschlagen, wenn Speicherplatz fehlt. Prüfen: df -h du -sh /var/cache du -sh /var/log Mögliche Maßnahmen: Logs prüfen und sauber rotieren Paketcache bereinigen alte Kernel prüfen nicht benötigte Pakete entfernen Merksatz: Updatefehler können Speicherplatzprobleme sein. Typische Fehler: Dienst startet nach Update nicht Mögliche Ursachen: Konfigurationsänderung veraltete Option neue Version inkompatibel Rechteproblem Port bereits belegt Abhängigkeit fehlt Prüfen: systemctl status dienst journalctl -u dienst Konfiguration prüfen Änderungsnotizen prüfen Rollback oder Fix planen Merksatz: Nach Update immer Dienste und Logs prüfen. Paketverwaltung und Sicherheit Paketverwaltung ist Teil der Systemsicherheit. Sicheres Vorgehen: - offizielle Paketquellen bevorzugen - Drittanbieterquellen dokumentieren - Updates regelmäßig prüfen - Sicherheitsupdates priorisieren - Dienste nach Updates testen - Paketquellen absichern - keine unbekannten Installationsskripte blind ausführen - minimale Installation bevorzugen Merksatz: Weniger unnötige Pakete bedeutet kleinere Angriffsfläche. Minimale Installation Auf Servern sollte nur installiert sein, was benötigt wird. Vorteile: weniger Angriffsfläche weniger Updates weniger Abhängigkeiten weniger Fehlerquellen bessere Übersicht Beispiel: Ein Datenbankserver braucht normalerweise keine grafische Desktopumgebung. Merksatz: Installiere nur, was für den Zweck nötig ist. Paketverwaltung in Containern Container-Images nutzen ebenfalls Paketmanager, aber anders als normale Server. Beispiel Alpine: apk add paket Beispiel Debian-basiertes Image: apt update apt install paket Wichtig bei Containern: Images klein halten Paketlisten nach Installation bereinigen feste Versionen prüfen keine unnötigen Tools installieren Sicherheitsupdates über neue Images einspielen Merksatz: In Containern wird Software meist über neue Images aktualisiert. Typische Paketmanager-Befehle im Vergleich Aufgabe Debian/Ubuntu Fedora/Rocky openSUSE Arch Alpine Paketlisten aktualisieren apt update dnf check-update zypper refresh pacman -Sy apk update System aktualisieren apt upgrade dnf upgrade zypper update pacman -Syu apk upgrade Paket installieren apt install dnf install zypper install pacman -S apk add Paket entfernen apt remove dnf remove zypper remove pacman -R apk del Paket suchen apt search dnf search zypper search pacman -Ss apk search Paketinfo anzeigen apt show dnf info zypper info pacman -Qi apk info Merksatz: Gleiche Aufgabe, anderer Paketmanager. Typische Admin-Reihenfolge bei Updates Sicheres Vorgehen bei Servern: 1. System und Dienste dokumentieren 2. Backup oder Snapshot prüfen 3. freie Kapazität prüfen 4. Paketlisten aktualisieren 5. verfügbare Updates prüfen 6. Wartungsfenster beachten 7. Updates installieren 8. Dienste prüfen 9. Logs prüfen 10. Funktion testen 11. Dokumentation aktualisieren Merksatz: Updates brauchen Vorbereitung, Durchführung und Nachprüfung. Typische Prüfungsfragen Frage Kurzantwort Was ist ein Paket? verwaltete Softwareeinheit Was ist ein Paketmanager? Werkzeug zur Verwaltung von Softwarepaketen Was ist ein Repository? Paketquelle Was sind Abhängigkeiten? benötigte Zusatzpakete Was macht apt update? Paketlisten aktualisieren Was macht apt upgrade? installierte Pakete aktualisieren Was macht apt install? Paket installieren Was macht apt remove? Paket entfernen Was macht apt purge? Paket inklusive Konfiguration entfernen Was ist Patchmanagement? geplanter Umgang mit Updates Warum sind Sicherheitsupdates wichtig? schließen bekannte Schwachstellen Warum nicht blind updaten? Dienste oder Abhängigkeiten können brechen Warum minimale Installation? kleinere Angriffsfläche Typische Prüfungsfallen Falle Richtig denken apt update als Softwareupdate verstehen aktualisiert nur Paketlisten apt upgrade vergessen installiert die Updates installierter Dienst läuft automatisch nicht immer, systemctl prüfen Paket entfernen heißt alles weg Daten und Konfiguration können bleiben Drittanbieter-Repos blind nutzen Vertrauens- und Versionsrisiko Updates ohne Backup riskant bei produktiven Systemen Kernel-Update ohne Neustart einplanen neuer Kernel oft erst nach Reboot aktiv Sicherheitsupdates aufschieben bekannte Lücken bleiben offen Paketfehler nur als Paketproblem sehen Netzwerk, DNS, Speicher prüfen manuelle Installationsskripte blind ausführen Sicherheitsrisiko IHK-sichere Kurzformulierung Unter Linux wird Software meist über Paketmanager installiert, entfernt und aktualisiert. Ein Paket ist eine verwaltete Softwareeinheit, ein Repository ist eine Paketquelle. Paketmanager wie apt, dnf, zypper, pacman oder apk lösen Abhängigkeiten auf und stellen Updates bereit. Bei Debian und Ubuntu aktualisiert apt update die Paketlisten, während apt upgrade installierte Pakete aktualisiert. Sicherheitsupdates sind wichtig, weil sie bekannte Schwachstellen schließen. In produktiven Umgebungen sollten Updates geplant durchgeführt werden, mit Backup, Wartungsfenster, Prüfung der Dienste, Logkontrolle und Dokumentation. Drittanbieter-Repositories sollten nur bewusst genutzt werden, da sie Vertrauens- und Versionsrisiken mit sich bringen. Merksätze Paket = verwaltete Softwareeinheit. Paketmanager verwaltet Pakete. Repository = Paketquelle. Abhängigkeiten sind benötigte Zusatzpakete. apt ist typisch für Debian und Ubuntu. dnf ist typisch für Fedora und Rocky Linux. zypper ist typisch für openSUSE. pacman ist typisch für Arch Linux. apk ist typisch für Alpine Linux. apt update aktualisiert Paketlisten. apt upgrade aktualisiert installierte Pakete. apt install installiert Pakete. apt remove entfernt Pakete. apt purge entfernt Paketkonfigurationen mit. apt autoremove entfernt nicht mehr benötigte Abhängigkeiten. Sicherheitsupdates schließen bekannte Lücken. Patchmanagement ist ein Prozess. Updates auf Servern brauchen Planung. Kernel-Updates brauchen oft Neustart. Installiert heißt nicht automatisch: Dienst läuft. Drittanbieter-Repositories sind Vertrauensquellen. Paketfehler können Netzwerkprobleme sein. Speicherplatzprobleme können Updates verhindern. Minimale Installation reduziert Angriffsfläche. Nach Updates Dienste, Ports und Logs prüfen.