How to choose your Linux distro

A short and comprehensive article on how to choose your Linux distribution.

How to choose your Linux distro

Title: "How to choose your Linux distro"
Date: 2018-02-07 15:30:38 +0200
Summary: "How hard could it be to choose your Linux distro? Lets find out..."
Categories: articles
Authors: Alexandru Calcatinge

Introduction

I did a lot of distro hopping since I use Linux, and I must say that I still do that now. How to choose your distro actually? If you search the Internet, you will find lots of articles and forum discussions on this matter. The basic line would be to choose the one that perfectly fills your needs. But how would you do that if you are a beginner? How would you know what would best suit you?

This article will not be a comparative or distro review, I will only emphasize on my particular case with Linux.

How I choose

As I said before, I still do a lot of distro hopping. This is not really a bad thing, as you are constantly testing new things. Following are my thoughts on choosing the Linux distro. I must admint right from the beginning that I am not a "follow the flock" type, therefore I am not that fond about Mint and Ubuntu anymore.

In the beginning

In the beginning there was SUSE Linux Enterprise Desktop, a distribution that came installed on an HP laptop that I bought. My first encounter with Linux. It was intimidating at the beginning, but slowly started to get the grasp of it. Nevertheless, I could not find much help on the internet with regard to SUSE, as most of the forums were talking about Ubuntu. So I gave SUSE up. The main reason I did not stick with it was the lack of online help. This was about ten years ago, but now things are a little bit different and openSUSE has a little bit more support then ten years ago. But, nevertheless, even though I used it for a little time at the beginning of my Linux journey, SUSE still counts as my first Linux distribution.

Then I started using Ubuntu, just because I was at the beginning and I could find answers for any kind of problems I could encounter working with Linux that were written for Ubuntu. Thus, online support was the reason to start using Ubuntu.

I used Ubuntu for a couple of years, then I started to use openSUSE again, after I regained confidence in my Linux capabilities. Therefore, if you are new to Linux, you will manage to start your adventure quite well with Ubuntu. Now, if you ask me, I don't find Ubuntu that attractive anymore, but this is mainly because of the fact that I discovered more stuff about how Linux works using other distributions.

In the middle

I kept using openSUSE for a very long time and did not need to change to another distribution. Even openLARK came to being as a need for comprehensive help for openSUSE users. But, as I moved the website around, from server to server and from Wordpress to Drupal and then Jekyll, the content I first wrote kind of got lost on the road.

Two years ago I started the LFCS course using openSUSE, which was great. I also started going to the local SUSE Expert Days and Micro Focus meetings. SUSE was the only distro that felt real to me. The only one that gave me the opportunity to meet people directly involved. The rest, were only bits and bytes on my computer or some internet websites.

Anyway, I would have kept using openSUSE, but I started a new course in Bucharest, and they were using Ubuntu/Mint for the lessons. Thus, I had to start using Ubuntu again. I wasn't satisfied with Ubuntu mainly because of their decisions with regard to the Desktop Environment. Nevertheless, I was not satisfied with Ubuntu derivatives either, especially Mint, so I had to decide once more. I must tell you that I kind of neglect Mint as a distro, because I mainly like to work with the "first tier" distro, not some "third tier" ones. Don't get me wrong, Mint is a great distro, especially for the newcomers to Linux, but I don't really like their approach.

Thus, I started using Ubuntu again, but kept openSUSE on one of my systems. When it came to the final project, I did it twice, once in Ubuntu and once in openSUSE. It was that time that I once again realized that Ubuntu had a strange approach to configuration. First, openSUSE had, in my opinion, a better approach to firewall and iptables rules. Way better than Ubuntu. Then there was a different approach to Apache in openSUSE, and I liked it better than the one in Ubuntu. One more reason to tell myself that I should stay with openSUSE.

But the biggest issue is that, when you do look around, you see SUSE and openSUSE are close to non-existent in the modern Linux work environment.
Lets take Docker for example... They don't have official images for openSUSE for the community edition, only SUSE for enterprise edition. This is not cool. Then, you come to realize that SUSE and openSUSE are not really identical, even though they say that they use the same core as the enterprise edition.

But, don't dispare, as there are solutions for Docker and openSUSE.

Or, if you would like a Digital Ocean droplet, you don't get the option of setting up openSUSE, as you only have Ubuntu, FreeBSD, Fedora, Debian and CentOS. Only Linode offer openSUSE. Hetzner used to offer openSUSE for their VPS, but for their cloud instances they only offer Ubuntu, Fedora, CentOS and Debian. So, this is a big issue if you like openSUSE.
Lets take Raspberry Pi for example. Even though openSUSE team have a 64bit Rpi3 version, it does not appear on the official Raspberry Pi website as an alternative OS to Raspbian, only Ubuntu MATE, Ubuntu Snappy Core and some others, but not openSUSE. So, you are out of luck on this one. If you want openSUSE on your Rpi3 you should search for their dedicated image on their website or Google.

For more information on openSUSE and Raspberry Pi 3, follow this link!

Nevertheless, one thing that I like about openSUSE is their community and its involvement in many great open source projects, like OBS, openQA, kiwi, yast and the Tumbleweed rolling distribution.

In the end

In 2017, I became a Linux trainer myself, at the same school that trained me. Therefore, I had to use something like Ubuntu/Mint to teach the new students. Thus, as I did not want to use any of them (I will tell at the end why), I decided to give Debian a try. I was really impressed, as I only tried Debian like 9 years ago and I was not impressed at all. I did not even manage to install the required drivers back then. That was a real turn off.

Thus, Debian Stable was my primary distribution for several years. I also installed it on my cloud instances. It worked flowlessly.

Nevertheless, starting this year, I decided to give the Red Hat family of distros a try. Therefore, I installed Fedora Linux Workstation edition on my laptops and NUC, and CentOS on my office desktop and Cloud instances. It was my first try with those distributions, and I must say that I am really impressed. Especially with Fedora, which has the latest and greatest packages available. CentOS has more outdated packages and this will give you a little bit of headache when you need to run newer packages, like for Ruby or PHP, just to name a few. But... you have the entire Red Hat enterprise ecosystem to your fingertips, which is a great thing. Anyway, I never gave up on Debian, as I am always using it on my systems, in the form of stable or testing.

Thus, what I choose?

Well, is complicated...

I have a strict policy on choosing a distro. First, it has to have a strict MAC/RBAC implementation, to have a strict policy on Security Bulletins and security patches implementation and to support UEFI and SecureBoot.

For personal workstation

For personal use, as a home user and occasionally Server administrator, I would go with Debian Stretch on all my systems, including the cloud. This would make everything much more simple, as I have all the packages I need on a desktop/workstation and also on my server. BUT, Debian fails at my first and third requirements as it does not support SecureBoot and does not have AppArmor activated by default (AppArmor and SELinux are MAC's - Mandatory Access Controls). But you can install and use it, and I will just might show you how in an article some day.

Nevertheless, Debian gives you the advantage of a vast ecosystem of different distributions. You have the original Debian, then you have Ubuntu and Mint with all the spins and flavours, you have Kali, Tails for forensics, and then you have Raspbian and Ubuntu Core for Raspberry Pi 3. For servers you have Debian Stable and Ubuntu LTS. You also have KDE Neon from the KDE community based on Ubuntu. Therefore, you have much more then the RPM ecosystem is offering you.

Besides Debian I am still remaining with openSUSE and the Red Hat family.
OpenSUSE has AppArmor activated by default and supports SecureBoot. Thus, openSUSE would be my first choice, but to be honest, I really enjoy Fedora! You have the latest and greatest and you have the ecosystem of both worlds, the leading edge and the enterprise. Now, I don't say that you should use Fedora on your server, even though you could, but it is very similar to CentOS, it's bigger sibling.

For Raspberry Pi

Besides Raspbian, I wrote early that openSUSE has a RPi3 version - this being the only 64bit version available for RPi3. Besides those, Fedora and CentOS also have versions for RPi3 available. If you would like to try them, please follow the links below:

Fedora for ARM


CentOS ARM


Or for Raspbian and openSUSE use the following links:


openSUSE for RPi3


Raspbian

For development

Also, for a development workstation, I would use Debian Testing, openSUSE Leap or Tumbleweed, Fedora and why not, CentOS. Fedora gives you all you need in terms of latest development packages and versioning. Also, Fedora is the upstream of all things Linux. On the other hand, openSUSE gives you stable and rolling versions, depending on your needs. Debian Testing is a great distribution is you want to have a rolling distro on the DEB side, offering latest "stable" packages that are still tested and might end up in the final "stable" distro after two years. CentOS is offering you a stable platform for enterprise development, and it deserves your attention and interest.

For Small Business

If it would be to use Linux on a small business, I would go with CentOS or maybe Debian Stable. Both gives you the stability and security that you need in a Server.

I would have said openSUSE Leap, but their minor release versions are supported for only one year and a half. For example, version 42 is supported for 36 months, but the minor version 42.3 is supported only for 18 months. This is too little for a server distribution

My present setup

Now, I have CentOS installed on my primary NUC workstation, Kali Linux installed on my Thinkpad X201, Fedora on my Probook 430 G5 and CentOS on my Sony Vaio ultrabook and CentOS for ARM on my Raspberry Pi 3.

On the Cloud I have CentOS installed, and on my Office desktop I have CentOS installed as a workstation.

Learning and Certification

If you plan on getting your certification in Linux Administration or Engineering, there are multiple possibilities out there.

The first: Red Hat

Red Hat Certified Administrator, Engineer and Architect are the best known certifications in the Enterprise Linux. Besides Linux certifications, they have Cloud specific ones using their own tools. You can also train using CentOS for this one, the free clone of RHEL.

The second: SUSE

SUSE is another well known Linux vendor, that has its own Enterprise certifications in the form of SUSE Certified Administrator, Engineer and Architect. They also have Cloud specific certifications too.

Third: LPI

There are also Linux Professional Institute certifications, that are LPIC 1, 2 and 3 similar to Administrator level, Engineer level or Architect level. Those are distribution agnostic.

Forth: Linux Foundation Certifications

There is also The Linux Foundation that offers Certifications in the form of LFCS for administrator, LFCE for engineer and also specific Cloud certifications too. They provide you with the option of taking the certifications on CentOS or Ubuntu/Debian.

Kali Linux Certified Professional

Another well established Certification provider is Offensive Security, the entity behind Kali Linux. They olso provide a free online course and an official handbook called Kali Linux Revealed (details below in the documentation section).
Thus, if you plan on getting a job in some big corporations, you should go with the big name providers of Linux certificates.

Documentation wise

In terms of documentation, I must say that SUSE and Red Hat are the best there is in Enterprise Environment documentation wise. You can find lots of documentation on their websites, that will help you on your Linux learning path. You can also try the forums, or other websites, but they will only give you a strict answer most, without even explaining what it means. This is not the way to learn, in my opinion. You need to learn what every command and option does, and the official documentation from SUSE and Red Hat will help you a lot, trust me. You will learn also from courses like the ones Linux Foundation or Linux Academy have.

SUSE documentation


Red Hat documentation

Nevertheless, Debian and Kali Linux have some great documentation too. There are lots of books on Kali Linux penetration testing, and also on Debian, but what I would like to emphasize on are the two "official" books that some Debian developers that are also envolved in Kali Linux have produced. Those two books are:

Debian Administrator's Handbook


Kali Linux Revealed

My advice for you

The Linux path would be, in my opinion, this:

  1. start with Mint or Ubuntu if you are new to Linux
  2. experiment with Debian after you feel secure with the former ones
  3. start playing with the RPM distros like openSUSE, CentOS and Fedora (even if you don't end up using them full time)
  4. continue to use all of them, don't settle only on one!!!!
  5. if you feel extra secure with your skills, you can also try Arch, Slackware and BSD family, just for fun
  6. if you want to obtain certifications any of the major players would do
  7. for Penetration testing use Kali Linux (based on Debian)
  8. keep an eye on other distros too

Don't be too committed to only one distribution or ecosystem and don't spend too much time in the Graphical User Interface. Spend as much time as you can in the Terminal, this is how you will learn Linux and System/Server Administration.

As I spoke about GUI, this is another sensitive matter... Which GUI to use? Well, I love KDE and used to use it a lot with Debian, openSUSE and even Kubuntu and KDE Neon. But now I am using GNOME, which I really came to like. As I spend most of my time in a Terminal and edit the files with vim, I don't really need any kind of GUI at all. In the GUI I most frequently use the Web Browser (Mozilla mostly but also Chromium) and the test editor Gedit or Geany IDE. Every now and then I use Gimp and Inkscape for graphics and image manipulation.

What to choose?

Now, you should choose whatever you like most. Whatever you choose, you should run all the other relevant distros in a Virtual Machine. Thus you will have the chance to exercise will all of them and be prepared for what the real world would throw at you.

Enjoy playing and working with Linux!

Cheers!

Cover image credit: Photo by Lorenzo Herrera on Unsplash