Als langjähriger Nutzer eines Linux-Desktops ist man bei der Installation neuer Programme auf Vorsicht getrimmt. Passt die Anwendung auch zum Desktop meiner Wahl? Fang ich mir damit nicht unzählige Abhängigkeiten ein, die mir unweigerlich mein System zumüllen? Gibt es das Programm überhaupt (schon) im Angebot meiner Distribution, oder ist es noch zu neu? Und vielleicht auch gleich noch in der neuesten Version? Und wenn nicht, welcher externen Paketquelle vertraue ich?

Fragen, die zumindest beim Autor in den vergangenen Jahren zunehmend in den Hintergrund getreten und einer Art neuen Leichtigkeit gewichen sind. Der Grund dafür heißt Flatpak – und ist wohl das Beste, was dem Linux-Desktop seit Jahren passiert ist. Macht es doch nicht nur Schluss mit all diesen Problemen, es bringt auch neuen Schwung in die Anwendungsentwicklung für das freie Betriebssystem.

Eine Frage des Ansatzes

Doch was ist eigentlich ein Flatpak? Und was macht es so anders? Dazu muss man erst einmal wissen, wie die Softwareauslieferung unter Linux traditionell funktioniert, nämlich vollständig in der Hand der jeweiligen Distribution. Deren Entwicklerinnen und Entwickler sind es, die die einzelnen Softwarekomponenten auswählen, um danach aus dem öffentlich verfügbaren Quellcode eigene Pakete zu erstellen, die in Summe dann das gesamte System ergeben – die Distribution eben.

Ein Linux-Desktop mit Katze und der Anwendung Flatseal
Flatpaks verhalten sich genauso wie normal installierte Anwendungen. Im Bild ist Loupe zu sehen, der neue Bildanzeiger von Gnome.
Proschofsky / STANDARD

Das hat durchaus Vorteile, der wichtigste: Der Distribution kommt eine Art Prüfrolle ein, sie sorgt dafür, dass alles gut aufeinander abgestimmt ist und kümmert sich auch um die langfristige Wartung.

Viele klassische Probleme

Klingt gut, die Nachteile sind aber ebenfalls nicht zu übersehen. Da jede Distribution eine individuelle Auswahl an Pakettools und Systembibliotheken verwendet, ist ein Programm für Distribution x üblicherweise nicht mit Distribution y kompatibel. Das hat sich in der Vergangenheit vor allem für die Entwickler proprietärer Software als echte Hürde herausgestellt, die sich dann entweder nur auf wenige prominente Distributionen beschränkt oder auf eine Linux-Unterstützung lieber gleich ganz verzichtet haben.

Doch es gibt auch für freie Software nicht zu unterschätzende Nachteile. Denn so gut das Ideal der Supervision durch technisch versierte Paketverwalter mit endlosen Ressourcen auch klingt, in der Realität spielt es das halt nicht. Dort ist es oftmals so, dass selbst große Distributionen zum Teil grob veraltete und begrenzt gut gewartete Versionen bekannter Programme ausliefern.

Das ist nicht nur für die Nutzer, sondern auch für die betroffenen Entwicklerinnen und Entwickler nervig. Müssen sie sich doch oftmals mit Fehlerberichten von längst nicht mehr gewarteten Versionen ihrer Software herumschlagen. Bei der dann auch nicht immer gleich klar ist, ob der Bug durch das Programm selbst oder eine Modifikation der jeweiligen Distribution ausgelöst wurde.

Ein gänzlich anderer Ansatz

Bei Flatpak handelt es sich hingegen um ein distributionsübergreifendes Paketformat. Das gleiche Paket läuft also auf jeder Distribution, auf der die entsprechenden Tools installiert sind – und das sind heutzutage sehr viele. Zudem sind die Entwicklerinnen und Entwickler des Programms selbst für die Wartung zuständig. Sie entscheiden also exakt, was in der Software enthalten ist, und können auch schnell neue Versionen an wirklich alle Nutzer schicken.

Exkurs: Alternativen

An dieser Stelle muss kurz eingeworfen werden, dass Flatpak – wie es sich für Linux gehört – natürlich nicht das einzige distributionsübergreifende Format ist. Die bekannteste Alternative ist Snap, auch AppImages erfreut sich einer gewissen Popularität. Warum also der Fokus auf Flatpak? Einfach weil es realistisch das für die meisten relevante dieser Formate ist. AppImages sind nett, erfüllen aber auch deutlich weniger Aufgaben. Snaps sind wiederum eine Eigenentwicklung von Ubuntu-Entwickler Canonical, die von so gut wie allen anderen Distributionen abgelehnt wird, da sich der Hersteller gewisse exklusive Rechte behält.

Hürde, gesenkt

Aber zurück zum eigentlichen Thema. Flatpak hat nämlich nicht nur theoretisch, sondern auch praktisch klare Vorteile. So senkt es die Hürde, neue Programme einer breiteren Linux-Öffentlichkeit zur Verfügung zu stellen, massiv. Wo früher bei allerlei Distributionen geworben werden musste, um die eigene Software unterzubringen, reicht es nun das zugehörige Flatpak – oder genauer die Regeln zu dessen Erstellung – beim zugehörigen App Store Flathub einzureichen. Noch schnell eine Ankündigung im Blog oder in sozialen Medien, und schon können interessierte Nutzer das eigene Programm ausprobieren, egal welche Distribution sie nutzen.

Ein Screenshot der Startseite von Flathub
Bei Flathub wächst das App-Angebot derzeit rasch.
Proschofsky / STANDARD

Dass das nicht bloß Theorie ist, zeigt sich mit einem Blick auf Flathub. Dort ist gerade in den vergangenen Monaten eine wachsende Zahl an neuen Anwendungen aufgetaucht, die sich zum Teil als "Flatpak First" verstehen. Um klassische Paketformate kümmert man sich dabei selbst meist gar nicht mehr.

Wie gesagt ist das vor allem für neue Programme von Vorteil, einfach weil sie so schon in einem frühen Entwicklungsstadium unkompliziert Testerinnen und Tester finden können. Beim GNOME-Projekt hat man das mittlerweile gar institutionalisiert. Programme, die Teil des Desktops werden wollen, müssen einige Monate vorher auf Flathub verfügbar sein.

Ein sichererer Spielplatz für alte Sachen

Doch Flatpaks sind auch für eine ganz andere Kategorie an Programmen im Vorteil: jene, die besonders komplex sind und bei klassischem Installationsweg eine Fülle an sonst ungenutzten Programmen und Bibliotheken ins System ziehen würden. Gerade für so manch veraltetes Tool, das mal eben gebraucht wird, bieten Flatpaks eine saubere Alternative. Wird hier doch alles fein säuberlich vom restlichen System installiert, es kann also auch wieder in einem Rutsch restlos entfernt werden. Insofern ist es kein Wunder, dass gerade Emulatoren mit ihren typischerweise vielen Abhängigkeiten prominent in der Liste der beliebtesten Apps auf Flathub vertreten sind.

Sicherheitsfragen

Isolierung ist überhaupt eine der großen Stärken von Flatpaks. Während ein normales Linux-Programm von Haus aus Zugriff auf sämtliche lokal gespeicherten Dateien hat, ist das hier nicht der Fall. Auch sonst lässt sich über ein eigenes Berechtigungssystem der Zugriff auf zahlreiche Systemressourcen regeln - von Kamera über Bluetooth bis zur 3D-Beschleunigung.

Nun muss eingestanden werden, dass dieses gesamte Konzept im Vergleich zu - beispielsweise – aktuellen Smartphones noch etwas unfertig wirkt, Flatpaks beispielsweise sehr wohl noch von Haus aus weitreichende Berechtigungen einholen können. Aber einerseits hat sich die Situation in dieser Hinsicht zuletzt schon stark gebessert, zudem sind weitere Verschärfungen in dieser Hinsicht wohl nur eine Frage der Zeit.

Ein Screenshot von Flatseal
Wer die Sandbox einer App individuell anpassen will, kann das mit der Flatseal bis ins kleinste Detail.
Proschofsky / STANDARD

Die Möglichkeit der weitreichenden Isolation ermöglicht es dann übrigens auch, Software zu nutzen, die auf regulärem Weg wirklich niemand mehr auf seinem Linux-Desktop installieren sollte, einfach weil sie dermaßen viele bekannte Sicherheitslücken besitzt. So gibt es etwa Flatpaks für schon lange nicht mehr gepflegte Programme wie Adobe Flash Player oder auch den Acrobat Reader, die für jene, die sie wirklich einmal brauchen, in eine äußerst restriktive Sandbox gesteckt wurden.

Aktuelle Software, immer

So paradox es klingen mag, aus Nutzersicht aber ein nicht zu unterschätzender Vorteil: die Unabhängigkeit der Softwareauslieferung von der gewählten Distribution. Wer etwa Debian nutzt, tut das meist wegen der hohen Stabilität der Kernsoftware. Dass es dann aber auch Desktop-Programme oft nur in grob veralteten Versionen gibt, ist für viele ein echtes Ärgernis. Mit Flatpaks kann man diesen Beschränkungen entkommen und so das Beste aus beiden Welten vereinen.

Experiementierfreude, gesteigert

In Summe hat all das einen interessanten Effekt: Es ist in der Flatpak-Welt einfach wesentlich verlockender, schnell mal ein neues Stück Software auszuprobieren. Oder auch nur vorübergehend ein älteres Programm zur Hilfe zu holen, um es anschließend gleich wieder zu deinstallieren. Einfach weil das einleitend erwähnte Kopfzerbrechen wegfällt.

All das schlägt sich auch in den aktuellen Zahlen rund um Flathub nieder, dort wächst das Softwareangebot derzeit nämlich rasant. Waren es im März noch rund 2.000 Desktop-Apps, die über die Plattform verfügbar waren, sind es mittlerweile schon fast 3.000. Vor allem aber entwickeln sich die Downloads rasant, im Vergleich zum Vorjahr haben sie sich mehr als verdoppelt. Der Trend geht aktuell in Richtung zwei Millionen Downloads täglich, wie die aktuellen Statistiken zeigen.

Der Platzverbrauch ist höher

Das soll nicht bedeuten, dass Flatpaks perfekt sind, das sind sie natürlich nicht. Jedes System hat seine spezifischen Nachteile, das ist hier nicht anders. Damit Flatpaks distributionsübergreifend funktionieren, müssen sie etwa eine Fülle von Bibliotheken und anderen Komponenten mitliefern, die bei einer klassischen Distribution bereits da sind. Anders gesagt: Sie verbrauchen typischerweise mehr Platz – manchmal auch viel mehr Platz.

In einem Kommandozeilentool ist der Platzverbrauch einzelner Flatpaks zu sehen
Der Platzverbrauch von Flatpaks variiert stark, je nachdem, wie viel einzelne Apps selbst mitliefern oder wie viel sie von Runtimes übernehmen.
Proschofsky / STANDARD

Um diesen Overhead zu minimieren, haben sich die Flatpak-Entwickler den einen oder anderen Trick einfallen lassen. Da wäre einmal das System der "Runtimes". In solchen werden viel genutzte Bibliotheken und Ressourcen versammelt, die Apps selbst müssen das nicht noch einmal mitliefern, sondern sagen Flatpak einfach, dass sie beispielsweise die Runtime von GNOME 44 oder KDE 5.15 benötigen. Diese wiederum setzen übrigens auf einer gemeinsamen Freedesktop-Runtime auf, die viele gebräuchliche Komponenten enthält.

Dazu kommt, dass sämtliche Daten dedupliziert gespeichert werden. Enthalten zwei (oder mehr) Runtimes gleiche Dateien, werden diese nur einmal gespeichert. Klingt trivial, erhöht den Overhead aber massiv, wenn man etwa mehrere Generationen der Gnome-Runtime parallel installiert hat. Trotzdem bleibt natürlich die Realität, dass klassische Paketsysteme vom Platzverbrauch her sparsamer sind, daran gibt es wenig zu rütteln.

Kontrolle

Ein weiteres Problem ist, dass man natürlich den jeweiligen Programmentwicklern vertrauen muss, dass diese die mitgelieferten Drittkomponenten ordentlich warten. Dass das nicht immer der Fall ist, kennt man auch von anderen Betriebssystemen schon. Alleine schon deswegen werden klassische Paketsysteme sicher auch auf längere Sicht noch ihre Relevanz behalten, einfach für jene, die alles unter Kontrolle der jeweiligen Distribution haben wollen. Und das ist auch gut so, immerhin ist die Wahlmöglichkeit eine der zentralen Stärken von Linux.

Ausblick

Trotzdem ist abzusehen, dass Flatpak – oder ähnliche Systeme – die Zukunft der Softwareauslieferung unter Linux ist, vor allem wenn es um Desktop-Programme geht. Zu stark sind die Vorteile für alle Beteiligten – von Usern über Entwickler bis zu den Distributionen selbst. Ja, auch diese, denn wie einleitend bereits angedeutet wurde, sind deren Ressourcen nun mal nicht unendlich. Gleichzeitig ist der Wartungsaufwand für komplexe Programme wie Firefox, Libreoffice und wie sie alle heißen erheblich. Zumal gerade große Distributionen davon üblicherweise mehrere Versionen parallel pflegen müssen.

Dem gegenüber steht die Möglichkeit, diesen Aufwand auf null zu reduzieren und einfach das passende Flatpak oder Snap zu verwenden. Bei einer solch eindeutigen Kalkulation darf eigentlich nicht verwundern, dass genau diese Entwicklung bereits begonnen hat. Ubuntu übernimmt mittlerweile das offizielle Snap-Paket für Firefox, bei Red Hat hat man unlängst angekündigt, die eigene Wartung von Libreoffice einzustellen und stattdessen auf das Flatpak zu verweisen.

Logische Entwicklung

Diese Entwicklung kann man für betrüblich halten, aber einerseits kann jeder, der das so sieht, sich ja selbst an der Wartung der von den Herstellern abgegebenen, klassischen Pakete beteiligen, und diese so als Alternative zu den Flatpaks und Snaps am Leben erhalten. Zudem könnte man durchaus die Frage aufwerfen, ob die Zeit der Distributionsentwickler nicht ohnehin besser für die Weiterentwicklung der Kernsoftware anstatt mit solchen Wartungsarbeiten aufgehoben ist. Bei Community-Projekten muss das natürlich jeder und jede für sich selbst wissen, dass Firmen ihre Ressourcen an anderer Stelle besser aufgehoben sehen, darf aber auch nicht verwundern.

Der nächste große Schritt

Für die Zukunft ist zu erwarten, dass sich die oben beschriebenen Trends noch weiter beschleunigen. Einerseits weil das ganze Ökosystem rund um Flatpak immer ausgereifter wird, etwa auch was die fixe Integration mit Distributionen und deren Desktops anbelangt. Andererseits aber auch, weil rund um Flathub einige größere Neuerungen anstehen.

Die wichtigste: Künftig soll es möglich werden, für Apps auf Flathub zu zahlen – einmalig oder im Abo. Das könnte nicht nur einen neuen Anreiz zur Linux-Unterstützung für proprietäre Software bieten, es eröffnet auch die Möglichkeit, auf einfachem Weg freie Softwareprojekte zu unterstützen.

Fazit

All das könnte die Softwareentwicklung für das freie Betriebssystem also frisch ankurbeln. Etwas von dem schlussendlich alle, die den Linux-Desktop verwenden, profitieren würden – egal ob sie sonst klassischen Paketsystemen oder doch Flatpaks den Vorzug geben. Immerhin ist ein Programm, das es für Linux gibt, immer besser als wenn nicht – egal in welchem Format. (Andreas Proschofsky, 27.8.2023)