Flatpak is a utility for software deployment and package management for Linux. It is advertised as offering a sandbox environment in which users can run application software in isolation from the rest of the system.
Flatpak was developed as part of the freedesktop.org project (formerly known as X Desktop Group or XDG) and was originally called xdg-app.
Computer applications consist of many small files that are linked together to perform a set of tasks. Because they get presented as "apps," colorful icons in the menu or on a desktop, most of us think of applications as a single, almost tangible thing. And in a way, it's comforting to think of them that way because they feel manageable that way. If an application is actually the amalgamation of hundreds of little library and asset files scattered throughout your computer, where's the application? And existential crisis aside, what happens when one application needs one version of a library while another application demands a different version?
In the world of cloud computing, containers are becoming more and more popular because they offer isolation and consolidation for applications. You can install all the files an application needs in a "container." That way, its libraries stay out of the way of other applications, and the memory it occupies doesn't leak data into the memory space of another. Everything ends up feeling very much like a single, almost tangible thing. On the Linux desktop, Flatpak, a cross-distribution, daemon-less, decentralized application delivery system, provides a similar technology.
Applications using Flatpak need permissions to have access to resources such as Bluetooth, sound (with PulseAudio), network, and files. These permissions are defined by the maintainer of the Flatpak and can be added or removed by users on their system.
Another key feature of Flatpak is that it allows application developers to directly provide updates to users without going through distributions, and without having to package and test the application separately for each distribution.
Flathub, a repository (or remote source in the Flatpak terminology) located at
flathub.org, has become the de facto standard for getting applications packaged with Flatpak. Packages are added to it by both the Flathub administrators and the developers of the programs themselves (though the admins have stated their preference for developer-submitted apps). Although Flathub is the de facto source for applications packaged with Flatpak, Flatpak can work independently of Flathub; it is possible to host a Flatpak repository that is independent of Flathub.
Install Flatpak on Linux
Your Linux system may already have Flatpak installed. If not, you can install it from your package manager:
On Fedora, Mageia, and similar distributions:
$ sudo dnf install flatpak
On Elementary, Mint, and other Debian-based distributions:
$ sudo apt install flatpak
On Slackware, Flatpak is available from SlackBuilds.org.
Select a Flatpak repo
You can install an application as a Flatpak by adding a Flatpak repository to your distribution's software center (such as Software on GNOME). Flatpak is a decentralized system, meaning anyone developing software can host their own repository. Still, in practice, Flathub is the biggest and most popular aggregation of applications in the Flatpak format. To add Flathub to GNOME Software or KDE Discover, navigate to flatpak.org/setup and find the instructions for your distribution and start with step #2, or just download the Flatpakrepo file. Depending on your network, it may take a few minutes for your software center to synchronize with Flathub or another Flatpak repository. Flathub has a lot of software, but there's no limit to how many Flatpak repositories you have on your system, so don't be afraid to add a new repository if you find one that has the software you want to try.
If you prefer to work in the terminal, you can add repositories directly with the
Install an application
As long as you've added a Flatpak repository to your software center, you can browse through applications as usual.
Click on an application that looks appealing, read up on it, and click the Install button when you're ready.
Installing flatpaks in the terminal
If you prefer to work in the terminal, you can treat Flatpak as a dedicated package manager. You can search for an application using the
flatpak search command:
Name Description Application ID
CorePaint A simple painting tool org.cubocore.CorePaint
Pinta Edit images and paint digitally com.github.PintaProject.Pinta
Glimpse Create images and edit photographs org.glimpse_editor.Glimpse
Tux Paint A drawing program for children org.tuxpaint.Tuxpaint
Krita Digital Painting, Creative Freedom org.kde.krita
$ flatpak install krita
Once installed, applications appear in your application menu or Activities screen along with all the other applications on your system.
Apps made easy
Flatpak makes installing applications easy for the user by eliminating version conflicts. They make distributing software easy for developers by targeting just one package format on either a self-hosted platform or a communal one like Flathub. I use Flatpaks on Fedora Silverblue, CentOS, and Slackware, and I can't quite imagine life without it now. Try Flatpak for your next app install!