What is Flatpak?
Flatpak makes it possible for users to install sandboxed applications on Linux distributions, in a way that is decoupled from the underlying operating system. It gives application developers the control of their agenda and the opportunity to publish new versions and updates without having to depend on a distribution's lifecycle.
The Flatpak system (previously known as xdg-app) uses a set of sandboxing technologies like OSTree and Linux cgroups to distribute software in a cross-distribution manner. These technologies isolate the Flatpak applications from each other and from the rest of the system, giving the user security benefits compared to downloading and installing unrestricted packages on their machine.
It has a concept of runtimes that applications can target to get a reliable and stable platform, independent of the underlying distribution. With runtimes, application developers can focus on their core work without needing to package lower level components and libraries while still having the control on their packaging and release cycle.
Security Warning Note
Installing third-party applications can be a security risk.
Be sure to use a central source like Flathub to get your applications of interest.
It is recommended to run such applications under a Wayland session that provides real isolation between graphical applications, unlike X.
With Graphical Interface Support
- In GNOME
- In KDE Plasma
Starting with Debian 10 (buster) Plasma Discover supports Flatpaks through the plasma-discover-backend-flatpak plugin. It can be installed by searching for "discover flatpak" directly in Discover, or via the package manager.
Once this setup is done, you’ll be able to navigate to a software repository such as Flathub and install applications directly from there.
Clicking on the download icon next to the application name will launch the installation. Your web browser should open a pop-up offering to open the file with the program "Install application" or similar.
For the Command Line
Then you'll probably want to add the common Flathub repository:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
Then you’ll be able to install applications by calling ($APP is the application name):
flatpak install flathub $APP
Users can install Flatpak applications on a per-user basis with the --user option:
flatpak --user install ...
Once installed, an application can be run with:
flatpak run $app_id
where $app_id is the source repository for the application.
Example, install the current stable version of sid/gnome-recipes: (note that sid may contain beta version sometimes)
flatpak install --from https://git.gnome.org/browse/recipes/plain/flatpak/gnome-recipes.flatpakref flatpak run org.gnome.Recipes
In newer versions of flatpak (buster and above), the binaries are also available in a special directory, which can be added to your PATH variable:
echo 'export PATH=$PATH:/var/lib/flatpak/exports/bin' >> ~/.bashrc
The names of the binaries are different from the actual binaries contained in the packages, for instance "org.mozilla.firefox", rather than "firefox"
You can run other command contained in the package by using the --command argument, e.g. to get a shell inside the gnucash flatpak, run
flatpak run --command bash org.gnucash.GnuCash
Having launched this bash instance inside the package, you can run the packaged command line tools such as, in the example of GNUCash aqbanking-cli
See Flatpak/Applications/Command Line for more.
I get a "Not found org.gnome.Platform/x86_64/3.24" error message when trying to install an application
Unlike the flatpak command line interface, the Gnome Software Flatpak plugin currently doesn’t automatically install runtimes. Before installing applications, you’ll have to first install the necessary runtimes manually.
You may need to add the remote repository for installing both gnome SDK and runtime with the following command:
flatpak remote-add --from gnome https://sdk.gnome.org/gnome.flatpakrepo
See runtimes for more available runtimes.