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.
| Eigenschaft | Flatpak | Snap | AppImage |
|---|---|---|---|
| Sandbox | Bubblewrap | AppArmor / seccomp | Keine (optional firejail) |
| Zentralität | Mehrere Remotes (Flathub, eigene) | Snap Store (Canonical) | Keine, einzelne Dateien |
| Auto-Update | Optional, manuell | Erzwungen | Manuell |
| Per-User-Install | Ja (--user) | Nein | Ja |
| Runtimes geteilt | Ja | Nein (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.
sudo apt install flatpaksudo dnf install flatpaksudo pacman -S flatpakNach der Installation muss in der Regel noch der Flathub-Remote hinzugefügt werden — ohne ihn ist Flatpak leer.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepoAuf manchen Distributionen ist nach der Installation ein Reboot nötig, damit xdg-desktop-portal und der flatpak-Daemon korrekt initialisiert sind.
Wichtige Befehle
| Befehl | Wirkung |
|---|---|
flatpak install flathub APP | Installiert eine App aus einem Remote |
flatpak run APP | Startet eine installierte App |
flatpak update | Aktualisiert alle installierten Apps und Runtimes |
flatpak uninstall APP | Entfernt eine App |
flatpak uninstall --unused | Entfernt nicht mehr benötigte Runtimes |
flatpak list | Listet installierte Apps und Runtimes |
flatpak search PATTERN | Sucht nach einer App in allen Remotes |
flatpak info APP | Zeigt Details zu einer installierten App |
flatpak override APP | Ändert Sandbox-Berechtigungen einer App |
flatpak remote-add NAME URL | Fügt einen neuen Remote hinzu |
flatpak remote-remove NAME | Entfernt einen Remote |
flatpak remote-list | Listet 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-ID | Anwendung |
|---|---|
org.gnome.Maps | GNOME Maps |
org.mozilla.firefox | Mozilla Firefox |
com.spotify.Client | Spotify |
org.libreoffice.LibreOffice | LibreOffice |
org.gimp.GIMP | GIMP |
com.visualstudio.code | Visual Studio Code |
org.blender.Blender | Blender |
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.
flatpak override --user --filesystem=home org.libreoffice.LibreOfficeFür eine grafische Verwaltung der Berechtigungen empfiehlt sich Flatseal — eine Flatpak-App, die alle Sandbox-Optionen jeder installierten App anzeigt und bearbeitbar macht.
flatpak install flathub com.github.tchx84.FlatsealRuntime 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:
| Runtime | Beschreibung |
|---|---|
org.freedesktop.Platform//23.08 | Basis-Runtime mit Standardbibliotheken |
org.gnome.Platform//45 | GNOME-Stack auf Basis von Freedesktop |
org.kde.Platform//6.6 | KDE Frameworks und Qt |
org.freedesktop.Sdk//23.08 | SDK-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.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepoDer 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.
flatpak search libreofficeApp installieren
Die saubere Form gibt sowohl Remote als auch Application-ID an, damit es bei mehreren Quellen keine Verwechslungen gibt.
flatpak install flathub org.libreoffice.LibreOfficeBeim 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.
flatpak install --user flathub org.gimp.GIMPUser-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.
sudo flatpak override --filesystem=/data org.libreoffice.LibreOfficeOhne 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.
flatpak updateAnders 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.
flatpak uninstall --unusedLohnt 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
- Flatpak Dokumentation (flatpak.org/docs) — Offizielle Dokumentation zu Konzept, Befehlen und Manifesten
- Flathub — Der grösste Flatpak-Remote mit tausenden Anwendungen
- Linux Application Sandboxing — Hintergrund zu Bubblewrap und Sandboxing-Konzepten im Arch Wiki
- Flatseal (GitHub) — GUI-Verwaltung für Flatpak-Berechtigungen
Verwandte Artikel
- snap – Canonicals Universalpaket — Direkter Konkurrent mit anderem Sandbox-Modell
- appimage – Portable Linux-Anwendungen — Single-File-Format ohne Installation
- apt – Debian-Paketverwaltung — Klassisches Distro-Paketsystem
- dnf – Fedora-Paketverwaltung — RPM-basiertes Pendant
- Paketquellen verstehen — Wie Linux-Repositories grundsätzlich funktionieren