Flatpak ist ein distro-übergreifendes Paketformat für Linux-Desktop-Anwendungen. Im Gegensatz zu apt, dnf oder pacman ist Flatpak nicht an eine bestimmte Distribution gebunden — eine Flatpak-App läuft auf Fedora genauso wie auf Ubuntu, Arch oder Debian. Das Besondere: Jede App läuft in einer Sandbox auf Basis von Bubblewrap und greift auf das Hostsystem nur über klar definierte Schnittstellen (Portals) zu.

Im Vergleich zu Snap ist Flatpak dezentraler — es gibt nicht nur einen offiziellen Store, sondern beliebig viele Remotes. Der wichtigste ist Flathub, aber jeder kann einen eigenen Flatpak-Remote betreiben.

Was Flatpak ist

Flatpak liefert eine Anwendung samt aller Bibliotheken in einem isolierten Bundle aus. Statt sich auf die Bibliotheksversionen der Distribution zu verlassen, bringt jede App ihre Abhängigkeiten über eine geteilte Runtime mit (z. B. die Freedesktop- oder GNOME-Plattform). Das macht Flatpak unabhängig von der Hostdistribution und löst gleichzeitig das klassische Problem inkompatibler Bibliotheksversionen.

Die Sandbox basiert auf Bubblewrap — einem schlanken Werkzeug, das mit Linux-Namespaces, seccomp und Mount-Tricks arbeitet. Bubblewrap ist die gleiche Technologie, die auch hinter firejail und flatpak run steckt. Der Sandbox-Inhalt sieht nur einen minimalen Filesystem-Ausschnitt, das Hostsystem bleibt geschützt.

Im Vergleich zu Snap (Canonical) gibt es keinen einzigen zentralen Store und keine erzwungene Auto-Update-Politik. Flatpak ist distro-neutral und wird gemeinschaftlich gepflegt.

EigenschaftFlatpakSnapAppImage
SandboxBubblewrapAppArmor / seccompKeine (optional firejail)
ZentralitätMehrere Remotes (Flathub, eigene)Snap Store (Canonical)Keine, einzelne Dateien
Auto-UpdateOptional, manuellErzwungenManuell
Per-User-InstallJa (--user)NeinJa
Runtimes geteiltJaNein (jedes Snap eigene)Nein

Flathub und andere Remotes

Ein Remote ist ein Flatpak-Repository — also ein Server, der Anwendungen und Runtimes ausliefert. Flathub (flathub.org) ist der mit Abstand größte und wichtigste Remote: tausende Open-Source- und proprietäre Apps, gepflegt von Maintainern und Entwicklern.

Daneben gibt es weitere Remotes:

  • Flathub Beta — Vorabversionen vieler Apps zum Testen
  • GNOME Nightly — tägliche Builds des GNOME-Projekts
  • KDE Flatpak — KDE-Apps direkt vom Projekt
  • Eigene Remotes — Firmen oder Projekte können eigene Flatpak-Server betreiben

Diese Dezentralität ist ein bewusstes Designziel. Kein einzelnes Unternehmen kontrolliert das Ökosystem, jede Distribution kann eigene Defaults setzen.

Installation

Auf vielen Distributionen ist Flatpak bereits vorinstalliert (Fedora seit Workstation 25, Linux Mint, elementaryOS). Auf anderen muss es nachinstalliert werden.

Bash Ubuntu / Debian / Mint
sudo apt install flatpak
Bash Fedora
sudo dnf install flatpak
Bash Arch Linux
sudo pacman -S flatpak

Nach der Installation muss in der Regel noch der Flathub-Remote hinzugefügt werden — ohne ihn ist Flatpak leer.

Bash Flathub als Remote hinzufügen
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Auf manchen Distributionen ist nach der Installation ein Reboot nötig, damit xdg-desktop-portal und der flatpak-Daemon korrekt initialisiert sind.

Wichtige Befehle

BefehlWirkung
flatpak install flathub APPInstalliert eine App aus einem Remote
flatpak run APPStartet eine installierte App
flatpak updateAktualisiert alle installierten Apps und Runtimes
flatpak uninstall APPEntfernt eine App
flatpak uninstall --unusedEntfernt nicht mehr benötigte Runtimes
flatpak listListet installierte Apps und Runtimes
flatpak search PATTERNSucht nach einer App in allen Remotes
flatpak info APPZeigt Details zu einer installierten App
flatpak override APPÄndert Sandbox-Berechtigungen einer App
flatpak remote-add NAME URLFügt einen neuen Remote hinzu
flatpak remote-remove NAMEEntfernt einen Remote
flatpak remote-listListet konfigurierte Remotes

Application-IDs

Flatpak-Anwendungen identifizieren sich nicht über Kurznamen wie firefox, sondern über eine Reverse-DNS-ID. Diese eindeutige Kennung verhindert Namenskonflikte zwischen verschiedenen Maintainern und macht klar, wer für ein Paket verantwortlich ist.

Application-IDAnwendung
org.gnome.MapsGNOME Maps
org.mozilla.firefoxMozilla Firefox
com.spotify.ClientSpotify
org.libreoffice.LibreOfficeLibreOffice
org.gimp.GIMPGIMP
com.visualstudio.codeVisual Studio Code
org.blender.BlenderBlender

Die Domain im Präfix gehört üblicherweise dem Projekt — org.gnome.* für GNOME-Projekte, com.spotify.* für Spotify und so weiter. Beim Installieren oder Starten genügt oft ein eindeutiges Suffix, ansonsten muss die volle ID angegeben werden.

Permissions und Portals

Da jede Flatpak-App in einer Sandbox läuft, sieht sie standardmäßig nicht das gesamte Dateisystem, kein Mikrofon, keine Kamera und kein Netzwerk im Detail. Der Zugriff erfolgt über zwei Wege:

  • Statische Permissions — vom Maintainer im Manifest deklariert, beim Install sichtbar
  • Portals — dynamische Anfragen, bei denen der Nutzer zur Laufzeit zustimmt

Portals sind das spannende Konzept. Wenn eine App eine Datei öffnen will, ruft sie nicht direkt das Dateisystem auf, sondern bittet den xdg-desktop-portal um einen File-Dialog. Der Nutzer wählt die Datei — und nur diese Datei wird der App zugänglich gemacht. Ähnliches gilt für Screenshot, Bildschirmaufnahme, Drucken, Kamera und Notifications.

Permissions lassen sich mit flatpak override anpassen.

Bash Beispiel: Zugriff auf Home-Verzeichnis erlauben
flatpak override --user --filesystem=home org.libreoffice.LibreOffice

Für eine grafische Verwaltung der Berechtigungen empfiehlt sich Flatseal — eine Flatpak-App, die alle Sandbox-Optionen jeder installierten App anzeigt und bearbeitbar macht.

Bash Flatseal installieren
flatpak install flathub com.github.tchx84.Flatseal

Runtime und SDKs

Flatpak-Apps werden nicht statisch mit allen Bibliotheken gebaut. Stattdessen nutzen sie eine geteilte Runtime — ein Bündel aus Standardbibliotheken, das einmal installiert wird und von vielen Apps gleichzeitig verwendet werden kann.

Verbreitete Runtimes:

RuntimeBeschreibung
org.freedesktop.Platform//23.08Basis-Runtime mit Standardbibliotheken
org.gnome.Platform//45GNOME-Stack auf Basis von Freedesktop
org.kde.Platform//6.6KDE Frameworks und Qt
org.freedesktop.Sdk//23.08SDK-Variante mit Header-Dateien für Build

Da viele Apps die gleiche Runtime nutzen, ist der Disk-Footprint oft kleiner als bei Snap, wo jede App eine komplette Userland-Kopie mitbringt. Trotzdem können verschiedene Apps unterschiedliche Runtime-Versionen brauchen — und dann liegen mehrere Versionen parallel auf der Platte. Mit flatpak uninstall --unused lassen sich verwaiste Runtimes wieder entfernen.

Praxis-Patterns

Flathub einrichten

Der erste Schritt nach jeder frischen Flatpak-Installation. Ohne Remote keine Apps.

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

Der Schalter --if-not-exists macht den Befehl idempotent — er meldet keinen Fehler, wenn der Remote schon existiert.

Apps suchen

flatpak search durchsucht alle konfigurierten Remotes nach einem Muster. Die Ausgabe enthält Name, Application-ID und Remote.

Bash
flatpak search libreoffice

App installieren

Die saubere Form gibt sowohl Remote als auch Application-ID an, damit es bei mehreren Quellen keine Verwechslungen gibt.

Bash
flatpak install flathub org.libreoffice.LibreOffice

Beim ersten Aufruf wird zusätzlich die nötige Runtime mitinstalliert. Folgeinstallationen, die dieselbe Runtime nutzen, gehen entsprechend schneller.

System-weit oder pro Benutzer

Flatpak unterscheidet zwischen System- und User-Install. System-Install (--system, Standardverhalten mit sudo-Eskalation oder PolicyKit-Prompt) macht die App allen Benutzern verfügbar. User-Install (--user) installiert ohne Root-Rechte ins Home-Verzeichnis.

Bash User-Install ohne sudo
flatpak install --user flathub org.gimp.GIMP

User-Installs landen unter ~/.local/share/flatpak, System-Installs unter /var/lib/flatpak.

Permissions ändern

Manchmal braucht eine App Zugriff auf einen Pfad außerhalb des Standard-Sandbox-Inhalts. flatpak override schreibt diese Änderung dauerhaft in die Konfiguration.

Bash
sudo flatpak override --filesystem=/data org.libreoffice.LibreOffice

Ohne sudo wird die Override im User-Scope gespeichert (gilt nur für den aktuellen Benutzer), mit sudo system-weit.

Updates einspielen

flatpak update aktualisiert alle installierten Apps und Runtimes. Ohne weitere Argumente wirkt der Befehl auf alles, was installiert ist.

Bash
flatpak update

Anders als bei Snap gibt es keine erzwungenen Auto-Updates — der Nutzer entscheidet, wann aktualisiert wird. Viele Desktop-Umgebungen integrieren das Update aber in ihren grafischen Software-Manager.

Ungenutzte Runtimes aufräumen

Mit der Zeit sammeln sich Runtime-Versionen an, die keine installierte App mehr braucht. Der --unused-Schalter findet und entfernt diese.

Bash
flatpak uninstall --unused

Lohnt sich besonders nach grösseren System-Upgrades oder wenn längere Zeit nicht aufgeräumt wurde. Auf gepflegten Systemen werden so schnell mehrere Gigabyte frei.

Besonderheiten

Per-User-Install ohne Root-Rechte

Mit flatpak install —user kannst du Anwendungen installieren, ohne sudo-Rechte zu brauchen — die App landet unter ~/.local/share/flatpak und steht nur deinem Benutzer zur Verfügung. Snap kann das nicht: jede Snap-Installation erfordert Systemrechte. Auf Mehrbenutzer-Workstations oder restriktiven Firmenrechnern ist das ein echter Vorteil von Flatpak.

Bubblewrap statt AppArmor — bewusst portabler

Flatpak nutzt bubblewrap als Sandbox-Engine. Das ist die gleiche Technologie, die auch firejail und Toolbx einsetzen. Snap setzt dagegen stark auf AppArmor und seccomp-Profile, die distro-spezifisch sind. Bubblewrap arbeitet mit Linux-Namespaces und funktioniert überall — daher läuft Flatpak ohne grosse Anpassungen auf praktisch jeder Distribution.

Portals fragen den Nutzer — Snap-Interfaces oft nicht

Das Portal-Konzept ist ein wichtiger Sicherheits-Vorteil von Flatpak: Wenn eine App auf eine Datei oder die Kamera zugreifen will, erscheint ein System-Dialog, in dem der Nutzer aktiv zustimmt. Bei Snap-Interfaces hingegen werden Berechtigungen oft beim Install pauschal vergeben oder über snap connect dauerhaft gewährt — ohne dass der Nutzer im Moment der Nutzung gefragt wird.

Flatseal als GUI für Berechtigungen

Die Kommandozeile mit flatpak override ist mächtig, aber unhandlich für Alltagsnutzer. Flatseal (com.github.tchx84.Flatseal) ist die GUI dafür: Jede installierte App wird mit allen Sandbox-Optionen aufgelistet — Filesystem, Devices, Sockets, Sessionbus-Zugriffe — und alles lässt sich per Klick anpassen. Wer Flatpak ernsthaft nutzt, sollte Flatseal direkt als Erstes installieren.

Disk-Verbrauch durch Runtime-Versionen

Apps können unterschiedliche Runtime-Versionen brauchen — oft existieren parallel org.freedesktop.Platform//22.08, //23.08 und mehrere GNOME- oder KDE-Versionen auf der Platte. Auch wenn Runtimes geteilt werden, summiert sich das. Mit flatpak uninstall —unused lassen sich verwaiste Runtimes regelmässig aufräumen — das schafft schnell mehrere Gigabyte Platz.

Integration in Software-GUIs auf Mint und Fedora

Auf Linux Mint und Fedora ist Flatpak direkt in den grafischen Software-Manager integriert: Apps aus Flathub erscheinen neben Distro-Paketen, ohne dass der Nutzer den Unterschied kennen muss. Auf Ubuntu hingegen bevorzugt das Snap-Store-Frontend Snaps — Flatpak-Apps müssen dort separat über die Kommandozeile installiert werden.

Native- und Flatpak-Versionen können parallel laufen

Eine Distro-eigene Firefox-Installation und ein Flatpak-Firefox können gleichzeitig auf demselben System existieren. Das kann praktisch sein für Tests, führt aber häufig zu Verwirrung bei Standardanwendungen für MIME-Types: Welche Version öffnet jetzt das HTML-File? Ein Blick in die XDG-MIME-Konfiguration oder die Desktop-Einstellungen klärt das. Im Zweifel lieber eine Variante deinstallieren.

Erste Startups sind manchmal langsam

Flatpak-Apps starten beim ersten Aufruf oft spürbar langsamer als native Apps. Grund: Die Runtime muss gemountet, die Sandbox aufgesetzt und das xdg-desktop-portal initialisiert werden. Folgeaufrufe gehen meist deutlich schneller, da der Kernel die nötigen Daten im Page-Cache hat. Auf älteren SSDs oder rotierenden Platten merkt man das stärker als auf modernem NVMe-Storage.

Weiterführende Ressourcen

Externe Quellen

/ Weiter

Zurück zu Pakete

Zur Übersicht