Not so long ago, the usual way to install a software package on GNU / Linux It was to type in the console the name of it preceded by ‘apt-get install’ or ‘yum install’ or ‘pacman -S’, etc … depending on the distribution we used. We took a look at the dependencies, we confirmed and ready: the operating system started downloading the corresponding .deb files (or .rpm, or tar.gz, etc) and install them.
We were all used to this system, and we were doing well with it. But the Atomization of the Linux scene affected the availability of the software for all the distributions: Its developers had to waste a lot of time (and were not always willing) creating specific packages for each distribution or group of distributions.
So it occurred to someone to create a distribution independent package management system, in which any program and library could be installed with the same file and procedure, we were already in Gentoo, Slackware or Lubuntu (for example). Such a good idea that there have been several attempts to implement it separately.
So that the Linux ‘world’ now has 3 “interdistribution” package management systems at its disposal, which complement (and in some cases even replace) those of each distribution. Let’s see what they consist of and what each one offers.
AppImage is not, technically speaking, a package manager; not an app store either. Perhaps we understand better what AppImage offers if we remember that, between 2011 and 2013 it was known as “PortableLinuxApps” (Before that, since its launch in 2004, it was called “Klik”).
In summary, this is an image of the application (similar to an .iso file) it does not require installation or – more importantly – administrator permissions to function: it offers portable applications, packaged in a single file with all its dependencies, regardless of the distribution used.
When we use an .appimage file, we only have to waste time granting execution permissions, it will automatically mount to the user space file system (making it compatible with immutable file systems, such as those based on OSTree).
Some applications will offer the option to start ‘install a desktop file’, which will integrate it into the application menus of our distribution. Only in these cases its “uninstallation” will require more than sending the executable file to the Trash.
You can download AppImage images from AppImageHub, but there is no centralized repository.
Snap It is an initiative promoted by Canonical for use in its own mobile Linux distribution, the defunct Ubuntu Touch, in 2014. Although since then it has been exported to multiple relevant distributions (although his excessive dependence on Canonical it still weighs down its adoption).
Their goal was to achieve a unique software distribution format that can be used equally on desktop PCs and IoT devices. As in the case of AppImage, each Snap packages inside it all the dependencies of the software in question, making it easy to work on any computer.
Unlike AppImage, snaps are designed to support updates, without forcing us to delete and replace the package with a newer one. Furthermore, this update is carried out in the background even if we are using the application.
It is a safe system, because the packages are signed And once the application is started, it is done in an isolated environment, with limited access to the team’s resources.
The program that allows you to manage snaps is Snapd, and its app store, Snapcraft.
FlatPak creator Alexander Larsson was inspired by AppImage’s first predecessor, Klik, to create a package system focused on running the software within isolated environments, where they could operate without root privileges. Larsson launched in 2015 a system called xdg-app that it ended up becoming Flatpak a year later, with the support of Red Hat.
Its main difference from the other two package management systems is that does not package the software that interests us along with all its dependencies: that can force us to install numerous packages, but also noticeably reduces their size.
Another difference is its high level of integration with KDE and Gnome desktop environments and with the FreeDesktop standard, which facilitates the integration of the applications installed through this system with the graphical tools of the main Linux desktops. The FreeDesktop support, which even hosts the Flatpak project website, has earned him many supports.
The main Flatpak package repository is Flathub.org (although it does not depend on any specific ‘app store’).