Flatpak

Last updated
Flatpak
Original author(s) Alexander Larsson
Developer(s) Flatpak Team [1]
Initial releaseSeptember 2015;8 years ago (2015-09) [2]
Stable release
1.14.5 [3]   OOjs UI icon edit-ltr-progressive.svg / 8 December 2023;4 months ago (8 December 2023)
Repository
Written in C
Operating system Linux
License LGPL-2.1-or-later [4]
Website flatpak.org
Badge for apps on Flathub Flathub-badge-en.svg
Badge for apps on Flathub

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. [5] [6] Flatpak, in 2016, was known as xdg-app. [7]

Contents

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. [8] [9]

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. [10]

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. [11] 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). [12] 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. [13] [14] [15]

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. [16]

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. [17]

See also

Related Research Articles

<span class="mw-page-title-main">Debian</span> Linux distribution based on free and open-source software

Debian, also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software and optionally non-free firmware or software developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of Debian (0.01) was released on September 15, 1993, and its first stable version (1.1) was released on June 17, 1996. The Debian Stable branch is the most popular edition for personal computers and servers. Debian is also the basis for many other distributions that have different purposes, like Proxmox for servers, Ubuntu or Linux Mint for desktops, Kali for penetration testing, and Pardus and Astra for government use.

<span class="mw-page-title-main">Package manager</span> Software tools for handling software packages

A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner.

<span class="mw-page-title-main">Gambas</span> Integrated development environment

Gambas is the name of an object-oriented dialect of the BASIC programming language, as well as the integrated development environment that accompanies it. Designed to run on Linux and other Unix-like computer operating systems, its name is a recursive acronym for Gambas Almost Means Basic. Gambas is also the word for prawns in the Spanish, French, and Portuguese languages, from which the project's logos are derived.

<span class="mw-page-title-main">Portage (software)</span> Gentoo package management system

Portage is a package management system originally created for and used by Gentoo Linux and also by ChromeOS, Calculate, Sabayon, and Funtoo Linux among others. Portage is based on the concept of ports collections. Gentoo is sometimes referred to as a meta-distribution due to the extreme flexibility of Portage, which makes it operating-system-independent. The Gentoo/Alt project was concerned with using Portage to manage other operating systems, such as BSDs, macOS and Solaris. The most notable of these implementations is the Gentoo/FreeBSD project.

freedesktop.org (fd.o), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. Although freedesktop.org produces specifications for interoperability, it is not a formal standards body.

seccomp is a computer security facility in the Linux kernel. seccomp allows a process to make a one-way transition into a "secure" state where it cannot make any system calls except exit , sigreturn , read and write to already-open file descriptors. Should it attempt any other system calls, the kernel will either just log the event or terminate the process with SIGKILL or SIGSYS. In this sense, it does not virtualize the system's resources but isolates the process from them entirely.

AppImage is an open-source format for distributing portable software on Linux. It aims to allow the installation of binary software independently of specific Linux distributions, a concept often referred to as upstream packaging. As a result, one AppImage can be installed and run across Ubuntu, Arch Linux, and Red Hat Enterprise Linux without needing to use different files. It aims to be a format that's self-contained, rootless, and independent of the underlying Linux distribution.

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Enterprise Linux project. It contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">PackageKit</span>

PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level front end for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first introduced into an operating system as a default application in May 2008 with the release of Fedora 9.

<span class="mw-page-title-main">GNOME Shell</span> Graphical shell of the GNOME desktop environment

GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3, which was released on April 6, 2011. It provides basic functions like launching applications and switching between windows, and is also a widget engine. GNOME Shell replaced GNOME Panel and some ancillary components of GNOME 2.

AppStream is an agreement between major Linux vendors to create an infrastructure for application installers on Linux and sharing of metadata.

<span class="mw-page-title-main">Kiwix</span> Open-source offline browser for public domain projects

Kiwix is a free and open-source offline web browser created by Emmanuel Engelhart and Renaud Gaudin in 2007. It was first launched to allow offline access to Wikipedia, but has since expanded to include other projects from the Wikimedia Foundation, public domain texts from Project Gutenberg, many of the Stack Exchange sites, and many other resources. Available in more than 100 languages, Kiwix has been included in several high-profile projects, from smuggling operations in North Korea to Google Impact Challenge's recipient Bibliothèques Sans Frontières.

<span class="mw-page-title-main">GNOME Software</span> GNOME application manager

GNOME Software is a utility for installing applications and updates on Linux. It is part of the GNOME Core Applications, and was introduced in GNOME 3.10.

<span class="mw-page-title-main">Google App Runtime for Chrome</span> Compatibility layer and sandboxing technology

Android Runtime for Chrome (ARC) is a compatibility layer and sandboxing technology for running Android applications on desktop and laptop computers in an isolated environment. It allows applications to be safely run from a web browser, independent of user operating system, at near-native speeds.

<span class="mw-page-title-main">Void Linux</span> Independent distribution developed entirely by volunteers

Void Linux is an independent Linux distribution that uses the X Binary Package System (XBPS) package manager, which was designed and implemented from scratch, and the runit init system. Excluding binary kernel blobs, a base install is composed entirely of free software.

<span class="mw-page-title-main">Snap (software)</span> Software deployment system for Linux by Canonical

Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for cloud applications but was later ported to also work for Internet of Things devices and desktop applications.

libostree is a system for versioning updates of Linux-based operating systems. It can be considered as "Git for operating system binaries". It operates in userspace, and will work on top of any Linux file system. At its core is a Git-like content-addressed object store with branches to track meaningful file system trees within the store.

Pop!_OS Linux distribution

Pop!_OS is a free and open-source Linux distribution, based on Ubuntu, and featuring a customized GNOME desktop environment known as COSMIC. The distribution is developed by American Linux computer manufacturer System76. Pop!_OS is primarily built to be bundled with the computers built by System76, but can also be downloaded and installed on most computers.

<span class="mw-page-title-main">Foliate (software)</span> E-book reading application for Linux

Foliate is a free e-book reading application for desktop Linux systems. The name refers to leaves, meaning "(getting) leafy" or "…-leaved".

References

  1. "About". Archived from the original on 2023-07-14. Retrieved 2022-04-08.
  2. "Flatpak's History". GitHub. Archived from the original on 2022-04-10. Retrieved 2018-08-19.
  3. "1.14.5". 8 December 2023. Retrieved 9 December 2023.
  4. "COPYING". GitHub . 31 March 2015. Archived from the original on 2021-10-26. Retrieved 2021-10-14.
  5. Larsson, Alexander (29 April 2016). "Using bubblewrap in xdg-app". Alexander Larsson: Cool links and commentary. GNOME. Archived from the original on 14 May 2019. Retrieved 8 January 2016.
  6. Willis, Nathan (2015-01-21). "GNOME and application sandboxing revisited". LWN. Archived from the original on 2018-11-25. Retrieved 2016-01-03.
  7. Larsson, Alexander (9 May 2016). "Renamed to flatpak in git". freedesktop.org. Archived from the original on 24 June 2016. Retrieved 1 June 2016.
  8. "Sandbox Permissions". Flatpak documentation. Archived from the original on 2019-06-20. Retrieved 2019-06-24.
  9. "flatpak-run". Flatpak documentation. Archived from the original on 2019-06-26. Retrieved 2019-06-24.
  10. Larsson, Alex (21 August 2018). "Kick-starting the revolution 1.0". Archived from the original on 19 December 2021. Retrieved 14 April 2020.
  11. "7 Flatpak Apps You Can Install Right Now from Flathub". OMG! Ubuntu!. 2017-07-20. Archived from the original on 2019-05-29. Retrieved 2019-05-29.
  12. Submission - Flathub Documentation., Flathub, 2024-02-05, retrieved 2024-02-05
  13. "List remotes". Flatpak documentation. Archived from the original on 2019-07-06. Retrieved 2019-06-24.
  14. "Hosting a Repository". Archived from the original on 18 February 2020. Retrieved 14 April 2020.
  15. "Reasons to use Flatpak". Flatpak documentation. Archived from the original on 2019-06-17. Retrieved 2019-06-24.
  16. TheEvilSkeleton (2022-05-16). "Response to "Flatpak Is Not the Future"". TheEvilSkeleton. Archived from the original on 2023-02-11. Retrieved 2023-02-11.
  17. "Chrome OS Quick Setup". Archived from the original on 2020-08-02. Retrieved 2020-07-22.