Before I became a fulltime Linux enthusiast, I was a genuine Apple fanboy. Yes, I was one of those, the one that couldn’t shut up about the fact that Mac OS was the best operating system in the world and everyone who used a different one was a fool.
Needless to say, I’ve changed my tune these days and even on the preaching side I toned down a lot, simply because using Linux taught me to respect the people who are developing software and each one of them deserves recognition for their work by having an enthusiastic crowd using and giving feedback on their software.
That is one reason I toned the preaching down, the other reasons are a bit more complicated and I’m sure you’ve encountered the same problem as I do.
Suppose you’re at a party and you’re talking to someone and somehow the conversation turned gradually in a computer subject.
How do you explain the freedom of choice Linux has in a positive and clean way to a non-technical computer user, without overwhelming them with info that will explode their brains?
Whilst being in the mids of your attempt to casually explain Linux, you realise that explaining the abundant of distro’s only will lose the other person’s interest and soon you’ll discover that they are shifting their eyes to someone else in the party, only to create a lucky and polite escape from this computer weirdo who, apparently never leaves the house.
Windows vs. Mac
In the past when someone said to me that the way Windows handles their updates or looking for the right driver irritated them, I simply answered (in a somewhat obnoxious way) that Mac didn’t have that problem. Although obnoxious, it was a simple and straightforward way to explain the difference between the two operating systems. Wouldn’t it be simple to explain that there’s Linux and you can simply install apps in it hassle-free?
A distro-blind package manager
For now, Linux has a distro choice in abundance with each of them using their own unique package manager, another touchy subject that is hard to explain to an intermediate Linux user let alone to a non-technical computer user.
The Linux community, however, is showing signs of collaboration to try and make Linux look like a more unified platform.
Gnome and KDE recently bonded together and there are three mainstream parties that are trying to unify all those distro’s, by creating a distro independent package manager.
Ubuntu is the Devil
I’m fully aware that these package managers are surrounded by controversy in the Linux world and especially in the Arch world. The sound advice you’ll hear is: ‘Stick to the package manager that came with the distro you mindless Foccacia!!!!’
And then there are the freethinkers on this subject, but they aren’t making the choice easier either. Some prefer AppImage because of the way it works, the other one prefers Snaps because of the app choices and the last one prefers Flatpak because Ubuntu is the Devil in the Linux world.
EndeavourOS as an open platform
As you know EndeavourOS ships with just the bare essentials. That can be annoying at first sight, but we actually give you the opportunity to create “the perfect distro”. Even though we’re Arch-based, you don’t have to use the Arch repo and the AUR to install your favourite app if you don’t want to. You’re free to use one or maybe all of these three independent package managers, without being called a mindless Foccacia.
In fact, in my opinion, we should salute these developers in trying to create a bridge between the quilt-like landscape called Linux. They are trying to make it easier for the upstream app developers to create a universal Linux version of their app. So this article is merely to give you information on the differences between these three package managers, it certainly isn’t my intention to present it as a good, better and best article.
As I explained earlier these package managers have the same goal in creating a platform or tool so apps are working cross-distro.
AppImage is a universal package that works on every distro, without having to install it as a root user, in fact, the app technically doesn’t get installed on the system because it doesn’t touch the base system. It is a package that runs the app instantly because it contains a compressed file from the app with all the dependencies included and therefore it can run from any folder on your computer or even on a Live ISO.
When you download an AppImage, it usually is stored in your download folder, you can keep it there but it is advisable to create a separate folder for it to avoid cluttering the folder
How it works
To make the app work in your system is easy, just download the app from the AppImageHub page, move it to a new folder and make it executable.
To make it executable, you can type in the following in the terminal
$ chmod a+x package_name.AppImage
To run it, you can double click the icon or type the following in the terminal:
That’s it, the app is running!
How to update the app
Most AppImage apps have either a manual or automated update function build-in, but there some that need some intervention with AppImageUpdate, for instructions click here.
How to remove an AppImage
Because AppImage doesn’t touch the system, you can simply delete the package in the folder and also delete the desktop file, if you created one.
Snapd vs. Flatpak
I’ve read a lot of articles on the two sandboxed platforms and besides the two official websites, most articles I read upon the subjects were heavily built on the blogger’s or journalist’s preferences or their strong opinions on Canonical and Ubuntu, in fact, I couldn’t find a proper comparison without noise. I’m sure they exist, but I wasn’t bothered anymore to look further after reading a handful of these articles.
In fact, the published material discouraged me to use either one of them and that can’t be the meaning of this all. So here’s my attempt to bring you the facts about the two without the noise and which one you decide to use is up to you. That’s what EndeavourOS is all about.
Like AppImage Flatpak and Snapd deliver an app with the dependencies built-in, without effecting the core-system. The difference between these two and AppImage is that the app and its dependencies are operating in a container called a sandbox. The purpose of this sandbox is next to the fact the app is “distro blind”, it is also to create an extra layer of security in case the app has a vulnerability, in that case, the system won’t be affected by it.
This will make the package larger than when you install the native package version, but especially AUR package updates are heavily depending on the enthusiasm the maintainer of that package shows in bringing the latest and greatest, while in the case of Flatpak and Snapd there’s a dedicated team behind it, also the package updates automatically.
Without going into it too technically, the differences between the two aren’t that big, in fact, I’m only focussing on one major difference to make it a bit more understandable.
Snap is created by Canonical and is designed to use the Snap package store. The Snap package store is developed under Ubuntu and gives Ubuntu main control, although other parties can also provide contributions.
This is the main part where the whole controversy Snapd is surrounded with within the Linux community, but I’m not going into that and if you want to learn more on that, just search the internet but make sure to form your own opinion on it and try to read those without colouring your glasses.
Flatpak is completely open-source and therefore not as centralised as Snapd, so the packages aren’t coming from a central store. It has a more traditional approach and works with different repo’s.
Snap is built on server technology that also works for desktop solutions and mobile devices, while Flatpak is specifically designed for desktop use.
I know there are more in-depth differences, but for the sake of the length of this article, I recommend again an internet search on this subject if you’re interested, again try to not let those articles colour your glasses, there’s a lot of noise that surrounds this topic.
How to install
For Flatpak you can type this in the terminal:
$ sudo pacman -S flatpak
Restart the system and Flatpak is ready to use. To install a package I refer you to their instructions or you can use Bauh, a graphical interface to install AUR, Snapd and Flatpak packages, just type in:
$ yay -S bauh
For Snapd you can type this in the terminal:
$ sudo pacman -S snapd
After installing Snapd, enable and start snapd service using commands:
$ sudo systemctl enable --now snapd.socket
If you want your apps to be automatically updated from the store start/enable the snapd.refresh.timer.
$ sudo systemctl enable --now snapd.refresh.timer
Restart the system and Snapd is ready for action. For a full manual of the terminal commands, I refer you to read their instructions or you can use the previously mentioned Bauh.
Find the solution that speaks to you most
I’m fully aware that the information, I gave you on the three is very minimal, I just wanted to give you a simple handle to grasp on without directing you towards a specific solution.
All three solutions have reached an impressive level of usability, but all of them are also heavily under development, so each of them is facing their own issues. That is not a bad thing, if you are enthusiastic about either one of those, help the developers by submitting bug reports to bring the package managers to the next level, instead of uninstalling them and shout to the world how much it sucks.
All these three solutions are interesting projects and they each deserve respect for their attempt to build a bridge in the Linux landscape.Follow us: