Introduction to Flatpak (original) (raw)

View this page

Edit this page

Toggle table of contents sidebar

Flatpak is a framework for distributing desktop applications across various Linux distributions. It was created by developers with a long history of working on the Linux desktop and is run as an independent open source project.

Terminologyđź”—

Target audienceđź”—

Flatpak can be used by all kinds of desktop applications and aims to be as agnostic as possible in terms of how applications are built. There are no requirements regarding which programming languages, build tools, toolkits or frameworks can be used.

While Flatpak only runs on Linux, it can be used by applications that target other operating systems as well as those that are Linux-specific. Applications can be open source or proprietary (although some distribution services, likeFlathub, can have restrictions in this respect).

Flatpak’s only technical requirements are that applications follow a small number of Freedesktop standards to enable desktop integration (see Requirements & Conventions).

Issues with the current packaging modelđź”—

It is important to understand the problems with the current model of packaging applications to understand the existence of Flatpak:

Flatpak addresses these issues by enabling developers to distribute applications from one source and target the entire Linux desktop.

Reasons to use Flatpakđź”—

Flatpak offers major advantages over most system package managers:

Flatpak also offers advantages over other universal approaches to Linux application distribution:

Other benefits for developers include:

In general, Flatpak is best suited for desktop applications. While command-line applications also work, Flatpak may not be suitable in some cases:

In general, if the sandbox prohibits an application’s core functionality or becomes too inconvenient or obtrusive, Flatpak may not be the most suitable packaging choice.

Flatpak also won’t export udev rules or systemd services from the sandbox to the host and requires manual configuration after installing the Flatpak package.

Information about Flatpak’s internals can be found in Under the Hood.