Table of Contents

Which Linux distribution should I use?

Which Linux is best depends on what you need. Every Linux distribution uses the Linux kernel, because of which fact all distributions are bundled under the name of “Linux”. They all have the same software available. The main differences in order of increasing importance (IMHO) are:

Which one you choose depends on many factors such as:

For desktop users, it is possible to install several distributions and choose the one to boot each time. A more convenient tool, but not without drawbacks, is to to use a tool like VirtualBox that lets you run virtual machines within a parent/host machine.

My brief summary of Linux distributions that I use is this:

Gentoo

Gentoo is the most technically advanced Linux because its package manager builds software from source code that is optimised to the hardware and according to your desired features.

The base Gentoo install is very lean, similar to a minimal RHEL installation. From there you decide which packages to install, and when you are finished your desktop or server is the fastest (most lean and optimised) and most up-to-date that it can possibly be.

Gentoo is my favourite, the one I use every day and am using right now, but it is the hardest to learn and to maintain. Once you are an expert you can install a new server (without graphical desktop) from scratch in a day or a new desktop computer in two, mainly because it takes a long time to build everything from source code. If you are building multiple machines you can just build one finished machine and easily replicate it by just plugging hard disks into USB adaptors and using basic/simple tools like rsync or dd.

Sadly, I have seen rude behaviour in Gentoo help forums that I do not see in other distibutions' forums that I attribute to a superiority complex. These rude people are a minority, but I think they negatively impact Gentoo's acceptance by newcomers. Therefore, I have accepted that to use Gentoo means you either need a be prepared to suffer such treatment or else limit yourself to reading other people's questions and, if you can't find anyone else asking what you need to know, then just figure it out yourself.

Linux Mint, Ubuntu, Debian, etc.

Linux Mint, Ubuntu, and other variations of the Debian Linux distribution are among the easiest to get running. The installation is attractive and clear (at least in English), giving a good first impression. These distributions are typically well supported and have a large software selection as standard. The software versions are not be as cutting-edge as Gentoo, but more current than Red Hat.

Linux Mint seemed to really take off when Ubuntu starting forcing people down the Gnome 3 path, dramatically changing the desktop around 2011 or 2012, and started having horrible problems with version upgrades. I saw a lot of people get frustrated and walk away from Ubuntu back then, including me. When Linux Mint offered the old Gnome 2/Mate desktop along with KDE, Xfce, and others it gained popularity quickly.

The worst part about Ubuntu is major version upgrades. Minor version upgrades are fine, but when they do a major version upgrade (i.e., from 12 to 13) it always seems to break things and upon reboot leaves me at a command prompt trying to figure out why X won't load or loads with settings messed up such as using fonts so tiny that I can't read anything. For this reason, a lot of people will avoid major upgrades as long as possible and do a full system installation when they decide to upgrade. I put my “home” directory on a separate partition so that the entire O/S can be erased and reloaded while keeping my home directory and desktop the same.

There are many forums where you can get help, including from the Canonical company itself, and the postings I've read all have been friendly and helpful.

For a desktop with GUI Ubuntu could be a good choice, but if it breaks the ease of use will suddenly go down the drain. Linux Mint has been a much more stable desktop experience from my perspective, so I would definitely recommend that over Ubuntu.

For a server I can't see any reason to use Ubuntu or Linux Mint, even though Ubuntu offers a server version.

Debian is better suited for servers than Ubuntu. You can start with Debian and build the same desktop as you would get with an Ubuntu installation, but Debian leaves more of the installation choices up to the user. Even so, I haven't run into any Debian servers in my work, and I'm not inclined to build any.

Arch, Manjaro, Antergos, Endeavour

Arch Linux does a good job of being “lean” while offering pre-compiled (binary) packages so you don't have to build them yourself, as with Gentoo. It is a nice compromise for people who would like the benefits of Gentoo but don't want to spend the time or gain the expertise to build and maintain packages from source.

Arch uses a “rolling” upgrade model. The commercially-oriented distributions—largely IBM/Red Hat, Oracle, and Ubuntu—offer minor and major updates on a schedule. Their major updates can (and often do) break the O/S or result in major unexpected changes in applications or methods of operation. In contrast, Arch (like Gentoo) incrementally updates what you have. Ten years later your server (desktop software aside) can still be working like it always has.

My first awareness of Arch was around 2005, but back then I was quite happy with Gentoo. The first Arch-based distribution I used was Manjaro: it had excellent support for a wide range of laptop and desktop hardware around 2012, but after a few years I started having trouble with updates that caused so much trouble that I gave up on it. Around 2017 I discovered another Arch-based distribution named Antergos and loved that it offered such cutting-edge software and was so easy and reliable to manage and update. Sadly, that project got discontinued in 2019, but the underlying Arch Linux foundation is such that it is possible to switch from Antergos back to the mainline Arch mirrors without little trouble, and everything keeps working. That's a huge benefit to Arch; I don't know if any others can move so easily from a branch back to the mainline like this one did.

There is another Arch-based distribution named EndeavourOS that launched when Antergos ended. I can't help but wonder why they chose “.com” versus “.org” since endeavouros.org is not registered, but their about us page gives no indication of commercial support, so we'll just have to wait and see where they plan to go with it. The nice thing is that if I install Endeavour I can change the mirrors afterwards to point to Arch, so regardless of whether this group keeps going or ends up like Antergos did I will still have a working desktop.

The Arch main-line is very basic and leaves all the configuration to the end user, and each of these off-shoots of Arch focus on providing a pre-configured desktop environment. This is different from Ubuntu and Red Hat, which offer a complete desktop solution that others have modified, and I think this is the reason why Arch is so stable and why it is possible to shift from one of the branch distributions back to the mainline Arch distribution.

My conclusion after a few years of use is that Arch is a suitable foundation for desktops in an organisation because it is easy to maintain and has a solid foundation that has stood the test of time and has a great knowledge-base wiki.

For servers I feel that Gentoo is the king and nothing tops its technological benefits, but if I had to deploy a hundred servers quickly and hand their maintenance over to some people who were not developers, and if I did not need to go with Red Hat or Ubuntu for compatibility with application software or due to the preference of the people whom I am serving, and especially if having the most up-to-date software was a consideration, then Arch ends up at the top of the list. I would install a few to test the application and go from there.

Sabayon

Sabayon is a Linux that takes Gentoo's technical advantages and tries to make it as friendly as Ubuntu. They do a very good job of making upgrades smooth, but occasionally there are upgrades that cause problems (although less than Ubuntu and usually with less serious impact on your system). If you want to learn some things about Gentoo but want the “user friendly” aspect of Ubuntu, Sabayon is a good choice. The negative part of Sabayon is that there are fewer people using it so you will not have millions of people you can go to for advice like you can for Ubuntu or Gentoo. I believe there are Sabayon forums, but I have never used them.

Red Hat, Oracle, CentOS, Scientific

All of these distributions derive their packages through Red Hat channels. My impression of the differences are:

SuSE

I started using SuSE in 1998, long before Novell bought them, and found it to be an excellent distribution. Their YAST and Zypper package management tools are well regarded by some people. Since I switched to Gentoo in 2004 I have not found much use for SuSE and have had difficulty getting it to work with all of the hardware in my laptops whenever I want to check it out.

As a server foundation, without the GUI, it seems a fine choice. It is purely SuSE's desktop that misses the mark, so if you don't need the GUI then SuSE is worth considering. I know one fellow who thinks SuSE's package manager is the best in the business, and it is supported on cloud platforms as well as by oVirt, so as a server distribution it seems to still be in the running.

Solus

I installed Solus recently to see what it was like. It has a clean appearance, a desktop called “budgie” that is a bit different from others, and has good hardware support for everything in my system. The available packages was quite limited, so I could not find a benefit to using it at this time, but I left it installed to explore further in the future, to see how it matures.

Linux From Scratch

The Linux From Scratch (LFS) has intrigued me for years, since before I started using Gentoo. It is a book, not a distribution, that tells you how to build your own Linux system. What a great educational resource that is!

Install them all

Hard disk drives are so huge these days that you can put a 2TB or larger drive in a laptop and put as many varieties of Linux on it as you want to try or have occasion to use.

The GrUB version 1 (actually 0.97) boot loader does a good job of managing all the installed operating systems. The newer GrUB 2 is more when updating kernels, but its configuration and maintenance is more complicated than the old original so when something goes wrong it takes much longer to fix. Also, Grub2's grub-mkconfig just makes a mess of the menu when there are multiple distributions installed. Each distribution puts their choice at the top of the list, and give you the choice of booting every distribution with every possible root partition and kernel combination, which makes it very hard to find the one that actually works.

Thus, I still use GrUB 0.97. This version is unfortunately dropped by all distributions, so you'd have to have a computer with it already installed (and be sure to never update it) or else compile it yourself. I have a separate boot partition and do not let other distributions mount that partition during installation. In Gentoo I masked out Grub2 so I can perform updates without worry. When my other installed distributions update a kernel I just manually edit the grub.conf/menu.lst file myself. When I install a new distribution I do not let it mount the boot partition and do not let it install a boot loader; then I manually add its kernel and menu item to my grub.conf file. If another distribution write a new boot loader I just boot into Gentoo2), mount your Gentoo partition, run grub (version 0.97), then just do the root and setup commands to get things back as they were.

Gentoo still supports LILO, whose development was discontinued in 2015.

For reference here are the old Grub0 Gentoo package files:

1)
RHEL struck me as R-Hell. I often wondered how they could have settled on such an ugly acronym for a product that was not targeted at gamers
2)
Either boot into the installed Gentoo or use a USB stick if the menu is so badly messed up that it won't boot Gentoo from the internal drive.