AA_ofnefrisch_seen0001_123rf_41507625.jpg

© Seen0001, 123RF

Die innovativen Paketformate Flatpak und Snap

Frisch gebacken

Flatpaks und Snaps – was wie neue Knusperriegel klingt, schickt sich an, die Installation von Software zu revolutionieren.

Formate zum Packen von Software sind so alt wie Software selbst. Die heute gebräuchlichsten Formate DEB aus der Debian-Welt und RPM aus dem Red-Hat-Lager teilen die Linux-Welt größtenteils unter sich auf.

Dabei verteilen sich die einzelnen Bestandteile des Pakets – Binaries, Bibliotheken, Konfiguration und Dokumentation – bei der Installation über die gesamte Verzeichnisstruktur. Wo genau, das regelt der Filesystem Hierarchy Standard FHS [1]. Dessen Struktur entstand nicht immer gewollt, sondern ist teils der Ressourcenknappheit in den frühen Jahren der Entwicklung von Unix [2] geschuldet.

Dass man Software auch anders einrichten kann, beweisen seit Langem Betriebssysteme wie Gobo Linux, NixOS oder NeXTStep. Sie verfolgen den Ansatz, eine Applikation mitsamt aller Abhängigkeiten zu packen und als Ganzes zu verwalten. Dieses Prinzips bedienen sich ebenfalls die neuen Formate, deren Vor- und Nachteile sich in der Praxis erschließen.

Ein entscheidender Nachteil der aktuellen Formatvielfalt liegt im hohen Aufwand für Entwickler und Paketbetreuer, wenn diese eine Software für verschiedene Distributionen und deren unterschiedlich aktuellen Zweige paketieren und pflegen.

Linus Torvalds erklärte in einer Fragestunde auf einer Debian-Konferenz 2014 [3], warum es eine von ihm programmierte Software für sein Hobby Tauchen zwar für Windows und Mac OS X gibt, aber nicht für Linux: Keine der großen Distributionen habe die Bestandteile jemals zufriedenstellend gepackt. Torvalds betrachtet die Paketierungsmisere denn auch als einen der wesentlichen Gründe für den ausbleibenden Erfolg von Linux auf dem Desktop.

In etwa zeitgleich zur Fragestunde mit Torvalds veröffentlichte Systemd-Mastermind Lennart Poettering seine Gedanken dazu, wie wir künftig Distributionen bauen und Software installieren sollten. Darin klingt bereits einiges an, was derzeit besonders in Flatpak oder Snappy einfließt [4].

Von XDG-App zu Flatpak

Die vom Gnome-Projekt und von Fedora initiierten XDG-Apps, mittlerweile in Flatpak umbenannt, begegnen dem Problem, das Torvalds sowie viele Entwickler und Unternehmen mit dem Paketieren von Software haben. Das neue Format fasst Anwendungen inklusive fast aller Abhängigkeiten, Bibliotheken und anderer Bestandteile zusammen (Abbildung 1).

Abbildung 1: Krita lässt sich problemlos als Snap in Ubuntu 16.04 installieren.

Um diese Art von Paketen zu installieren und zu nutzen, bedarf es lediglich einer entsprechenden Laufzeitumgebung (Abbildung 2). Auf welcher Distribution unter welchem Desktop diese läuft, spielt dann kaum eine Rolle. Ähnliches gilt für die Tatsache, dass eventuell das gleiche Paket in derselben oder einer anderen Version bereits auf dem System installiert ist.

Abbildung 2: Die Runtime für GNOME 3.20 wird benötigt.

Hier spielt der Neuling einen weiteren Vorteil aus: Alle Apps laufen gegeneinander und das System isoliert in einer Sandbox. Wer sich jetzt an Container erinnert fühlt, liegt nicht so falsch – das Prinzip ist das gleiche. Zudem kommt die Container-Software LXC zum Einsatz, sodass man Flatpaks mit einigem Recht als Desktop-Container bezeichnen kann. So erstaunt es nicht weiter, dass die Entwickler die Spezifikation kompatibel zum Standard der Open-Container-Initiative halten wollen.

Der Name für das Format stammt aus der schwedischen Heimat des Entwicklers Alexander Larsson. Er lehnt sich an die Art an, wie das Unternehmen Ikea seine Produkte in flachen Paketen verpackt. Larsson arbeitet sowohl beim Gnome-Projekt für den Desktop als auch bei Red Hat an Container-Technologien. Er setzt für das Paketformat auf Technologien aus dem Kernel, wie etwa Cgroups, Namespaces, Bind Mounts. Hinzu kommen Seccomp und OSTree [5] aus Red Hats Atomic-Projekt sowie das OCI-Format der Open Container Initiative. Der Einsatz der Linux-spezifischen Techniken bindet das Format, aber auch Snaps an diese Plattform.

Neu entwickelte Techniken wie Bubblewrap [6] finden ihren Weg von Flatpak in das Project Atomic. Bubblewrap erlaubt im Zusammenspiel mit Flatpaks dem normalen Anwender, isolierte Anwendungen zu installieren und zu verwenden, ohne dass diese Zugriff auf das System oder das Home-Verzeichnis erlangen oder Privilegien eskalieren könnten.

Nicht statisch gelinkt

Einen entscheidenden Unterschied gibt es jedoch zu Containern aus der Server-Welt: Systeme wie Docker linken statisch und binden in jedem Container die Laufzeitumgebung mit ein. Flatpaks hingegen bringen eine Abhängigkeit zur Laufzeitumgebung mit, die wiederum den Zugriff auf die grundlegenden Bibliotheken des Systems gewährt.

Der Vorteil liegt darin, dass ein Flatpak theoretisch unbegrenzt lange lauffähig bleibt, selbst wenn sich das Basissystem oder die Anforderungen an die Hardware ändern. Eine Applikation darf allerdings jeweils nur von einer Laufzeitumgebung abhängen. Um hier etwas mehr Flexibilität zu erlauben, arbeitet einer der Entwickler daran, die Laufzeitumgebung in Module aufzuteilen.

Ein genereller Vorteil von diesem und ähnlichen Formaten für Software liegt im verkürzten Weg vom Entwickler zum Anwender: Der Benutzer muss nicht seine gesamte Distribution aktualisieren, um die passenden Abhängigkeiten für eine aktuelle Software zu erhalten. So kann er etwa bei einer Ubuntu-LTS-Version bleiben, aber trotzdem die neueste Software ausprobieren.

Ein Nachteil, der aber in der heutigen Zeit dank niedriger Preise für Festplatten nicht mehr so ins Gewicht fällt, liegt im Bedarf an Plattenplatz, da jedes Flatpak oder Snap einen Teil seiner Bibliotheken und weitere Abhängigkeiten mitbringt. Beim Einsatz von vielen Paketen in diesen Formaten bläht sich das System entsprechend auf.

Flatpak steckt noch mitten in der Entwicklung und ist daher noch kaum bekannt, geschweige denn verbreitet. In Fedora 24 können aber der Paketmanager Gnome Software sowie die IDE Gnome Builder bereits mit dem neuen Format umgehen.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 0 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...
Tinte sparen bei neuem Drucker
Lars Schmitt, 30.11.2017 17:43, 2 Antworten
Hi Leute, ich habe mir Anfang diesen Monats einen Tintenstrahldrucker angeschafft, der auch su...
Für Linux programmieren
Alexander Kramer, 25.11.2017 08:47, 3 Antworten
Ich habe einen Zufallsgenerator entworfen und bereits in c++ programmiert. Ich möchte den Zufalls...