AppImage, Flatpak und Snap: Was können die alternativen Paketformate?

|
Wer Linux-Distributionen wie Ubuntu oder Debian nutzt, weiß, wie hier Software installiert wird: In einem zentralen, von der Distribution gepflegten, Repository werden Softwarepakete wie Firefox oder Thunderbird von Maintainern bereitgestellt und gepflegt. Die Installation erfolgt komfortabel entweder über die Kommandozeile oder in AppShop-ähnlichen grafischen Oberflächen. Welche das sind und welche Vor- und Nachteile sie mitbringen, erfahrt ihr in den nächsten Zeilen.

Warum fehlt Software in den Distributionen?

Die meisten Distributionen nehmen zum Beispiel nur Software auf, die unter einer freien Lizenz steht. So werden unter anderem beliebte Anwendungen wie Slack oder Zoom ausgeschlossen. Außerdem kann es sein, dass sich bisher noch kein Maintainer bereit erklärt hat, eine Software zu einem Paket zu schnüren.

Ist eine Software nicht im Repository vorhanden, wird es kompliziert. Oft muss die Software dann aufwändig selbst kompiliert werden. Manche Anbieter stellen zumindest ein Installationsskript bereit. Doch auch hier kann es zu Kompatibilitätsproblemen kommen, wenn eine Distribution benutzt wird, die vom Hersteller des Skripts nicht bedacht worden ist.

In diese Kerbe schlagen die alternativen Paketformate Snap, Flatpak und AppImage. Sie versprechen eine Kompatibilität über Distributionsgrenzen hinweg und verfolgen den Ansatz: Einmal paketieren, überall installieren. So muss sich nicht mehr für jede Distribution ein Maintainer finden, um die Software zu paketieren. Der Anbieter kann dies direkt selbst übernehmen. Doch auch wenn die Ziele der verschiedenen Formate die gleichen sind, gibt es in der Umsetzung Unterschiede.

Simpel, aber mit Einschränkungen: AppImage

AppImage ist die simpelste der neuen Paketformen, dessen Funktionsweise für Windowsnutzer bereits bekannt klingen könnte. Der Anbieter stellt eine Datei z. B. auf seiner Webseite bereit. Um das Programm zu starten, muss diese nur heruntergeladen und ausgeführt werden. In diesem Fall sind das Programm und seine Abhängigkeiten in dem AppImage enthalten

Nachteilig ist, dass sich die Applikation in dieser Form standardmäßig nicht in das System integriert. So ist zum Beispiel ein separates Programm notwendig, damit Einträge im Startmenü angelegt werden. Außerdem gibt es keine Repositories, aus denen AppImages heruntergeladen werden können. Obwohl es einen Mechanismus für Updates gibt, wird dieser nicht von allen Anbietern genutzt. Dennoch stellen AppImages momentan die einfachste Variante dar: Es ist keine Konfiguration notwendig und es werden auch keine besonderen Anforderungen an das System gestellt.

Beispiele für AppImages sind die Notizverwaltung Joplin oder das VoIP/SIP Programm Linphone.

Joplin ist ein Beispiel für AppImages.

Distributionsübergreifender Appstore: Flatpak

Im Gegensatz zu AppImage integriert sich Flatpak stärker in das System und setzt, ähnlich wie die herkömmlichen Paketformate, auf Repositories. Anstatt jedoch für jede Distribution ein eigenes zu betreiben, ist ein Repository mit allen Distributionen kompatibel, die Flatpak integriert haben. Zur Entwicklung von Flatpaks werden bereits einige Laufzeitumgebungen angeboten, auf denen diese aufbauen können. Dadurch ist der Speicherverbrauch im Gegensatz zu AppImage geringer. Jede Laufzeitumgebung enthält bereits häufig benötigte Abhängigkeiten und muss auf jedem System nur einmal vorliegen. Als de facto Standard hat sich das Flathub Repository herausgestellt. Es lassen sich jedoch alternativ eigene betreiben oder die von anderen Anbietern einbinden. Flatpak wird inzwischen von vielen Distributionen unterstützt, muss jedoch meist manuell nachinstalliert werden.

Kleines Manko: Nach der Installation ist kein Repository vorkonfiguriert, sodass der Anwender zuerst Flathub oder ein anderes Repository per Hand hinzufügen muss.

Das Grafikprogramm Gimp, das Chat-Tool Slack oder die Konferenzlösung Zoom werden als Flatpak angeboten.

Das Chat-Tool Slack wird als Flatpak angeboten.

Canonicals Eigenlösung: Snap

Snap ist ähnlich wie Flatpak aufgebaut. Es weist allerdings eine höhere Zentralisierung auf. Denn zum aktuellen Zeitpunkt existiert nur der Snap Store als einzig mögliches Paket-Repository. Entwickelt wird Snap von Canonical, die auch den Snap Store bereitstellen. Positiv ist, dass Snap nach der Installation sofort einsatzbereit ist. Im Gegensatz zu Flatpak muss nicht erst ein Repository hinzugefügt werden. 

Lange Ladezeiten beim ersten Ausführen eines per Snap installierten Programms schmälern das Erlebnis leider etwas. So benötigt die KDE Taschenrechner Applikation „kcalc“ 30 Sekunden, bis sich diese erstmalig öffnet. Obwohl zuerst nur für Ubuntu entwickelt, ist Snap inzwischen auch auf andere Distributionen wie Arch Linux, Fedora und openSUSE portiert worden. Auf einigen Distributionen wird es allerdings voraussichtlich nie unterstützt werden, da Snap bestimmte Anforderungen an das System stellt.

Unter anderem die 3D-Modellierungssoftware Blender oder die Kollaborations- und Datei-Hosting-Plattform Nextcloud lassen sich als Snap installieren.

Die Datei-Hosting-Plattform Nextcloud lässt sich als Snap installieren.

Fazit

Die distributionsübergreifenden Paketformate bieten eine für den Anwender wunderbare Möglichkeit, Software zu installieren, selbst wenn diese nicht von der verwendeten Distribution bereitgestellt wird. Wohingegen Flatpak und Snap florieren, bleibt AppImage bisher eher eine Nische. Ihre Zentralisierung wird den Ersteren dabei zum Vorteil. Beide bieten bereits von konventionellen Paketmanagern bekannte Funktionen wie Repositories und automatische Updates an. Bei Letzterem hingegen muss sich der Anwender um Beschaffung und Update des Paketes selber kümmern. Das Ubuntu-Ökosystem setzt inzwischen stark auf Snap. Meiner Meinung nach wird sich außerhalb davon jedoch Flatpak durchsetzen. Denn im Gegensatz zu Snap ist dieses offen gestaltet, sodass der Anwender sich nicht von Canonical und dessen Betreiben des Snap Stores abhängig macht.

Ähnliche Artikel:

Webentwicklung

Lerne dein Deployment zu lieben − durch Automatisierung

Im Blog hat Martin noch einmal die wichtigsten Erkenntnisse aus seinem T3CON-Talk zum Thema "Infrastructure and Development" zusammengefasst.

Webentwicklung

Elementor vs. Block-Editor im Gutenberg-Projekt

Elementor und der Block-Editor sind beliebte Page Builder. Welcher ist für dich der Richtige? Johannes versucht Licht ins Dunkel zu bringen.

Webentwicklung

Deployment über eine Bitbucket Pipeline

Deine Entwicklungen über eine Bitbucket Pipeline zu deployen beugt vielen Problemen vor. Wie du die Pipeline einrichtest, erklärt dir Markus.

Node.js multithreaded
Webentwicklung

High Computational Load Performance mit Node.JS Multithreading optimieren

Node.JS läuft nur single threaded? Falsch! Wir erklären dir Node.JS Multithreading anhand eines Beispiels aus der Praxis.

Webentwicklung

WordPress 6.3 – Die neuen Features

WordPress 6.3 geht an den Start! Was es kann und wo es euch Arbeit abnimmt, hat Lukas sich angeschaut. Seine Favourites stellt er hier vor.

Kommentar hinzufügen