Snap - Flatpak - AppImage

Ein Vergleich zwischen Snap, Flatpak und AppImage.

Mi, 05. August 2020, Ralf Hersel

In den letzten Jahren versuchen sich drei verschiedene distributionsunabhängige Paketformate durchzusetzen: Snap, Flatpak und AppImages. Diese ermöglichen es Entwicklern, Anwendungen zu paketieren, zu verteilen, zu installieren und zu warten. Im Gegensatz zu herkömmlichen Paketformaten (wie deb oder rpm) bündeln verteilungsunabhängige Paketformate Anwendungen mit allen Abhängigkeiten, um die Anwendung als ein einziges Paket zu installieren und auszuführen. Daher läuft jede Software, die mit diesem Ansatz vertrieben wird, auf jedem GNU/Linux-System, das die Rahmenbedingungen für dieses spezielle Paketformat unterstützt.

Pakete

Neue Pakete: Snap, Flatpak, AppImage

Zum Vergleich der drei Paketformate, haben wir eine tabellarische Übersicht der Eigenschaften erstellt. Die Tabelle ist unvollständig und subjektiv. So fehlen zum Beispiel die Punkte 'Integration' und 'Benutzererfahrung'. Das Installieren und Einrichten der Apps überzeugt nur mässig, abhängig von der Integration in bestimmte Distributionen und den Fähigkeiten der einzelnen Paketformate.

Eigenschaft Snap Flatpak  AppImage
Ursprung Canonical RedHat Simon Peter
Lizenz Client:GPL3
Server: proprietär
Apache 2.0 MIT
Zugriffskontrolle Ja Ja Nein
unterstützt Sandboxing Ja Ja Ja
verlangt Sandboxing Ja Ja Nein
Portabilität mit Aufwand mit Aufwand Ja
Native Themes eingeschränkt eingeschränkt eingeschränkt
Gebündelte Bibliotheken Ja Ja Ja
Einzelne ausführbare Datei Nein Nein Ja
App Store

https://snapcraft.io/store

https://flathub.org

https://appimage.github.io/apps/

Angebot im App Store > 1490 873 1118
Mehrere parallele Versionen Ja Ja Ja
Automatische Aktualisierung Ja Ja eingeschränkt
Unterstützung für ChromeOS Ja Ja Ja
App Grösse gross gross klein
App Store für den Desktop Ja Ja Nein
Startgeschwindigkeit langsam langsam mittel
Bewertung 29 Punkte 30 Punkte 29 Punkte


Bewertung

Für die Bewertung wurden für alle Eigenschaften 1 bis 3 Punkte vergeben. Bei Gleichstand, erhielten alle Paketformate 2 Punkte; bei zwei gleichwertigen, erhielten diese 2 Punkte und das schlechtere 1 Punkt, bzw. die beiden schlechteren je 1 Punkt und das bessere 2 Punkte. Die Bewertung ist selbstverständlich subjektiv und lässt ungenannte Eigenschaften ausser Acht. Trotzdem liegen die drei Formate sehr nahe beieinander, da sie sich nur um einen Punkt voneinander unterscheiden. Wer mag, kann die Bertung nach eigenem Ermessen durchführen; vielleicht ergibt sich dabei ein anderer Sieger.

Entwicklersicht vs. Anwendersicht

Aus Entwicklersicht bieten alle Paketformate klare Vorteile. Es reicht ein Format aus, um möglichst viele Anwenderinnen zu erreichen, da diese drei in allen populären GNU/Linux-Distributionen verfügbar sind. Der Entwickler kann sich auf ein Format beschränken, statt diverse alte Pakete zu bauen. Dann wäre da noch das Aktualisierungsverhalten; Snaps und AppImages verhalten sich wie Rolling Releases; sie können nach eigenem Gusto eine neue Version nachziehen. Dies geschieht unabhängig von einem kuratierten LTS-Ansatz und untergräbt diesen somit.

Der Anwenderin bietet sich ein anderes Bild. Aus technischer Sicht profitiert der Anwender vom Sandboxing, der detaillierten Zugriffssteuerung und der Möglichkeit, mehrere Versionen parallel zu betreiben (falls man das braucht). Dennoch überwiegen die Nachteile: bei der Installation ist (fast immer) die Wahl für ein bestimmtes Paketformat zu treffen. Die gemütlichen Zeiten, mit einem Distro-spezifischen Format, sind vorbei. Ein Grossteil der Anwenderinnen ist mit dieser Auswahl tatsächlich überfordert; wie soll Tante Liese entscheiden, ob Snap, Flatpak, AppImage, DEB oder RPM nun die korrekte Wahl ist? Hinzu kommt, dass die Neuen in der Regel eine schlechtere Integration bieten als die Alten. Einen Starter bauen und ein Icon wählen, ist keine Aufgabe für ungeübte Endanwender. Auch die Startzeiten der modernen Pakete entsprechen nicht dem gewohnten status-quo; insbesondere Snaps und Flatpaks starten deutlich langsamer als die altbekannten Formate.

Fazit

Die altbewährten Paketformate haben sich über Jahre weiterentwickelt und wurden hinsichtlich Geschwindigkeit, Integration und Benutzerfreundlichkeit optimiert. Ich persönlich habe in 20 Jahren noch nie einen Abhängigkeitsbruch mit DEB-Paketen erlebt. Daher fällt die Empfehlung für die neuen Formate zwiespältig aus: wem Startgeschwindigkeit, Stabilität und gute Integration am Herzen liegt, der verwendet mit Vorteil die alten, distributionsspezifischen Paketformate. Wer auf Parallelbetrieb von Versionen, Aktualität der Apps, Isolation in Sandboxes und explizite Rechtevergabe schwört, für den sind Flatpaks die richtige Wahl.