Linux is still pretty fragmented as an ecosystem. Not only are there countless distros or distributions, but also a number of different ways to get apps installed on your system.
In this post, we shall be looking at some of the most popular ways of installing and getting apps on your Linux system, talking about the pros and cons in a bid to get you more informed.
Worth noting is that, you can easily install any of these app distribution methods on your Linux regardless of your distro.
Perhaps one of the oldest ways to install apps on your Linux, this method involves adding the app developer’s repository to one of your system’s app sources. This will then allow you to install apps directly from the said sources and even get app updates from the same.
This was a pretty straight-foward way of installing apps as it took out the guesswork that came with compling the code for yourself and installing the app on your system, something that many, geeks and noobs alike, might not be very used to.
The biggest downside to PPAs is of course, trust. Adding some random developer’s repository as a source for apps on your system can be risky as these developers haven’t exactly been vetted and nothing stops them from adding malicious code to their software.
So most Linux apps need a few packages to be present on a system for them to run smoothly. These packages or libraries are called dependencies. These can, often times, be shared between various apps if your operating system doesn’t already have these present.
The absence of one or more dependency needed by an app means that it just won’t work. Luckily, there are pretty simple ways of fixing this like sudo apt-get install -f. Seeing this issue, Canonical, Ubuntu’s mother company decided to so something about in back in 2016.
Snap solves this dependency issue by including the necessary dependencies right within the app, instead of pulling in those dependencies into the underlying OS through a traditional application install process like apt-get.
The pro for this method is of course, the apps are less likely to break on installation because they’ve been built to come with everything they need to run.
This strength is also its greatest misdoing. This, because Snaps take up a lot of space on your system as they come with everything they need and might not need your system’s libraries. They also tend to start up a little more slowly compared to apps installed using other methods.
Also, being fronted by a corporate means that it might not enjoy a warm welcome. Linuxers are hugely against the establishment.
DEBs are files that are managed by the Debian packages management system. Think of these files as executables, kinda like .exe or .msi on Windows or .DMG for Mac users. These are simple to install and work like these other mainstream operating systems. Simply download the file, double click and accept the terms and it is installed.
Downside to this method is, you have to download the packages and install them manually. No one guarantees that the source you’re using for this app is secure. To be fair, this is also the argument against the other operating system using these installers.
AppImage is a format for distributing portable software on Linux without needing superuser permissions to install the application. Essentially, you download the AppImage and it comes with everything it needs and doesn’t leave its ‘container’.
These might be the most ideal method of app distribution but they are a little hard to integrate into the system. This means that they often stick out visually. They don’t follow the system theme, design language, font so they often look out of place.
Perhaps every Linuxer’s favorite poster-child right now, Flatpaks borrow some of the strengths of these other Linux app distribution methods while minimizing on the downsides everyone hates about these other methods.
Flatpaks offer some sort of sandbox environment in which users can run application software in isolation from the rest of the system.
This method also allows the developer to package their application once and have it available across various distros instead of having to build and tweak for each flavor of Linux. This also makes troubleshooting a lot easier.
As such, Flatpaks often have the latest versions of apps, an issue that’s been dogging Linux distros and its distribution methods for a while now.
The Flatpak sandboxes aren’t as closed off as the other methods however. Flatpaks are able to reference the system’s runtimes and this allows them to only ship with the dependencies that they’ll need, the ones that are too old or too new for the application to use.
There are also concerns surrounding the security of these apps as they are also pre-compiled binaries.
This kind of fragmentation in Linux app distribution can be confusing for anyone trying to get into the whole Linux ecosystem, sometimes even intimidating. However, a more helpful way to look at it is that you always have somewhere to look for your apps.
This is because these methods are usually interoperable across various distros. Most popular apps are also available across various distribution methods so it doesn’t often matter which is your preferred method.