In this beginner introduction, Jethro Carr presents helpful tips for choosing the right Linux distro for your needs. He provides details regarding: purposes of different flavors, package management, stability, and personal experiences with numerous versions.

Ever since the first Linux distributions appeared, people have been having a hard time trying to choose the "right one" to use.
Many people end up asking "Which distribution should I use?" on the web, only to receive heaps of different suggestions (usually just the distributions that the posters like), a few arguments, and inevitably, the RPM vs DEB debate.

The problem is, that even after you filter out the posts to just the suggestions of distributions, you will find that you end up with just a big list of distributions, with usually only a comment like "This is good" to guide you in your choice.

This is a really bad way to choose a distribution, since you have no real advice on WHY you should choose distribution X over distribution Y. This article aims to give you the advice you need to choose the distribution that best suits you.

DISTRIBUTION PURPOSE

One of the key things in choosing a distribution is what you are using it for. Most uses fall into one of the 3 categories below:

Desktop usage.

Desktop and Server usage.

Server usage.

"Desktop usage" or "desktop distribution" is a very commonly used term to describe a Linux distribution which provides a GUI and is suitable for usage on desktop or laptop computers.

If you want a desktop distribution, some of the main requirements are:

Ease of adjusting settings - in the case of laptops, easy network changing is important.

Age of the software (you want the programs to be fairly recent)

Range of GUI applications.

If you are looking for a server distribution, you want to look for:

Software api stability - do updates ever change the way the distribution works mid-release?

Software life - how long will it get updates?

Security - servers are often open to the public - it needs to be very well secured.

EASE OF USE

A common recommendation of what distribution to use, is it's "ease of use". However, this is increasingly irrelevant when selecting a mainstream desktop distribution, as basically all of them have good hardware support and easy-to-use configuration tools.

Importance Rating: Medium

PACKAGE MANAGEMENT SYSTEM

Undoubtedly, you will come across a RPM vs DEB argument on the web sooner or later... so which side is right?

Well, there is no real answer, as both sides have valid points. However, from the perspective of choosing a distribution there is very little difference between them. The arguments between the formats which are actually valid relate to the workings of the package system, but in both cases, the user experience is the effectively the same.

For example - on a system using DEB, to install firefox, you can do:

$ apt-get install firefox

On a system using RPM you can do:

$ yum install firefox

Anyone spot the difference that makes one better than the other from a user perspective? I sure can't.

(Note: there are many other package managers out there, such as Gentoo's Portage. However RPM and DEB seem to be the most commonly used amongst mainstream distributions.)

Importance Rating: Low

SOFTWARE UPDATE LIFE

This is one of the most important things you must consider... and unfortunately, many people forget to consider this.

You need to think how often you want to upgrade to a new distribution version and what sort of product life is needed - some distributions (such as Fedora) have very fast paced releases (about every 6 months), but only a short update life (only supported until 2-3 months after the next version is released). These distributions have the advantage of having the latest & greatest features, however they can sometimes be a bit bleeding edge, and the fast update cycle means to keep your system secure you may need to upgrade every 6-9 months - which is fine if that's what you want - and many people want the latest software, so this is ideal.

However, I cannot stress this enough: DO NOT USE AN OUTDATED DISTRO AS A PRODUCTION SERVER!!

If you do, I will send bad people around to your house to smack you around the head until you understand this. Seriously, don't do it. Please. :-)

For example, I see a lot of people using Fedora as a production server - this is perfectly fine if you plan to upgrade to the latest releases every 6-9 months. However, if you don't want to upgrade a production box that often (and in most enterprise environments, this would be unacceptable), you need to look for a longer life distribution. Redhat Enterpise Linux (RHEL)/CentOS, Debian or Ubuntu LTS editions are some good choices, but there are others around too.

If you continue running a distribution after it's support life has ended, you risk opening yourself to security flaws - and the last thing anyone wants is your server increasing the production of spam!

The same also applies to desktop distributions, but to a lesser degree - it's a lot safer to run an end-of-life distribution on a desktop that's not connected directly to the web and open to the public, but it is still NOT a good security practice, and I advise you NOT to do this.

Linux is one of the most secure operating systems available, but it only takes one nasty vulnerability not getting fixed in a old system, for it to get exploited by a script kiddie.

Importance Rating: High

FEATURE STABILITY

Another important requirement of choosing a distribution, is deciding if you need feature stability or not.

Many distributions (particularly binary distributions) have a policy of not upgrading software in mid-release. So, if you're using fooprogram 1.0 and fooprogram 1.5 comes out with an important security fix, the distribution maintainers will backport that fix to the fooprogram 1.0 release, and rename it like "fooprogram 1.0-1".

Backporting is the method of taking a new features/bugfix/security update from a newer program and applying it onto an older version of the program.

This may seem a bit strange - why go to all that work backporting when they could just upgrade? The reason for this, is that if they upgraded to the new version of fooprogram, the features or the configuration might have changed. (redhat has a good example)

In a production environment, this can cause problems - particularly for servers, which are often setup to automatically update themselves - waking up and finding that apache has been upgraded overnight and due to a change in the way it works, your webserver isn't working, isn't the most enjoyable thing to happen.

Another reason, is that it makes it easy for 3rd party vendors to certify their product will work on a certain release of the distribution, since they know it isn't going to get changed.

Sometimes they don't backport - if the maintainers feel that no problems will be caused by upgrading, and that an upgrade will provide some needed feature or fix, they may upgrade to a newer version. But the usual behaviour is backporting.

Backporting is most often seen with the kernel version - by retaining the same kernel, users know that their hardware support isn't going to change after an upgrade one day.

Most of the mainstream binary distributions act this way. Some distributions - such as Gentoo - constantly upgrade to the latest version of a program - this is usually okay when only minor updates come out, but can potentially cause issues when doing larger updates.

Importance Rating: Medium

ETHICS

What does ethics have to do with a Linux distribution?? Simple - some developers feel that we should only use Open Source Software (OSS) in the distribution (such as Debian, Gnewsense and Fedora). Other distributions feel that it is okay to include non-opensource binaries. (eg: Ubuntu)

If this matters to you, make sure you choice a distribution that matches your beliefs.

Important Rating: Depends on your beliefs.

PACKAGE SELECTION

Different distributions have differing amounts of software in their repositories. For example, Redhat's Enterprise Linux has a much smaller package offering than Debian.

See if the distribution has all the software you want easily available - and if not, check if there are any reliable, trusted 3rd party repositories for it.

Importance Rating: Medium

WHAT DO YOUR FRIENDS USE?

It pays to consider the distribution choices of your friends - if they all use distributionX, it makes sense for you to use the same, so you can support each other.

(Don't have any friends using Linux? Check if you have a local LUG group - if so, you may wish to get involved to meet new people, and also see what distributions they use - if you pick the same one, it can make getting local help easier)

Importance Rating: Medium

WHAT STYLE SUITS YOU?

This may sound silly, but sometimes you just don't like a particular distribution - not for any real technical reason, but just simply because it doesn't "suit" you. (eg: you may love the style of Redhat EL, but dislike the style/feel of Debian - despite them both being good distributions.)

Try out some live CDs of distributions that you are interested in, and see how they feel to you - using a distribution with a style that doesn't suit you, can give an unpleasant experience.

Another good thing to do, is install your Linux distribution with a separate /home partition to store all your data - then you can quite easily change distribution, without having to copy your data off and onto your PC again - you can even have more than one distribution using the same /home partition if you wish.

Importance Rating: High

LANGUAGE SUPPORT

If you use English, you won't have any problems, but if you want a distribution that can be used in another language, make sure you choose one with good support.

Also see if many speakers of that language use it - if your English isn't too good, it is very useful having people that you can ask technical questions with your native language.

Importance Rating: High

CONCLUSION

Hopefully the information above will help you in your distribution decision making - if you're stuck on the many choices, here's some suggestions:

I personally use CentOS (a RHEL rebuild) for servers (both my own, and for clients) as it has a long support life and is feature stable. It is also extremely well designed, and I find it to be a great product to work with. In cases where support is needed, I use the commercial Redhat Enterprise Linux (RHEL).

RHEL has proven itself time after time running mission critical services such as email, web sites and database and I certainly recommend it for purposes as simple as a home desktop to as complex as a high-performance enterprise server - if you ever work with Linux in the corporate market you will certainly come across RHEL where it's reputation is well known.

I also use Ubuntu on my desktop & laptop, as it is feature stable, has a long support life (I use 6.06 LTS - long term support edition), and has recent versions of the programs I want. Ubuntu has a large portion of the desktop distribution market share and is a very popular distribution - you certainly won't go wrong choosing Ubuntu for most purposes.

And on my development box I run Jedo Linux which is my own distribution I work on for fun. :-)

Some other distributions that are popular and which are probably worth a look at are:

Jethro Carr is a computer systems engineer, and spends far too many hours on his computer enjoying Linux and other open source software. Visit his website for more details as well as links to other useful writings and projects.