Linux: Endlich raus aus der Pakethölle

Das klassische Paketsystem zur Installation und Verwaltung von Software in vielen Linux-Distributionen ist vor allem für Umsteiger immer wieder eine große Hürde und selbst für langjährige Nutzer bieten verschiedene Quellen, Versionen und Abhängigkeiten der Pakete mitunter Schwierigkeiten. Mit Hilfe einer neuen Funktion aus dem Userspace-Werkzeugkasten Systemd könnte das aber zumindest für Betriebssystemupdates der Vergangenheit angehören.
Konkret handelt es sich dabei um die mit Systemd-Version 251(öffnet im neuen Fenster) veröffentlichte neue Komponente System-Sysupdate. Der Ankündigung vor wenigen Wochen zufolge kann die neue Komponente "A/B-Style-Updates für die Host-Installation selbst" erkennen, herunterladen und installieren.
Die Idee der nahtlosen A/B-Style-Updates, die etwa unter Android auch als nahtlose Updates bezeichnet werden, ist dabei denkbar einfach: Das derzeit laufende Betriebssystem wird nicht verändert, stattdessen wird eine komplett neue Version des Systems heruntergeladen und parallel zur ersten Instanz installiert. Bei einem Neustart wird in die dann aktualisierte Version gewechselt.
Dadurch kann vermieden werden, dass das laufende System in einen möglicherweise instabilen Zustand gerät. Ebenso lässt sich zumindest theoretisch leicht ein Update auch wieder zurückrollen, falls dieses unerwartet Probleme bereitet. Dieses Konzept gibt es auch für einige bestimmte Linux-Systeme bereits seit Jahren, breit durchsetzen konnte es sich auf den klassischen Linux-Distributionen bisher aber nicht. Mit der Neuerung in Systemd könnte sich das nun mittelfristig ändern.
Von A nach B unter Linux
Die beiden wohl erfolgreichsten Betriebssysteme für Endnutzer, die auf Linux basieren, Android und Chrome OS, sind die Paradebeispiele dafür, dass die A/B-Updates erfolgreich auch für viele Millionen Nutzer bereitgestellt werden können. Das Mobilsystem Android ist dabei aber vor allem wegen seines eher ungewöhnlichen Systemaufbaus ein schlechter Vergleich zu den Desktop- und Serverdistributionen wie Debian, Ubuntu, Fedora oder Opensuse oder deren Derivaten.
Etwas anders sieht das bereits bei Chrome OS aus. Zwar weicht auch dieses System im Aufbau und der Softwareauswahl von den aufgezählten Distributionen leicht ab. Aber Chrome OS nutzt Pakete und einen Paketmanager(öffnet im neuen Fenster) : Portage aus dem Gentoo-Projekt mit zahlreicher eigener Software, aber auch Software, die direkt aus Gentoo stammt. Google ist die Kombination aus Paketmanager und A/B-Updates also bereits im großen Stil geglückt. Andere Distributionen agieren hier eher verhalten.
Experimente für die A/B-Updates gibt es aber auch in verschiedenen Varianten der klassischen Distributionen. Diese werden bisher aber hauptsächlich im Container- und IoT-Umfeld genutzt. Vorreiter auf diesem Gebiete waren unter anderem Ubuntu Core mit den transactional Updates und Snap , der Fedora Atomic Host und das Core OS Container Linux , die etwa vor acht Jahren entstanden. Einige Jahre später folgte eine vergleichbare Technik auch in Opensuse .
Trotz vieler Versuche und Initiativen wie etwa Fedoras Silverblue hat sich das Konzept bisher nicht groß durchsetzen können. Mit einer veränderten Ausrichtung der Desktop- und Serversysteme in den vergangenen Jahren sowie auch der nun gestarteten Vereinheitlichung durch Systemd könnte sich aber eben genau das künftig ändern.
Pakete und Anwendungen vom System trennen
Mit dem Aufkommen der Containertechnik, die insbesondere durch Docker populär geworden ist, vollzieht sich ein langsamer, aber stetiger Wechsel innerhalb der Linux-Distributionen und auch der Nutzerschaft in Bezug auf das, was das Betriebssystem an sich eigentlich leisten soll.
In den 90er und 00er Jahren waren die Distributionen noch Sammlungen von detailliert aufeinander abgestimmter Software, die über Tausende voneinander abhängige Pakete ausgeliefert wurden – vom Desktop mit GUI-Software bis hin zum klassischen Lamp-Stack mit Web-Server und Datenbank.
Doch die Serveranwendungen und deren Ausspielen sind immer komplexer geworden. Mehr und größere Teams von Entwicklern kümmern sich um stetig wachsende Flotten von Serveranwendungen, die auch immer schneller ausgeliefert werden sollen. Das Paketsystem der teils über Jahre gepflegten Linux-Distributionen geriet damit schon vor spätestens zehn Jahren an praktische Grenzen.
Containerverwaltungen wie eben Docker sind angetreten, dies zu lösen, indem die eigenen Anwendungen mit ihren Abhängigkeiten gepackt und unabhängig vom darunterliegenden Betriebssystem ausgeführt werden kann. Diese Vorteile entdeckten auch die Entwickler von GUI-Software für Linux und starteten Projekte wie Appimage, Ubuntus Snappy oder auch Flatpak .
Hier ist vor allem das Ziel, dass auch die grafische Software distributionsübergreifend bereitgestellt werden kann, was etwa Anbieter von Drittsoftware entgegenkommen soll, die bisher oft Probleme damit haben, Pakete für Desktop-Linux-Systeme anzubieten. Valve nutzt das auf seinem Gaming-Handheld Steam Deck .
Wendepunkt beim Betriebssystembau
Diese von Anwendungsentwicklern und teils auch Nutzern wohl schlicht wegen der Einfachheit gewählte Technik bringt die Ersteller von Distributionen aber eben unter Zugzwang. Welche Software soll als Paket gepflegt werden und wie lang? Wer übernimmt die Updates? Sind diese nicht besser bei den Entwickler der Software selbst statt den Betriebssystemdistributoren aufgehoben? Endgültige Fragen auf diese Antworten gibt es bisher noch nicht.
Die erwähnten Konzepte der verschiedenen Distributoren zeigen aber, dass an der Beantwortung dieser Fragen gearbeitet wird. Bisher allerdings nicht wirklich distributionsübergreifend. Viel mehr setzen die Beteiligten oft auf interne Lösungen, die meist dynamisch gewachsen sind. Doch das Systemd-Sysupdate könnte genau diesen Wildwuchs wie vieles zuvor schon vereinheitlichen.
Selbst in dem für seine komplexe Entscheidungsfindung berüchtigten Debian-Projekt werden inzwischen nach vielen Diskussionen die Systemd-Werkzeuge vorzugsweise genutzt . Sollten sich die großen Distributionen in Bezug auf die Sysupdate-Komponente ähnlich verhalten, bleibt zu erwarten, dass zumindest die auf die A/B-Updates spezialisierte Varianten diese Technik künftig umsetzen.
Die Paketsysteme wie RPM und DEB mit ihren spezifischen Paketverwaltungen wie APT, Zypper oder DNF würden dann von Werkzeugen, die Nutzer und Administratoren einsetzen, zu Werkzeugen für die Distributoren selbst, um das Basissystem aus Root-Dateisystem und Kernel-Abbild zu erstellen. Wann und vor allem ob dies aber auch im großen Maßstab geschieht, ist derzeit noch völlig ungewiss. Sollten die Experimente mit Systemd-Sysupdate jedoch erfolgreich verlaufen, dürfte die Technik Admins, Nutzern und Distributoren den Umgang mit dem System deutlich erleichtern.