Flatpak

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

Flatpak is a utility for software deployment and package management for Linux. It provides a sandbox environment in which users can run application software in (partial) isolation from the rest of the system. [5] [6] Flatpak was known as xdg-app until 2016. [7]

Contents

Features

Applications using Flatpak need permissions to access 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 allows application developers to directly provide updates to users without going through linux distributions, and without having to package and test the application separately for each distribution. [10]

Because Flatpak runs in a sandbox (which provides a separate, ABI-stable version of common system libraries), it uses more space on the system than common native packages. However, OSTree, a technology underlying Flatpak, deduplicates matching files. This means that the first few Flatpak installations will occupy more space, but as more packages are added, the system will use space more efficiently. [11]

Flathub, a repository (or remote source in the Flatpak terminology) located at flathub.org, is the de facto standard for getting applications packaged with Flatpak. [12] Packages are contributed by both Flathub administrators and application developers, with a stated preference for submissions from the developers themselves. [13] 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. [14] [15] [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">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">GNOME Web</span> Free and open-source web browser for Unix-like systems

GNOME Web, called Epiphany until 2012 and still known by that code name, is a free and open-source web browser based on the GTK port of Apple's WebKit rendering engine, called WebKitGTK. It is developed by the GNOME project for Unix-like systems. It is the default and official web browser of GNOME, and part of the GNOME Core Applications.

<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, 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.

<span class="mw-page-title-main">GNOME Terminal</span> Terminal emulator from GNOME

GNOME Terminal is a terminal emulator for the GNOME desktop environment written by Havoc Pennington and others. Terminal emulators allow users to access a UNIX shell while remaining on their graphical desktop.

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 is 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 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> Free software

PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level abstraction layer 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.

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

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

<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.

<span class="mw-page-title-main">Budgie (desktop environment)</span> Desktop environment for Unix-like operating systems

Budgie is an independent, free and open-source desktop environment for Linux and other Unix-like operating systems that targets the desktop metaphor. Budgie is developed by the Buddies of Budgie organization, which is composed of a team of contributors from Linux distributions such as Fedora, Debian, and Arch Linux. Its design emphasizes simplicity, minimalism, and elegance, while providing the means to extend or customize the desktop in various ways. Unlike desktop environments like Cinnamon, Budgie does not have a reference platform, and all distributions that ship Budgie are recommended to set defaults that best fit their desired user experience. Budgie is also shipped as a edition of certain Linux distributions, such as Ubuntu Budgie.

<span class="mw-page-title-main">PipeWire</span> Media processing server for Linux

PipeWire is a server for handling audio, video streams, and hardware on Linux. It was created by Wim Taymans at Red Hat. It handles multimedia routing and pipeline processing.

<span class="mw-page-title-main">Termux</span> Terminal emulator for Android

Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's.

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.10". 14 August 2024. Retrieved 15 August 2024.
  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. TheEvilSkeleton (2022-05-16). "Response to "Flatpak Is Not the Future"". TheEvilSkeleton. Archived from the original on 2023-02-11. Retrieved 2023-02-11.
  12. "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.
  13. Submission - Flathub Documentation., Flathub, 2024-02-05, retrieved 2024-02-05
  14. "List remotes". Flatpak documentation. Archived from the original on 2019-07-06. Retrieved 2019-06-24.
  15. "Hosting a Repository". Archived from the original on 18 February 2020. Retrieved 14 April 2020.
  16. "Reasons to use Flatpak". Flatpak documentation. Archived from the original on 2019-06-17. Retrieved 2019-06-24.
  17. "Chrome OS Quick Setup". Archived from the original on 2020-08-02. Retrieved 2020-07-22.