DISCLAIMER! As I’m planning to try one of these distributions on bare metal quite soon, this article gave me the opportunity to look for the specific differences between them. Because of this, it is much more lengthy than usual and might go a little bit too much into some details that can seem irrelevant for most (normal) people. Those (normal) people can skip the package manager (‘Lose yourself’) part.
Free software is great. It allows for diversity. Indeed, while there is only one Windows and one OSX (we’re not speaking about versions here), there are hundreds of different Linux distributions. And you can even make your own; although this isn’t really useful unless you have extremely specific needs. For all the other, the existing offer should be enough. It may even look like it’s already too much: among both beginners and experienced Linux users, the choice of a distribution is a never-ending discussion; and there’s even that well known chronic disease called distro-hopping (okay, maybe I’m being a bit too dramatic here). So, we had to choose and compare two distributions… and I failed. So, this article won’t be discussing about two, but three of these distributions.
The main characteristic of the distributions we’ll be talking about, the one that sets them apart in the Linux world, is that they are rolling-release distributions. Unlike most other distributions that have periodic releases with major updates, and only security updates in-between, rolling-releases distros are updated constantly and don’t require big upgrades from time to time. Of course it has ups and downs, but that’s not the main point of this article. To sum things up, let’s say that the main upsides are that you can have constantly up-to-date applications (bleeding-edge, as they say) and since there are no big upgrades it doesn’t requires periodic maintenance (in other words, you don’t know when your system will break… okay, it’s the main downside).
The main rolling-release distribution is indisputably Arch Linux. We will be comparing it to two other, slightly less popular distros, namely Gentoo and Void Linux. Besides the fact that they are all rolling-releases, they are also good examples of the possible diversification there can be between Linux OSes, and exemplify the by-design modularity of Linux.
First things first: all of these distros are aimed at experienced users. Not only because of their (quite famous) installation process, but also because the more control you have over your system, the more you need to know what you are doing. If we don’t consider distributions based on them (like Manjaro, we’ll come back to it quickly at the end), the easiest to apprehend is probably Void (in my opinion at least); the TUI installer makes it quite easy (the only slightly harder part being the disk partitioning), and its overall (simpler) design makes it easier to understand (still my opinion; it can be different if you’re used to other distros with systemd for example). In terms of pure difficulty, I would say that Arch comes second and Gentoo is the most difficult to comprehend.
Another common factor between these three OSes is that none of them is backed by an organization: they are fully community-driven and they all hold high the importance and free software and the associated values.
As a side-note, none of them is based on another distribution either.
Finally, as those distributions aim at providing maximum control to the user, and as a consequence of their installation model, all three can be extremely lightweight. When you install the base system, it’s only the necessary stuff to get the computer working, and if you want a graphical desktop environment for example, you have to install it, and then you’ll have to choose what software you need. So in the end, you only install what you really need. In comparison, beginner-friendly distros tend to have a lot of applications pre-installed.
(You can skip this part.)
Okay, let’s dig deeper. And since it’s Linux, you will see, it can be quite a mess.
For starters, we can mention that by default they all use different init systems (the first process launched when the computer is starting; go read the Wikipedia, I’m not knowledgeable enough to explain it clearly). Arch typically comes with systemd, which is the one you find on most other distributions. Gentoo is using OpenRC, that was developed specifically for that OS, and Void uses the lightweight runit.
It’s also worth noting that the Arch and Gentoo wikis are huge and provide very qualitative and comprehensive documentation. And since it’s Linux, they can even be useful for other distributions in some cases. Extensive documentation is unfortunately something Void lacks.
However, the most important difference is that they have three different ways of managing packages. In this field, Gentoo is probably the most extreme one. Its package manager portage has a strong influence from BSD systems, and has the particularity of compiling everything from the source code; which means that users can pass some parameters to the compiler to optimize the software for one specific device and its specific usage (USE flags also allow users not to compile some unwanted functionalities). (NB. Some packages are distributed as binaries as well for obvious reasons: some people don’t want to recompile Firefox (quite a big app) every time it’s updated (often).)
Arch’s package manager is binary-based (like almost every other PM out there, except portage). The feature that is most often brought out by Arch users is the AUR (for Arch User Repository), that enables users to publish apps for other users. That way, it’s giving its users the best of both worlds: most packages are binaries in the official repos, but when you need something specific that is only in the AUR, you’re likely to find it; though you will have to compile it (an AUR package is basically the source code + a script to automate the building process).
While this sounds good, the question of trust can be raised. Indeed, the AUR isn’t an official repository, and any user can publish in it. While packages there are generally trustworthy, it’s technically possible that some of them might be malicious.
Void Linux adopts a different approach. Its package manager is actually divided into two parts: Xbps and Xbps-src. The former is a regular (yet fast and efficient) package manager installing binaries. But xbps-src allow, if I understood correctly, to compile software from an official source-code repository. I honestly need to learn more about it, but it seems like the safer counterpart of Arch’s AUR.
Since we’re talking about compilation, let’s quickly mention that unlike other distros that use glibc as a C compiler, Void gives the user the choice between it and Musl.
Okay, you’re probably as lost as I am. So, in the end, what are the implications of what we just saw above? What will I choose? I still don’t have the answer to that last question, but here’s what I found out so far.
Arch is the most popular of all three. It has an extremely large choice of packages thanks to the AUR. Those package are generally at the very latest version, with everything it implies, including a stability that stays correct as long as you pay attention to what you install, but as the bleeding-edge depicts, things sometimes aren’t perfectly polished and can be a bit unstable. Also, the AUR doesn’t seem that controlled, although it doesn’t look like a major problem.
Gentoo is probably the most hardcore rolling-release distribution. It gives the user as much control as we can imagine, and everything is compiled from source. This also means that software is technically more optimized thanks to device-specific settings and the possible tweaking. The other side of the coin being that compilation can be very long, especially with today’s heavy software and on lighter machines (eg. laptops). And the learning curve is quite steep.
Void focuses on simplicity, with somewhat of a suckless mindset. While Arch and Gentoo can already be extremely lightweight, if that’s your main concern then Void is the right choice. It’s also branded as a more stable distribution; maybe it can be a good compromise between always-up-to-date model of rolling-releases and the stability of fixed-release distros? The main downside I see with Void is that it has less users than the others, and more importantly less documentation. Also, some specific packages might not be available.
Guess who’s back? As promised, let’s quickly talk about Manjaro. This is a distribution based on Arch, that is said to be more user-friendly and less aimed at advanced users. While the initiative is great and a lot of people seem to like it (it has the advantages of Arch, but in a less scary form), I personally wouldn’t try it, or at least not yet. I installed it some time ago in a VM, and even without doing specific modifications to the system some things broke quite fast; it was quite disappointing overall. If I want to try an Arch-based distro, it will probably be either Arch itself, or Artix (and this article is way too long to develop about Artix).
On a final note, it’s interesting to see that several distributions are based on Arch, but there are very few based on Gentoo (right now I can only think of Calculate and Redcore; Funtoo is a bit different), and I don’t know any based on Void. Of course the more a distro is popular, the more likely it is to be forked.
As a conclusion, I would like to emphasize one core characteristic of Linux OSes, namely: choice and modularity (okay that’s two, but they go together).
For example, as we briefly saw, the three distributions discussed here come with three different init systems by default. But there are Arch derivatives without systemd, and Gentoo can be run with systemd. And this modularity (that is true in other parts of Linux systems as well) have a great consequence: it gives users the choice. Maybe most people will use the standard; but if they don’t want to, they can do otherwise.
…and some other that I forgot to write down.
I don't use arch, btw.