Flatpak von innen

Installation per Flatpak-Hub
Screenshot: FThommes

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, [wiki title=”Bloatware”]Bloat[/wiki] zu vermeiden. Das geschieht durch die Aufteilung in [wiki title=”Laufzeitumgebung”]Laufzeitumgebung[/wiki] 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 [wiki title=”Freedesktop.org”]freedesktop.org[/wiki]. 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.

 

Teilt den Beitrag, falls ihr mögt

Abonnieren
Benachrichtige mich bei
0 Kommentare
Inline Feedbacks
View all comments