Flatpak

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Ein Terminal öffnen

  3. mit Root-Rechten arbeiten

Inhaltsverzeichnis
  1. Installation
    1. aus den Paketquellen
    2. über ein PPA
  2. Benutzung
    1. Flatpaks systemweit installieren
    2. Lokale Installation
    3. Liste installierter Programme
    4. Update
    5. Deinstallation
    6. Starten
    7. Weiteres
  3. Bekannte Probleme
    1. Über Flatpak installierte Anwendungen kö...
      1. Berechtigungen für Ordner hinzufügen
      2. Erteilte Berechtigungen anzeigen
      3. Erteilte Berechtigungen entfernen
  4. Differenzierung zu anderen Technologien
    1. Unterschiede zu Snap
    2. Unterschiede zu AppImage
  5. Links

flatpak-logo.png Flatpak ist eine Alternative zu dem von Canonical entwickelten snap Apps.

Ziel ist ebenfalls Programme konfliktfrei zur "normalen" Paketverwaltung zu installieren, indem alle benötigten Binaries, Bibliotheken, Konfigurationsdateien und sonstige Dateien in ein Verzeichnis (normalerweise Unterverzeichnis von /var/lib/flatpak/app/) gelegt werden. Eine Flatpak-Applikation ist somit ohne weiteren Anpassungen in der Regel auf sämtlichen Linux-Distributionen mit installiertem Flatpak lauffähig.

Zum Grundkonzept 🇬🇧 von Flatpak gehört, dass jede Applikation eine Laufzeitumgebung ("Runtime" im Flatpak-Kontext) benötigt. Eine Liste der Flatpak-Laufzeitumgebungen ist in der Dokumentation 🇬🇧 zu finden. So gibt es z.B. Laufzeitumgebungen für Gnome und KDE, die natürlich entsprechend groß sind. Mehrere Flatpak-Applikationen können sich die selbe Laufzeitumgebung teilen, so fern die Applikationen die gleiche Version der Umgebung nutzen. Fehlt eine Laufzeitumgebung, wird diese automatisch mit installiert. Es können auch mehrere Laufzeitumgebungen in verschiedenen Version parallel installiert sein.

Installation

aus den Paketquellen

Flatpak ist seit Ubuntu 16.10 in den offiziellen Paketquellen enthalten[1]:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install flatpak 

sudo aptitude install flatpak 

über ein PPA

Wer die aktuellste Version von Flatpak nutzen möchte oder Ubuntu 16.04 einsetzt muss das Programm über ein PPA installieren:

Adresszeile zum Hinzufügen des PPAs:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams alexlarsson zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Danach kann das Programm flatpak installiert werden.

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install flatpak 

sudo aptitude install flatpak 

Benutzung

Eine Liste zur Zeit verfügbarer Flatpaks findet man im Internet unter https://flathub.org/apps.html 🇬🇧.

Flatpaks systemweit installieren

Um die Installation zu vereinfachen, werden alle für die Installation notwendigen Informationen in eine .flatpakref-Datei geschrieben. Installation über eine solche Datei erfolgt mit folgendem Befehl[2][3]:

sudo flatpak install --from FLATPAKREF 

Hierbei kann FLATPAKREF eine lokale Datei oder eine URL sein. --from kann außerdem entfallen, wenn FLATPAKREF auf .flatpakref endet.

Möchte man z.B. LibreOffice installieren, führt man folgenden Befehl aus:

sudo flatpak install --from http://download.documentfoundation.org/libreoffice/flatpak/LibreOffice.flatpakref 

Oder man lädt sich die Datei LibreOffice.flatpakref ⮷ lokal herunter und anschließend (angenommen die Datei liegt im Download-Ordner):

sudo flatpak install --from $HOME/Downloads/LibreOffice.flatpakref 

Die Datei LibreOffice.flatpakref kann danach gelöscht werden.

Lokale Installation

Flatpak bietet außerdem die Möglichkeit, Programme "lokal" für nur einen Nutzer zu installieren. Dies hat den Vorteil, dass keine erhöhten Rechte (sudo) notwendig sind. Andererseits sind so installierte Programme auch nur für den Nutzer verfügbar, der sie installiert hat.

Um ein Programm lokal zu installieren, muss einfach nur --user während der Installation angegeben werden. LibreOffice lokal zu installieren sieht dann z.B. so aus:

flatpak install --user --from http://ftp.fau.de/tdf/libreoffice/flatpak/LibreOffice.flatpakref 

Wichtig ist hier, tatsächlich kein sudo zu verwenden!

Liste installierter Programme

flatpak list 

Zu beachten ist, dass wenn im Folgenden von "Paket" die Rede ist, nicht einfach der Programmname gemeint ist, sondern tatsächlich der Name, der bei diesem Befehl angezeigt wird. So ist der Paketname von LibreOffice (auf 64-bit Systemen) org.libreoffice.LibreOffice/x86_64/fresh oder einfach nur org.libreoffice.LibreOffice, da alles nach dem / weggelassen werden kann.

Update

sudo flatpak update [PAKET] 

Oder lokal:

flatpak update --user [PAKET] 

Ohne Angabe von PAKET, wird ein Update aller installierten Programme versucht.

Deinstallation

sudo flatpak uninstall PAKET 

Oder lokal:

flatpak uninstall --user PAKET 

Starten

Gängige Desktop-Umgebungen sollten auch über Flatpak installierte Anwendungen automatisch erkennen und wie klassisch installierte Anwendungen anzeigen.

Von Kommandozeile können Flatpak-Anwendungen bei Bedarf so gestartet werden:

flatpak run PAKET 

Weiteres

Für weitere Möglichkeiten empfiehlt sich ein genauer Blick auf die man-Page oder die offizielle Dokumentationen auf der Flatpak-Homepage 🇬🇧.

Bekannte Probleme

Über Flatpak installierte Anwendungen können nur auf bestimmte Ordner zugreifen

Dies ist tatsächlich kein Bug, sondern ein (Sicherheits-) Feature.

Flatpak-Anwendungen laufen in einer sogenannten Sandbox und haben so nur Zugriff auf Ressourcen, die die jeweiligen Anwendungen unbedingt brauchen. So hat z.B. ein Browser wie Firefox als Flatpak nur Zugriff auf die persönlichen Ordner - und kann somit auch nicht z.B. auf einer eingehängten Datenpartition Daten löschen oder verschlüsseln.

Berechtigungen für Ordner hinzufügen

Hinweis:

Im Folgenden werden lediglich Berechtigungen für die Flatpak-Anwendung an sich erteilt. Der ausführende Benutzer muss darüber hinaus ebenfalls die enstprechenden Zugriffsrechte für diesen Ordner besitzen, siehe auch chmod.

Möchte man Dateien in einem anderen Ordner lesen oder speichern, kann man mit folgendem Befehl Berechtigungen hinzufügen:

sudo flatpak override --filesystem=/beliebiger/pfad name.des.programms 

Folgende Berechtigungen können gesetzt werden:

  • :ro - nur Leserechte

  • :rw - Schreib- und Leserechte (dies ist die Standardoption)

  • :create - Schreib- und Leserechte, erstellt Ordner, falls dieser nicht vorhanden ist

Beispiel:

sudo flatpak override --filesystem=/media/Daten:create org.mozilla.FirefoxNightly 
  • Folgende Pfade stehen auf der Blacklist und können nicht verwendet werden: /lib, /lib32, /lib64, /bin, /sbin, /usr, /boot, /root, /tmp, /etc, /app, /run, /proc, /sys, /dev, /var

  • Ausnahme von Blacklist : /run/media

Erteilte Berechtigungen anzeigen

Eigens erteilte Berechtigungen kann man sich mit diesem Befehl anzeigen lassen:

flatpak override --show name.des.programms 

Erteilte Berechtigungen entfernen

Mit folgendem Befehl werden alle eigenen Berechtigungen einer Flatpak-Anwendung wieder entfernt:

sudo flatpak override --reset name.des.programms 

Differenzierung zu anderen Technologien

Unterschiede zu Snap

Unterschiede zu AppImage

An dieser Stelle soll außerdem auf AppImage verwiesen werden. AppImage ist ein Paketformat, das es schon Jahre vor Flatpak oder Snap gab (seit 2004 als klik) und dessen Ziel ebenfalls das Linux-distributionsunabhängige Ausliefern von Programmen ist. Auch wenn sich der Grundgedanke ähnlich anhört, gibt es etliche Unterschiede zu Flatpak (und auch zu Snap):