Flatpak



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 known as xdg-app until 2016.

Features
Applications using Flatpak need permissions to have access to resources such as Bluetooth, sound (with PulseAudio), network, and files. These permissions are configured 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, it is possible to host a Flatpak repository that is independent of Flathub.

Flatpak runs in a sandbox (which provides a separate, ABI-stable version of all common system libraries), and that means that it will always use more space on the system than common native packages. However, Flatpak uses OSTree as its backend which can deduplicate matching files. This means that the first installation of a Flatpak application will always take up more space at first, but will be more efficient as the user installs more Flatpak packages.

Support
Theoretically, Flatpak apps can be installed on any existing and future Linux distribution, including those installed with the Windows Subsystem for Linux compatibility layer, so long as bubblewrap and OSTree are available.

It can also be used on Linux kernel-based systems like ChromeOS.