Verwenden von Flatpak

Diese Seite enthält eine Einführung zu der Flatpak-Kommandozeilenschnittstelle und erläutert essenzielle technische Konventionen, sowie die häufigst verwendeten Befehle.

Endbenutzer sollten auf diese Seite oder die Flatpak-Kommandozeilenschnittstelle für gewöhnlich nicht angewiesen sein, da Flatpak mit grafischen Softwaremanagement-Tools verwendet werden kann. Wenn es bevorzugt wird, steht es natürlich frei, die Kommandozeile zu verwenden.

Das Flatpak-Kommando

flatpak ist das primäre Flatpak-Kommando, an dieses werden spezifische Befehle angefügt. Zum Beispiel lautet das Komando etwas zu installieren flatpak install und etwas zu deinstallieren flatpak uninstall.

Identifikatoren

Flatpak identifiziert jede Anwendung und Laufzeitumgebung unter Verwendung eines einzigartigen dreiteiligen Identifikators, wie com.company.App. Das letzte Segment dieser Adresse ist der Objektname, der vorgestellte Teil identifiziert den Entwickler. Dadurch kann der gleiche Entwickler mehrere Anwendungen, wie com.company.App1 und com.company.App2, haben.

Identifikator-Tripel

Normalerweise ist es ausreichend auf Objekte unter Verwendung ihrer ID zu referenzieren. Jedoch ist es in manchen Situationen notwendig, auf eine bestimmte Version eines Objektes oder eine spezifische Architektur zu referenzieren. Beispielsweise können einige Anwendungen als stabile Versionen verfügbar sein oder als Testversion, in diesem Fall ist es notwendig anzugeben, welche installiert werden soll.

Flatpak erlaubt Architekturen und Versionen spezifiziert zu werden mittels eines Identifikator-Tripels. Dies geschieht in Form von name/architecture/branch, wie zum Beispiel com.company.App/i386/stable (branch ist der Begriff, der verwendet wird, um auf Versionen des gleichen Objekts zu verweisen). Der erste Teil des Tripels ist die ID, der zweite Part die Architektur und der dritte Teil der Entwicklungszweig (Branch).

Indem ein Teil des Tripels ausgelassen wird, können Identifikator-Tripel ebenso verwendet werden, um lediglich die Architektur oder den Branch zu spezifizieren. Beispielsweise würde com.company.App//stable lediglich den Branch festlegen und com.company.App/i386// nur die Architektur spezifizieren.

Das Flatpak-CLI gibt Feedback, ob Architektur oder Branch eines Objektes spezifiziert werden muss.

System versus Benutzer

Flatpak-Befehle können systemweit oder unter einzelnen Benutzern laufen. Anwendungen und Laufzeitumgebungen, die systemweit installiert wurden, stehen allen Benutzern des Systems zur Verfügung. Anwendungen und Laufzeitumgebungen, die pro Benutzer installiert wurden, stehen lediglich in den Benutzer-Accounts des Systems zur Verfügung, in denen diese installiert wurden.

Das gleiche Prinzip gilt für Repositorys – Repositorys, die systemweit hinzugefügt wurden, sind verfügbar für alle Benutzer, während benutzerbasierte Repositorys lediglich von einem bestimmten Benutzer verwendet werden können.

Flatpak-Kommandos laufen standardmäßig systemweit. Wenn Anwendungen für den täglichen Gebrauch installiert werden, ist es empfehlenswert dieses Standardverhalten beizubehalten.

Allerdings kann es für Test- und Entwicklungszwecke sinnvoll sein, Kommandos als Benutzer laufen zu lassen, da Objekte, die in dieser Weise installiert werden, nicht für andere Nutzer des Systems zur Verfügung stehen. Zu diesem Zweck wird die --user-Option als Schalter verwendet, dieser kann in Kombination mit den meisten Flatpak-Kommandos verwendet werden.

Befehle verhalten sich exakt in der gleichen Weise, wenn sie benutzerbasiert laufen, als wenn sie systemweit angewendet werden.

Grundlegende Kommandos

Dieser Abschnitt deckt grundlegende Befehle ab, die benötigt werden, um Flatpak-Anwendungen zu installieren, zu starten und zu verwalten. Für die vollständige Liste der Flatpak-Kommandos kann man flatpak --help aufrufen oder in die Flatpak Command Reference schauen.

Auflisten von Remotes

Um die Remotes aufzulisten, die auf dem System konfiguriert sind, verwendet man diesen Befehl:

$ flatpak remotes

Ausgegeben wird eine Liste der existierenden Remotes, die hinzugefügt wurden. Die Auflistung zeigt an, ob die jeweiligen Remotes benutzerbasiert oder systemweit installiert wurden.

Hinzufügen eines Remotes

Der zweckmäßigste Weg einen Remote hinzuzufügen, ist eine flatpakrepo-Datei zu verwenden, welche sowohl die Details des Remote und seines GPG-Schlüssels enthält:

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

flathub ist hier der lokale Name, der dem Remote gegeben wird. Die URL zeigt auf die flatpakrepo-Datei des Remotes. --if-not-exists hindert das Kommando daran einen Fehler zu erzeugen, wenn das Remote bereits existiert.

Entfernen eines Remotes

Um ein Remote zu entfernen, ruft man auf:

$ flatpak remote-delete flathub

In diesem Fall ist flathub der lokal vergebene Name des Remotes.

Installieren von Anwendungen

Um eine Anwendung zu installieren, verwendet man:

$ flatpak install flathub org.gimp.GIMP

flathub ist hierbei der Name des Remotes, von dem die Applikation installiert werden soll und org.gimp.GIMP ist die ID der Applikation.

Gelegentlich benötigt eine Anwendung eine bestimmte Laufzeitumgebung, diese wird dann vor der Anwendung installiert.

Die Details für die Installation der Anwendung können auch in einer .flatpakref-Datei zur Verfügung gestellt werden, diese kann entweder remote oder lokal vorliegen. Um ein .flatpakref zur Verfügung zu stellen, anstatt händisch das Remote und die Anwendungs-ID anzugeben, verwendet man:

$ flatpak install https://flathub.org/repo/appstream/org.gimp.GIMP.flatpakref

Wenn die .flatpakref-Datei spezifiziert, dass die Anwendung von einem Remote installiert wird, das noch nicht bereits hinzugefügt wurde, wird gefragt, ob dieses hinzugefügt werden soll, bevor die Applikation installiert wird.

Since Flatpak 1.2, the install command can search for applications. A simple:

$ flatpak install gimp

will confirm the remote and application and proceed to install.

Starten von Anwendungen

Sobald eine Anwendung installiert wurde, kann diese aufgerufen werden unter Verwendung des run-Kommandos und der zugehörigen Anwendungs-ID:

$ flatpak run org.gimp.GIMP

Aktualisieren

Um alle installierten Anwendungen und Laufzeitumgebungen auf die aktuellsten Versionen zu aktualisieren, verwendet man:

$ flatpak update

Auflisten von installierten Anwendungen

Um alle installierten Anwendungen und Laufzeitumgebungen aufzulisten, verwendet man:

$ flatpak list

Um lediglich die installierten Anwendungen aufzulisten, verwendet man:

$ flatpak list --app

Entfernen einer Anwendung

Um eine Anwendung zu entfernen, verwendet man:

$ flatpak uninstall org.gimp.GIMP

Troubleshooting

Flatpak has a few commands that can help you to get things working again when something goes wrong.

To remove runtimes and extensions that are not used by installed applications, use:

$ flatpak uninstall --unused

To fix inconsistencies with your local installation, use:

$ flatpak repair

Flatpak also has a number of commands to manage the portal permissions of installed apps. To reset all portal permissions for an app, use flatpak permission-reset:

$ flatpak permission-reset org.gimp.GIMP

To find out what changes have been made to your Flatpak installation over time, you can take a look at the logs (since 1.2):

$ flatpak history