Snaps, Flatpaks and AppImages Oh My!

With Linux having so many distributions with so many different requirements and distro-specific commands, compatibility has been a serious issue in the past. To be more specific, if someone wanted to install a program on Fedora not only would they need to download all of the dependencies for that specific program/operating system but additionally they would not be able to use a tutorial intended for an Ubuntu machine. This tutorial would not work for the Fedora user because the commands for the package installer are not the same.

To combat this issue, software developers created a cross-distribution application-deployment solution that is able to run on virtually ALL Linux distributions, completely agnostic of whatever the OS is, as long as it is running a maintained version of Linux. It is quite a beautiful system the way these cross-compatible programs run, giving users the freedom and power to really make their boxes their own.

Snaps are a well-known example of these packages that allows for cross-compatibility. Developed by Canonical in 2016, Snap packages are confined and sand-boxed programs that are secure and come with all of their required dependencies. All a Linux-user needs to do is ensure their box is running the daemon, snapd and they should be able to install and run any Snap Package they want to. Snaps are baked into Ubuntu by default and the Desktop Operating System even has a user-friendly ‘Snap Store’ where one can browse the pages for different apps to download as a snap package.

Flatpaks, often compared to Snaps, are another form of sandboxed and isolated application that uses only resources that are pre-allocated to it. Formerly known as xdg-apps, Flatpaks are were originally authored by Alexander Larsson, and eventually got taken on by the Flatpak Team. Flathub is the repository for flatpaks and is quite user-friendly on getting setup. Similar to Snaps, a user must configure their machine to be able to use flatpaks, and then the same programs can be used across any Linux system.

AppImage files are another type of pre-packaged and have been around for quite some time. Appimages differ from the previous two types of contained-packages however, because AppImages do not actually need to be installed. They only need to be downloaded, made executable, then the program can run and remain contained and available with all of the necessary dependencies built-in.

All this is just to say that compatibility issues with Linux applications on desktop environments is becoming a thing of the past. More than likely the application is supported by any of these development groups and if it is not, there are ways to submit applications to become available on such. Desktop Linux has come so far, even in the short time that I have been enjoying it. I firmly believe that there is a Linux distribution and Desktop Environment for everyone out there and having access to applications you love is vital to the user experience.

I hope you learned something today. Feel free to explore these Snap/Flatpak/Appimage stores and see if there is anything you want to add to your machine.

Be bold, try something new. As always, stay curious.

Leave a comment