Zum Inhalt springen

Flatpak

Aus wiki.archlinux.de

Flatpak ist eine distributionsübergreifende Möglichkeit, Programme inklusive ihrer Abhängigkeiten in Form containerartiger Softwarepakete zu installieren.

Installation

Das Programm ist als flatpak in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S flatpak

Die Verwaltung der Softwarepakete findet dann mittels diverser Parameter des Befehls flatpak statt.

Paketverwaltung mit Flatpak

Flatpak bezieht installierbare Software aus Quellen die man vor Verwendung dem System mitteilen muss. In welcher Quellen sich ein Softwarepaket befindet, erfährt man beim Anbieter des Softwarepakets. Mittels des folgenden Befehls wird die Quelle unter der angegebenen ID hinzugefügt.

flatpak remote-add --if-not-exists meinrepo https://example.com/flatpak

Eine weit verbreitete Quelle ist „Flathub“-Repository, dies wird wie folgt hinzugefügt.

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Eine Auflistung der installierten Quellen erhält man durch den Befehl

flatpak remote-list

Mittels remote-ls wird die in einer Quelle (hier flathub) verfügbare Software aufgelistet.

flatpak remote-ls flathub

Um Softwarepakete unabhängig ihres Namens zu finden, kann man sich folgenden Befehls bedienen. Die Suchfunktion berücksichtigt auch die Beschreibung der jeweiligen Pakete.

flatpak search softwarename

Um ein Softwarepaket zu installieren, gibt man Quelle und Software-ID an. Im Beispiel wird FreeCAD als Flatpak installiert. Mittels --user wird explizit angegeben, die Software im Userkontext zu installieren. Will man die Software für alle User zugänglich machen, kann man hier --system verwenden.

flatpak --user install flathub org.freecad.FreeCAD

Um ein installiertes Programm – beispielsweise FreeCAD – zu starten, ruft man wahlweise flatpak mit entsprechenden Parametern auf, oder gibt die ID direkt an. Flatpak richtet automatisch entsprechende Verlinkungen ein.

flatpak run org.freecad.FreeCAD
org.freecad.FreeCAD

Ein Update aller installierten Flatpak-Anwendungen geschieht durch flatpak update. Da Flatpak teilweise ungenutzte Pakete die als Abhängigkeit installiert werden mussten nicht automatisch entfernt, sollte man nach einem Update einmal folgenden Befehl ausführen, damit eventuell vorhandene ungenutzte Abhängigkeiten entfernt werden.

flatpak update
flatpak uninstall --unused

Folgende Befehle können zum Auflisten der installierten Softwarepakete verwendet werden. Die Aufrufe können mittels --user, --system, und --all spezifiziert werden.

flatpak list        # Alle Pakete, inklusive Librarys und Abhängigkeiten
flatpak list --app  # Nur gezielt installierte Anwendungen

Unter Gnome kann man Flatpak-Anwendungen nach der Installation einer Quelle auch mit der GUI-Anwendung „Software“ verwalten. Als KDE-Pedant eignet sich hierfür „Discover“.

Betrachtung des Systems

Traditionell werden die einzelne Pakete von Maintainern der jeweiligen Distribution gewartet, angepasst und kompiliert über die Repositorien dem Benutzer zur Verfügung gestellt. Die Paketabhängigkeiten werden von einer Paketverwaltung gemanagt, sodass jede Ressource im System nur einmal vorgehalten und gepflegt werden muss.

Flatpak liefert die Programme inklusive der abhängigen Pakete in einem Bundle aus, oder hat Abhängigkeiten zu anderer Flatpak-Software. Vorteile ergeben sich hierbei in einer distributionsübergreifenden Standardisierung. Dies erleichtert Anbietern der Programme den Support in einer heterogenen Linuxlandschaft. Zudem erleichtert es bei größeren Installationen den Admins das Ausrollen der Anwendungssoftware.

Die Nachteile ergeben sich durch die Umgehung der Maintainer als wichtige Kontrollinstanz, sowie der Gefahr, dass so ungewartete Paketversionen verwendet werden. Dieser Gefahr wird durch die Kapselung in einer Sandbox und der Begrenzung des Zugriffs auf Systemressourcen begegnet.

Alternativen zu Flatpak sind AppImage und das von Canonical geschaffene Snap-System.