Appimage, Flatpak, Snap: Innovative Linux-Paketverwaltungen

Aus LinuxUser 11/2022

Appimage, Flatpak, Snap: Innovative Linux-Paketverwaltungen

© Vasin Leenanuruksa / 123RF.com

Paketdienst

Die herkömmlichen Paketverwaltungen unter Linux sind inzwischen etwas in die Jahre gekommen, doch mit Appimage, Flatpak und Snap stehen schon interessante neue Verwaltungssysteme bereit.

Mit dem beginnenden Siegeszug von Linux in den 1990er-Jahren tauchten auch innovative Konzepte für die Softwareverwaltung auf. Bereits ab 1994 wurde der Debian Package Manager Dpkg eingeführt, ab 1997 zog der Red Hat Package Manager RPM nach. Inzwischen erblickten zahlreiche weitere Paketverwaltungssysteme für verschiedenste Distributionen das Licht der Welt.

Alle haben gemeinsam, dass sie nicht nur zentrale Software-Repositories mit Anwendungen vorhalten, sondern auch das weitgehend reibungslose Installieren, Aktualisieren und Deinstallieren von Applikationen ermöglichen. Dabei sind alle gängigen Vertreter in der Lage, mit Abhängigkeiten und Konflikten umzugehen und das jeweilige System in einem konsistenten Zustand zu halten. Einzelne Installationsroutinen für die jeweilige Anwendung mit einem Durcheinander an unterschiedlichen Dialogen, unter anderen Betriebssystemen gang und gäbe, existieren daher unter Linux nicht.

Dabei arbeiten die bekannten Tools flexibel genug, jenseits der von den Distributionsentwicklern bereitgestellten Repositories zusätzliche Softwarearchive mit einzubeziehen, und bieten dann ebenfalls die Vorteile des zentralisierten Paketmanagements. Die integrierten Paketverwaltungen in den herkömmlichen Linux-Distributionen arbeiten auf der Kommandozeile. Allerdings kamen daneben für weniger versierte Anwender recht schnell grafische Frontends wie YaST oder Synaptic auf, mit deren Hilfe sich die komplette Softwareverwaltung bequem per Mausklick erledigen lässt.

Die altgedienten Paketverwaltungswerkzeuge bringen jedoch einige Nachteile mit sich. Je nach Update-Zyklus des zugrunde liegenden Betriebssystems weisen sie gelegentlich veraltete Softwareversionen inklusive teils veralteter Oberflächen auf. Das größte Problem besteht darin, dass die einzelnen in den unterschiedlichen Formaten vorliegenden Binärpakete nicht untereinander kompatibel sind. In begrenztem Umfang lassen sich zwar mithilfe des Werkzeugs Alien [1] DEB- und RPM-Pakete in das jeweils andere Format konvertieren, eine generelle Kompatibilität erreichen Sie damit aber nicht.

Um dieses Manko zu umgehen und weitere Neuerungen einzuführen, haben sich in den letzten Jahren unter Linux distributionsübergreifend nutzbare Paketformate entwickelt, die sich jeweils mit eigenen Verwaltungssystemen in bestehende Linux-Installationen integrieren lassen.

Appimage

Das Paketsystem Appimage [2] enthält distributionsübergreifend einsetzbare Anwendungspakete. Darin finden sich stets alle benötigten Programmbibliotheken. Hinter den Paketen stecken komprimierte Laufwerksabbilder, die mit dem SquashFS-Dateisystem arbeiten und im Verzeichnis /tmp liegen. Sobald Sie das Anwendungsprogramm beenden, wird der Einhängepunkt wieder gelöst.

Nach dem Herunterladen eines Appimage-Pakets müssen Sie ihm mithilfe des Befehls chmod +x Paket Ausführungsrechte zuweisen, um es ohne Root-Rechte auszuführen. Da keine Installation in das bestehende Betriebssystem stattfindet, stellt es beispielsweise kein Problem dar, zwei oder mehrere unterschiedliche Versionen desselben Programms simultan laufen zu lassen. Zusätzlich können Sie bei Bedarf dasselbe Programm alternativ – sofern vorhanden – aus den Repositories installieren und ausführen.

Appimage-Pakete fügen sich häufig schlecht in die bestehende Arbeitsumgebung ein und bedürfen deswegen dazu einiger manueller Arbeiten. Nur wenige fragen beim ersten Aufruf, ob die Anwendung in die vorhandene Menüstruktur eingebunden werden soll. Darüber hinaus sehen Appimage-Pakete keine automatisierten Updates vor, und herkömmliche Routinen zum Aktualisieren von Anwendungsprogrammen und Bibliotheken greifen entsprechend nicht.

Es gilt zu beachten, dass Appimage-Pakete mit den Rechten desjenigen Benutzers laufen, der sie gestartet hat. Es existieren also dieselben Zugriffsrechte im System wie bei fest installierten Applikationen, was unter Umständen ein Sicherheitsproblem hervorruft. Deswegen sollten Sie die Pakete nur aus vertrauenswürdigen Quellen beziehen und Appimage-Pakete keinesfalls mit Root-Rechten starten. Um Appimage-Anwendungen besser in ein bestehendes Linux-System zu integrieren, gibt es inzwischen zahlreiche grafische Werkzeuge.

AppImageLauncher

Einer der wichtigsten Vertreter dafür ist AppImageLauncher [3]. Die Software integriert die Appimage-Pakete in die Menüstruktur der jeweiligen Arbeitsumgebung und stößt zusätzlich – sofern das jeweilige Appimage-Paket das unterstützt – ein Update der Anwendung an. Das Tool gliedert sich selbst in das grafische Menü der verwendeten Distribution ein und zeigt beim ersten Start einen Einrichtungsdialog, in dem Sie die grundsätzlichen Einstellungen vornehmen, wie den Suchpfad zu den Appimages und die Update-Funktion (Abbildung 1).

Abbildung 1: Das Einstellungsmenü von AppImageLauncher fällt spartanisch aus.

Abbildung 1: Das Einstellungsmenü von AppImageLauncher fällt spartanisch aus.

Anschließend können Sie Appimage-Pakete aus dem Dateimanager heraus öffnen, ohne ihnen zuvor Ausführungsrechte geben zu müssen. Zudem lassen sich die Appimage-Programme direkt aus der Menühierarchie der Arbeitsumgebung heraus starten, da AppImageLauncher die automatische Integration der Appimage-Pakete standardmäßig aktiviert. Setzen Sie bei neu heruntergeladenen Appimage-Paketen die Ausführungsrechte manuell und rufen diese Pakete danach am Prompt auf, öffnet AppImageLauncher automatisch einen Dialog, mit dem Sie das Paket per Mausklick in die Menühierarchie einbinden (Abbildung 2).

Abbildung 2: AppImageLauncher meldet sich automatisch, um ein Appimage besser in den Desktop zu integrieren.

Abbildung 2: AppImageLauncher meldet sich automatisch, um ein Appimage besser in den Desktop zu integrieren.

AppImageUpdate

Ein weiteres grafisches Werkzeug ist AppImageUpdate [4], das Sie nach dem Herunterladen und dem Vergeben von Ausführungsrechten manuell aufrufen. Anschließend wählen Sie anhand eines kleinen Dateimanagers die zu aktualisierenden Appimage-Pakete aus (Abbildung 3). Doch Vorsicht: Das Tool kann die gewünschten Pakete nur dann aktualisieren, wenn die Entwickler des jeweiligen Pakets das automatisierte Update in ihre Software eingepflegt haben.

Abbildung 3: Mit AppImageUpdate aktualisieren Sie Ihre Appimage-Pakete automatisch.

Abbildung 3: Mit AppImageUpdate aktualisieren Sie Ihre Appimage-Pakete automatisch.

Bei allen anderen Appimage-Paketen beendet sich AppImageUpdate mit einer Fehlermeldung. Bei einer erfolgreichen Aktualisierung blendet das Programm in einem gesonderten Fenster einen Fortschrittsbalken ein. Bei Bedarf liefert ein Klick auf Details nähere Informationen zum Update (Abbildung 4).

Abbildung 4: Das erfolgreich beendete Update meldet AppImageUpdate in einem eigenen Fenster.

Abbildung 4: Das erfolgreich beendete Update meldet AppImageUpdate in einem eigenen Fenster.

Flatpak

Das Paketverwaltungsformat Flatpak [5] bietet eine Laufzeitbasis für Desktop-Applikationen in abgeschirmten Umgebungen (Sandbox). Die Laufzeitumgebung enthält bereits alle nötigen Bibliotheken und Abhängigkeiten. Flatpak-Pakete, die exotische Abhängigkeiten aufweisen, müssen diese mit eingepflegt haben, um in der Runtime ablaufen zu können. Dieses Konzept führt zwangsläufig zu erheblichen Redundanzen vor allem bei Bibliotheken, sodass Flatpak-Pakete erheblich mehr Speicherplatz mit Beschlag belegen als herkömmliche Anwendungen.

Für Flatpak-Pakete gibt es mit Flathub (Abbildung 5) eine von Distributionen unabhängige Plattform zum Verteilen der Pakete. Linux-Distributionen können jedoch auch eigene Repositories mit Flatpaks betreiben. Viele Distributionen unterstützen dieses Format bereits und liefern die entsprechende Laufzeitumgebung in der Grundinstallation bereits mit. In diesem Fall können Sie Flatpak-Pakete direkt über das Flathub-Repository [6] in das Betriebssystem integrieren.

Abbildung 5: Mit Flathub steht ein zentrales Repository für Flatpaks bereit.

Abbildung 5: Mit Flathub steht ein zentrales Repository für Flatpaks bereit.

Dazu nutzen Sie den auf der Flathub-Seite vorhandenen Schalter Install. Anschließend müssen Sie das eigentliche Programm noch über die distributionseigene Anwendungsverwaltung installieren. Dabei zeigt das Programm Details zum ausgewählten Flatpak an (Abbildung 6). Entsprechend sehen Sie vor dem Installieren eines neuen Flatpaks nicht nur dessen Größe, sondern auch den tatsächlichen Platzbedarf auf dem Massenspeicher.

Abbildung 6: Bei der Installation eines Flatpaks werden zahlreiche Details angezeigt.

Abbildung 6: Bei der Installation eines Flatpaks werden zahlreiche Details angezeigt.

Danach können Sie die Applikation direkt aus der Anwendungsverwaltung heraus starten. Über das grafische Applikationsmanagement des verwendeten Linux-Derivats löschen Sie mithilfe der jeweiligen Deinstallationsroutine Flatpaks aus dem System. Aktualisierungen stoßen Sie am Prompt an, wobei Sie mithilfe des Befehls sudo flatpak update alle im System vorhandenen Flatpaks in nur einem Schritt auf den neuesten Stand bringen.

Da Flatpak-Pakete in einer Sandbox laufen, müssen Sie bei Bedarf zusätzliche Rechte für die Nutzung von Systemkomponenten gewähren. Dazu dient das Tool Flatseal [7], das sich seinerseits als Flatpak in das System eingliedert. Flatseal ermöglicht eine bequeme Rechteverwaltung, die applikationsspezifisch per Schieberegler das Zugreifen auf diverse Komponenten erlaubt (Abbildung 7).

Abbildung 7: Mit Flatseal passen Sie die Zugriffsrechte der Flatpak-Anwendungen an.

Abbildung 7: Mit Flatseal passen Sie die Zugriffsrechte der Flatpak-Anwendungen an.

Snap

Das primär von Canonical entwickelte Snap [8] ähnelt Flatpak, gestattet Ihnen allerdings, Anwendungen über ein zentral von Canonical verwaltetes Repository zu beziehen. Snap-Pakete – sogenannte Snaps – werden ebenfalls in einer Sandbox ausgeführt und bedürfen der zuvor installierten Laufzeitumgebung. Sie lassen sich in jeder Linux-Distribution einsetzen, die das Paketformat von Canonical unterstützt.

Dabei bringt Snap wie Flatpak den Vorteil mit, dass Sie die einzelnen Anwendungen in zwei oder mehreren unterschiedlichen Programmversionen simultan auf einem Computersystem verwenden können. Doch auch Snaps bergen den Nachteil, dass der Speicherverbrauch auf den Massenspeichern wegen vieler redundant gehaltener Abhängigkeiten und Bibliotheken sehr groß ausfällt. Teilweise macht sich diese Redundanz in längeren Ladezeiten beim Start einer Snap-Anwendung bemerkbar. Wie Flatpaks statten Sie Snaps gezielt mit Rechten aus, beispielsweise für den Zugriff auf bestimmte Verzeichnisse.

Snap-Pakete erhalten Sie über die Webseite Snapcraft.io und installieren sie mithilfe des Befehls sudo snap install Paket [9]. Alternativ nutzen Sie je nach verwendeter Distribution Appstores zum Installieren und Verwalten. Außerdem steht in zahlreichen Distributionen ein eigener Snap Store als grafisches Frontend zur Verfügung. Die Laufzeitumgebung ist bei Ubuntu-Varianten ab Ubuntu 18.04 “Bionic Beaver” und einigen weiteren Distributionen bereits vorinstalliert, lässt sich aber auf vielen anderen Distributionen problemlos nachträglich integrieren. Der Snap Store, der auf dem GTK-Toolkit basiert, enthält ausschließlich Snaps [10]. Neue Pakete fügen Sie über die Schaltfläche Installieren hinzu (Abbildung 8).

Abbildung 8: Der Snap Store gestattet eine unkomplizierte Verwaltung der Snaps.

Abbildung 8: Der Snap Store gestattet eine unkomplizierte Verwaltung der Snaps.

An Snap-Pakete lassen sich einzeln Rechte vergeben, indem Sie oben rechts im Programmfenster auf Permissions klicken. Im sich öffnenden Fenster stellen Sie zahlreiche Berechtigungen einfach per Schieberegler ein. Beispielsweise können Sie der Anwendung so erlauben, auf Hardwarekomponenten zuzugreifen (Abbildung 9).

Abbildung 9: Bei Snap-Anwendungen können Sie die Zugriffsrechte bequem grafisch einstellen.

Abbildung 9: Bei Snap-Anwendungen können Sie die Zugriffsrechte bequem grafisch einstellen.

Durch einen Klick auf das Papierkorbsymbol im primären Fenster des Snap Stores entfernen Sie die jeweilige Applikation. Dabei verschwinden darüber hinaus die bei der Installation automatisch generierten zugehörigen Menüeinträge. Aktualisierungen der Snaps nehmen Sie auf der Kommandozeile vor. Das entsprechende Kommando für die Aktualisierung aller im System vorhandenen Snap-Pakete lautet sudo snap refresh, während eine Namensangabe nach diesem Befehl nur das jeweils benannte Paket aktualisiert.

Fazit

Mit Appimage, Flatpak und Snap stehen drei innovative, distributionsübergreifend arbeitende Paketverwaltungssysteme zur Wahl. Sie lassen sich wesentlich flexibler einsetzen als die herkömmlichen Paketverwaltungen.

Flatpaks und Snaps bringen zudem den Vorteil mit, dass sie in abgeschotteten Umgebungen laufen und sich leicht aktualisieren lassen. Das erkauft man jedoch mit dem Nachteil eines großen Massenspeicherverbrauchs aufgrund der redundant vorgehaltenen Komponenten und der benötigten Laufzeitumgebung.

Appimages dagegen müssen nur Ausführungsrechte erhalten und lassen sich dann sofort verwenden. Sie kennen jedoch keine Sicherheitsmechanismen, weswegen Sie Appimage-Pakete nur aus absolut vertrauenswürdigen Quellen beziehen sollten. Welches der neuen Paketformate Sie im Einzelfall bevorzugen, hängt letzten Endes ganz von Ihren persönlichen Prioritäten ab. (csi)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 11/2022 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben