Which Linux distribution should I use?

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 software they install as “standard” (easy to change)
  • which software they make available through their software channels (harder to change)
  • which features they configure install as “standard” (can be hard to change)
  • the package manager used for adding and removing software (very hard to change)
  • how stable the core distribution is (obviously the most important thing)

Which one you choose depends on many factors such as:

  • How many servers or desktops do you need to build and support?
  • How skilled are the people who will be maintaining them?
  • How important is security?
  • How important is stability?
  • How important are new features?
  • How important is compatibility with other systems?

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 has the ultimate blend of lean + advanced + stable + secure. It always among the first to get the latest security updates (often the very day the author publishes them). It has the ability to fine-tune the server to run as lean as possible, like no other Linux distribution, which results in improved speed, security, and stability. A Gentoo server running continuously and also regularly patched for 4+ years is not uncommon. The down-side is that Gentoo requires the most time and technical skill to maintain. It is an excellent choice for servers if your company has skilled staff to maintain it. As a testimony to Gentoo's excellence, ISP Ltd. manages Gentoo servers for itself and its clients.
  • Arch is one of the easiest/quickest to install, has a solid team foundation, has the most cutting-edge software of any binary distribution, and has good community support to fix issues. I find it to be an excellent choice for home computers. The one caveat is you need to update it frequently, at least monthly, and this usually requires a reboot. In large enterprises this will likely not be practical.
  • Red Hat/Oracle/CentOS is the most common Linux distribution on servers, but it's software is often really old and if it's not something hugely popular it may have bugs that don't get fixed for years. The positive side is that server updates are rare so a quarterly update & reboot cycle is practical, which often appeals to large enterprise.
  • Debian/Ubuntu is likely the most common desktop, but major version upgrades (e.g., from version 12 to version 14) often cause big headaches so many people after one difficult upgrade stick to the same major version for years, which means they stop receiving security updates. When running with CLI only this is much less of an issue.

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:

  • Red Hat is the commercial (i.e., with expensive support) Linux targeted at large Enterprise. In order to keep things stable, Red Hat does not update software very often except for bug fixes. As a result, the software packages tend to be quite old (most packages seem to be several years out of date). Red Hat stopped offering public software repositories quite some time ago, so if you use Red Hat the only way to keep your software updated is to purchase annual subscriptions or build packages yourself from source. In July 2019 Red Hat was acquired by IBM.
  • Oracle Linux seemed in years past to be simply a copy of Red Hat, but these days it is more unique. It takes Red Hat's packages, adds their own, and offers public repositories so that you can run an Oracle Linux server without buying a subscription. Oracle offers subscriptions, much like Red Hat does, but has a wider range of offerings. If you want Red Hat but don't want to pay their subscription fees from the start, but want the option for support later, Oracle is worth checking out.
  • CentOS builds and distributes the same software as Red hat in a community version of RHEL that is available from public repositories. In 2014 CentOS was acquired by Red Hat, which means they are also owned by IBM, but so far has remained freely available.
  • ScientificLinux is a USA government-sponsored project that builds and bundle the open-source Red Hat software that focuses on support for scientific research, so its default blend of software is different than CentOS. Of course, you can install whatever you want after it is loaded, so it can end up being essentially the same as all the others. Scientific Linux threw in the towel in 2019 and decided to switch to CentOS (which is owned by Red Hat, which is owned by IBM).
  • Fedora is the former Red Hat Linux, an effort to put the focus on an Enterprise Linux offering that was started some time around 2003. I remember when they announced Red Hat Enterprise Linux, thinking that RHEL was a horrible acronym1). The description of the project tries to create some distance from Red Hat (now IBM), even though a hefty 35% of its contributors are Red Hat/IBM employees. The Wikipedia article downplays this fact, but 35% is huge! Red Hat/IBM obviously has a strong influence on the product's focus, which really makes is just another Red Hat/IBM offering where they get people to test their software and techniques for free.

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.