[[Vorlage(Getestet, zesty)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(3)]] 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. = Installation = Flatpak ist ab Ubuntu 17.04 in den offiziellen Paketquellen und kann einfach installiert werden[1]: {{{#!vorlage Paketinstallation flatpak, universe }}} = Benutzung = Eine Liste zur Zeit verfügbarer Flatpaks findet man im Internetun 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] 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 selbstverständlich 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 es sich ein genauer Blick auf die [:man:]-Page oder offizielle Dokumentationen auf der [http://flatpak.org/command-line.html 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 [wikipedia: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 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". Da ein Snap-Server eigentlich nichts anderes ist als ein Web-Server, kann zwar jeder seinen eigenen "Snap Store" betreiben, dies ist jedoch grundsätzlich nicht vorgesehen. So kennt das Snap-Tool standardgemäß nur den Canonical Snap-Store und ein Konzept ähnlich [:Paketquellen_freischalten/PPA/: PPA] oder "add-apt-repository" fehlt. Stattdessen kann eine Environment-Variable gesetzt werden [https://insights.ubuntu.com/2016/06/24/howto-host-your-own-snap-store/ weiterführender Link] {en}. Flatpak dagegen ist per Design komplett dezentral. Jeder, der will, soll sogar einen eigenen Flatpak-Server eröffnen. Dies hat jedoch auch den Nachteil, dass der Endnutzer nicht eine Anlaufstelle hat, sondern erst auf Webseiten das Repository finden und hinzufügen muss. * 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. * Canonical zielt mit Snap durchaus auch auf kommerzielle und proprietäre Anwendungen, während Flatpak eher als Open Source-Software für Open Source Software gedacht ist. == 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ängiges 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 "Grundpacketes" * 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] möglich. = Links = * [http://flatpak.org/] {en} - offizielle Homepage * [http://docs.flatpak.org/en/latest/] {en} - Dokumentation # tag: System, Paketverwaltung