
Flatpak ist grundsätzlich ein Bündelungssystem, und als solches hat es im Vergleich zu anderen Paketsystemen den Nachteil des prinzipbedingt größeren Umfangs. Nach Meinung von GNOME- und Flatpak-Entwickler Alexander Larsson kompensieren die Vorteile der Bündelung aber die Nachteile. In einem Blogpost erklärt er, was in der Entwicklung gegen das Aufblähen getan wird.
Maßnahmen gegen Bloat
Bereits das Grundgerüst der Flatpak-Infrastruktur versucht, Bloat zu vermeiden. Das geschieht durch die Aufteilung in Laufzeitumgebung und Anwendungen. Das bedeutet, dass Anwendungen nicht alles bündeln müssen und dass gemeinsame Abhängigkeiten zwischen verschiedenen Anwendungen geteilt werden.
Bei der Konzeption von Flatpak war die Eindämmung von Bloat allerdings nicht das Hauptargument für den Einsatz von Laufzeitumgebungen. Dabei ging es vordergründig um Dinge wie Wartung, gemeinsame Eigentümerschaft und darum, Kernfunktionalitäten separat veröffentlichen zu können. Hier stehen beispielsweise Sicherheitsaktualisierungen im Fokus, die Anwendungsautoren weder beherrschen noch Interesse daran haben.
OSTree ist mit Git vergleichbar
Für die Anwendungsspeicherung nutzt Flatpak ein System namens OSTree, welches durch Deduplikation auf Dateiebene bereits eine Doppelung von Daten verhindert. Larsson versucht OSTree zu erklären, wenn er sagt: »Es ist wie Git, aber für Verzeichnisse mit großen Binärdateien«. Für Flatpak bedeutet das, dass jede Runtime (es können mehrere installiert sein) und jede Anwendung einen Zweig in einem OSTree-Repository darstellen, der einem Git-Branch entspricht. Dabei sind alle Verzeichnisse und Dateien, vereinfacht dargestellt, mit IDs versehen. Alle identischen Dateien werden so erkannt und dabei zwischen den Anwendungen geteilt. Das entlastet nicht nur RAM und Plattenplatz sondern spart Bandbreite beim Download.
Effektive Einsparung
Dass das effektiv funktioniert, zeigt das Beispiel der beiden Laufzeitumgebungen von GNOME und freedesktop.org. Letztere hat eine Größe von 435 MByte, die von GNOME wirft 665 MByte in die Waagschale. Dabei ist die GNOME-Runtime eine Kopie der Runtime von freedesktop.org mit einigen entfernten und einigen hinzugekommenen Dateien.
Wird die GNOME-Runtime zusätzlich zu der von freedesktop.org installiert, werden lediglich 18 MByte mehr belegt anstatt 230 MByte. Das gleiche gilt für die KDE-Runtime und weitere, unter Umständen auch selbst erstellte Laufzeitumgebungen. Auch die Installation von x86-64- und i386-Builds der GNOME-Laufzeitumgebung spart 220 MByte ein.
Schreibe einen Kommentar