Fedora Flatpaks versus Flathub

Mi, 9. Februar 2022, Ralf Hersel

Im Fedora-Magazin ist ein Vergleich zwischen den Paketsystemen Flathub und Fedora Flatpaks erschienen. Hier eine Zusammenfassung: Flathub ist die de-facto Flatpak-Plattform, während Fedora Flatpaks eine Flatpak-Quelle des Fedora-Projekts ist. Fedora Flatpaks und Flathub haben die gleichen Ziele, unterscheiden sich aber in ihrer Motivation. Das Ziel ist es, Anwendungen in ihrem jeweiligen Bereich zugänglich zu machen, den Komfort zu maximieren und die Wartung zu minimieren.


Die Motivation von Fedora Flatpaks ist es, RPMs, die direkt vom Fedora-Projekt stammen, als Flatpaks unter Fedora Linux zugänglich zu machen, unabhängig von den Versionen, Spin usw. Theoretisch wäre es also möglich, die neuesten und besten Anwendungen des Fedora-Projekts zu erhalten, ohne auf die neueste Version von Fedora Linux aktualisieren zu müssen. Natürlich ist es immer ratsam, alles auf dem neuesten Stand zu halten.

Die Motivation von Flathub ist es, Anwendungen und Werkzeuge so zugänglich wie möglich zu machen, unabhängig von der verwendeten Distribution. Daher sind alle Tools auf GitHub verfügbar. Das Einreichen von Problemen für Anwendungen, die von Flathub bereitgestellt werden, ist dasselbe wie das Einreichen von Problemen für jedes Projekt auf GitHub.

Pakete

Fedora Flatpaks und Flathub erstellen Flatpak-Anwendungen unterschiedlich. In erster Linie konvertiert Fedora Flatpaks bestehende RPMs in Flatpak-kompatible Dateien, die Entwickler dann einfach als Flatpak bündeln und weiterverteilen können. Flathub hingegen ist offener, wenn es darum geht, wie Entwickler Anwendungen bündeln.

Fedora Flatpaks veröffentlicht nur freie und quelloffene Software, während Flathub sowohl freie und quelloffene Software als auch proprietäre Software veröffentlicht. Flathub plant jedoch, proprietäre Anwendungen von freien und quelloffenen Anwendungen zu trennen.

Flathub ist offen dafür, welche Quellen eine Flatpak-Anwendung (wieder)verwendet, während Fedora Flatpaks strikt das RPM-Format verwenden. Aus diesem Grund gibt es in Flathub eine Vielzahl von Anwendungen, die andere Paketformate wiederverwenden. Zum Beispiel verwendet das Chrome Flatpak das .deb-Paket, das UnityHub Flatpak das AppImage, das Spotify Flatpak das Snap-Paket, das Android Studio Flatpak ein tar.gz-Archiv, usw. Alternativ kompiliert Flathub auch direkt aus dem Quellcode. Manchmal aus einem Quellarchiv, aus einem laufenden Git-Klon usw.

Fedora Flatpaks (akuell 88) hat weniger Anwendungen als Flathub (aktuell 2767).

OSTree- und OCI-Formate

Die Implementierungen sind ebenfalls recht unterschiedlich. Sowohl Fedora Flatpaks als auch Flathub verwenden Flatpak, um Anwender:innen bei der Installation, Entfernung und Verwaltung von Anwendungen zu unterstützen. In Bezug auf die Art und Weise, wie diese Anwendungen veröffentlicht werden, funktionieren sie jedoch grundlegend anders. Flathub verwendet das OSTree-Format, um Anwendungen zu veröffentlichen, während Fedora Flatpaks das OCI-Format verwendet.

OSTree (oder libostree) ist ein Werkzeug, um den Überblick über System-Binärdateien zu behalten. Entwickler betrachten OSTree als "Git für Binärdateien", da es konzeptionell mit Git vergleichbar ist. Das OSTree-Format ist das Standardformat für Flatpak, das Flathub zur Veröffentlichung von Paketen und Aktualisierungen verwendet. Beim Herunterladen einer Anwendung prüft OSTree die Unterschiede zwischen der installierten Anwendung (falls installiert) und der aktualisierten Anwendung und lädt auf intelligente Weise die Unterschiede herunter und ändert sie, während alles andere unverändert bleibt, was die Bandbreite reduziert. Diesen Prozess nennt man Delta-Updates.

Die Open Container Initiative (OCI) ist eine Initiative mehrerer Organisationen zur Standardisierung bestimmter Elemente von Containern. Fedora Flatpaks verwendet das OCI-Format, um Anwendungen zu veröffentlichen. Dieses Format ähnelt der Funktionsweise von Docker, sodass es für Entwickler, die bereits mit Docker vertraut sind, relativ leicht zu verstehen ist. Ausserdem ermöglicht das OCI-Format dem Fedora-Projekt, die Fedora Registry, die Docker-Registry des Fedora-Projekts, zu erweitern, indem Flatpak-Anwendungen als Docker-Images erstellt und in einer Docker-Registry veröffentlicht werden. Dies vermeidet den Aufwand und die Komplikationen, die entstehen, wenn man zusätzliche Tools verwenden muss, um eine zusätzliche Infrastruktur zu unterhalten, nur um ein Flatpak remote zu verwalten. Stattdessen verwendet das Fedora-Projekt einfach die Fedora-Registry wieder, um die Wartung viel einfacher und überschaubarer zu machen.

Laufzeit-Umgebungen (Runtimes)

Flatpak-Runtimes sind Kernabhängigkeiten, bei denen Anwendungen diese Abhängigkeiten wiederverwenden, ohne Daten zu duplizieren, auch bekannt als "Deduplizierung". Runtimes können auf anderen Runtimes aufsetzen oder unabhängig davon erstellt werden.

Flathub dezentralisiert diese Runtimes, d.h. Runtimes sind nur für bestimmte Arten von Anwendungen verfügbar. Zum Beispiel verwenden GTK-Anwendungen die GNOME-Laufzeitumgebung (org.gnome.Platform), Qt-Anwendungen die KDE-Laufzeitumgebung (org.kde.Platform), fast alles andere verwendet die freedesktop.org-Laufzeitumgebung (org.freedesktop.Platform). Die jeweiligen Organisationen pflegen diese Runtimes und veröffentlichen sie auf Flathub. Sowohl die GNOME- als auch die KDE-Laufzeitumgebung bauen auf der freedesktop.org-Laufzeitumgebung auf.

Fedora Flatpaks hingegen verwendet eine Laufzeitumgebung für alles, unabhängig von der Grösse der Anwendung. Das bedeutet, dass bei der Installation einer Anwendung von Fedora Flatpaks die gesamte Fedora-Laufzeitumgebung (org.fedoraproject.Platform) heruntergeladen und installiert wird.

Fazit

Fedora Flatpaks konzentriert sich darauf, die bestehende Infrastruktur voll auszunutzen, indem es einem durchschnittlichen Benutzer mehr bietet, ohne mehr Ressourcen zu verbrauchen. Im Gegensatz dazu strebt Flathub danach, die Verteilung/Veröffentlichung von Anwendungen und deren Nutzung für Entwickler und Nutzer so einfach wie möglich zu gestalten. Bei beiden Systemen ist beeindruckend, wie schnell sie sich in kürzester Zeit verbessert haben. Das Fedora-Projekt hofft, dass beide immer besser werden und zum Standard für die Mehrheit der Desktop-Linux-Distributionen werden.

Quelle: https://fedoramagazine.org/comparison-of-fedora-flatpaks-and-flathub-remotes/