The package formats Flatpaks and Snaps
|
From XDG-App to Flatpak
The XDG-App initiated by the Gnome project and Fedora, renamed Flatpak in May 2016, encounter the same problem that Torvalds and numerous other developers and companies have when it comes to packaging software for distributions. Flatpak packages applications with almost all of the dependencies, libraries and other components together.
In order to install and use this type of package, there only needs to be a suitable run-time environment. The distributions and desktops where the package will run are of secondary importance. The fact that an identical package of the same or another version is already installed on the system is also irrelevant.
This is where Flatpak exhibits another advantage. All of the apps run in a sandbox and are isolated from one another. If this reminds the user of containers, then the connection is not far off. The principle is the same.
In addition, the container software LXC is used, thus making Flatpaks into a desktop container. Therefore it is no surprise that the developers would like to have the specifications remain compatible with the standard for the open container initiative.
The name of the format originates from Sweden, which is the home of the developer Alexander Larsson. It references Ikea and the method the company uses for packaging products in flat boxes. Larsson works on the Gnome project for the desktop and also for Red Hat on container technologies.
He is convinced that Flatpak can be used with technologies from the kernel such as cgroups, namespaces, bind mounts, and seccomp, plus OSTree [5] from Red Hat's Atomic project and the Open Container Initiative's OCI format. Flatpak and Snaps are connected to these platforms through the application of Linux-specific technologies.
Newly developed technologies like Bubblewrap [6] are finding their way from Flatpak into the Atomic project. Bubblewrap makes it possible for the normal user to use and install isolated applications without giving the applications access to the system and the home directory and without increasing their privileges.
Not Statically Linked
An essential difference exists when it comes to containers from the server world. Container systems like Docker are statically linked. The run-time environment is connected in each container. Flatpaks, on the other hand, include a dependency to the run-time environment, which affords access to the basic system libraries.
The advantage here is that theoretically, a Flatpak has an unlimited run time even if the basic system and the demands on the hardware change. However, an application can only depend on one run-time environment at a time. In order to create more flexibility, the developer is working on dividing the run-time environment into modules.
A general advantage of this and similar formats is the shortening of the path from developer to user. The user does not have to update all of the distributions in order to have suitable dependencies for a current piece of software. The possibility exists of keeping an Ubuntu LTS version while still testing out the newest software.
One disadvantage, which is no longer quite so important thanks to the low price of hard drives, is the space needed on the drive since each Flatpak or Snap includes some of its libraries and other dependencies. Accordingly, the individual packages tend to take up more space on your drive in this format.
Buy this article as PDF
Pages: 7
(incl. VAT)