[[Vorlage(Getestet, xenial)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(3)]] [[Bild(flatpak-logo.png, 80, left)]] 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 [http://docs.flatpak.org/en/latest/basic-concepts.html Grundkonzept] {en} von Flatpak gehört, dass jede Applikation eine Laufzeitumgebung ("Runtime" im Flatpak-Kontext) benötigt. Eine Liste der Flatpak-Laufzeitumgebungen ist in der [http://docs.flatpak.org/en/latest/available-runtimes.html Dokumentation] {en} 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 = Flatpak ist seit Ubuntu 16.10 in den offiziellen Paketquellen, ist aber laut [https://flatpak.org/getting.html Projektwebsite] veraltet. Deswegen wird die Installation über ein PPA empfohlen. [[Vorlage(PPA, alexlarsson, flatpak)]] Danach kann das Programm flatpak installiert werden. {{{#!vorlage Paketinstallation flatpak, ppa }}} = Benutzung = Eine Liste zur Zeit verfügbarer Flatpaks findet man im Internet unter [http://flatpak.org/apps.html] {en} oder [https://flathub.org/apps.html] {en}. == 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]: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo flatpak install --from http://download.documentfoundation.org/libreoffice/flatpak/LibreOffice.flatpakref }}} Oder man lädt sich die Datei [http://download.documentfoundation.org/libreoffice/flatpak/LibreOffice.flatpakref LibreOffice.flatpakref] {dl} lokal herunter und anschließend (angenommen die Datei liegt im Download-Ordner): {{{#!vorlage Befehl 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: {{{#!vorlage Befehl 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 == {{{#!vorlage Befehl 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 == {{{#!vorlage Befehl sudo flatpak update [PAKET] }}} Oder lokal: {{{#!vorlage Befehl flatpak update --user [PAKET] }}} Ohne Angabe von `PAKET`, wird ein Update aller installierten Programme versucht. == Deinstallation == {{{#!vorlage Befehl sudo flatpak uninstall PAKET }}} Oder lokal: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl flatpak run PAKET }}} == Weiteres == Für weitere Möglichkeiten empfiehlt sich ein genauer Blick auf die [:man:]-Page oder die offizielle Dokumentationen auf der [http://flatpak.org/command-line.html Flatpak-Homepage] {en}. = 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 [wikipedia:Sandbox: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 den Download-Ordner - und kann somit auch nicht z.B. persönliche Dokumente im Dokumente-Ordner löschen oder verschlüsseln. Keine gute Idee ist es, in nicht für Flatpak freigegebene Ordner zu schreiben - also z.B. in dem Firefox-Flatpak selber einen Ordner '''Dokumente''' zu erstellen - da dies einen Neustart des Programms nicht übersteht. = Differenzierung zu anderen Technologien = == Unterschiede zu Snap == * [:snap:Snap] wird hauptsächlich von Canonical entwickelt, Flatpak ist ein von Alexander Larsson gestartetes Communityprojekt. Die Entwickler stammen größtenteils aus dem Gnome-Project, Flatpak ist jedoch explizit nicht an [:GNOME:] gebunden. * Für Snaps gibt es einen zentralen Server - den von Canonical betriebenen "Snap Store". Auch wenn selbstverständlich '''.snap'''-Dateien heruntergeladen und am Store vorbei-installiert werden können und auch der Aufwand einer Re-Implementierung des Snap-Stores sich in Grenzen halten sollte, ist der Snap Store propritär und verschiedene "Repositories" nicht vorgesehen. Flatpak dagegen ist per Design komplett dezentral. Jeder, der will, soll sogar einen eigenen Flatpak-Server eröffnen. Mit Flathub gibt es jedoch trotzdem eine zentrale Anlaufstelle für einen Großteil verfügbarer Flatpak-Anwendungen. * Snap wurden ursprünglich für das [wikipedia:Internet_der_Dinge:Internet of Things] entwickelt. Später wurde Snap auch für den Desktop optimiert. Flatpak ist dagegen ausschließlich für den Desktop und für grafische Programme gedacht. == Unterschiede zu AppImage == An dieser Stelle soll außerdem auf [wikipedia:AppImage: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): * AppImage benötigt keine Installation eines "Grundpaketes" * Ebenfalls keine Installation der Anwendungen nötig - als AppImage-Programme lassen sich "portable" und ohne root-Rechte direkt ausführen * Keine automatischen Updates * Standardgemäß keine erhöhte Sicherheit durch Sandboxing (Verwendung von [https://firejail.wordpress.com/ FireJail] {en} möglich). = Links = * [http://flatpak.org/] {en} - offizielle Homepage * [http://docs.flatpak.org/en/latest/] {en} - Dokumentation # tag: System, Paketverwaltung