Some distributions also have customized configuration tools. Suse Linux (and OpenSuse) sport YaST (Yet another Setup Tool), a system setup and configuration manager that isn’t used in other Linux distributions.
The devil is in the daemon
In other cases, there may be broad similarities among current distributions that aren’t shared by older versions. For example, systemd has been introduced as a replacement for sysvinit in recent releases of the major Linux distributions, fundamentally changing the way servers running these distributions boot, load, and manage services (and not without controversy). Older releases of these distributions will not have systemd, and thus will not benefit from the greater efficiency and performance improvements that it brings. That may be a factor worth considering if you’re presented with a choice of release versions.
Another key element that differentiates Linux distributions is the package update mechanism and the frequency of package updates. On Ubuntu and Debian, you use Apt (Advanced Package Tool) to handle distribution updates. This tool allows you to update individual packages or the system as a whole. On RHEL, CentOS, Fedora, and others, Yum (Yellowdog Updater, Modified) is the package manager. Apt and Yum operate in similar ways, letting admins configure custom package repositories, and easily upgrade packages and maintain the system.
Generally speaking, the major Linux distributions align as described in the table below.
Major Linux distros at a glance |
|
RHEL and CentOS | Stable, older kernel and base packages. There is a long release cycle, and “current” packages based on two-year-old releases are common. Arguably the most deployed Linux distribution. A favorite of Linux veterans. |
Fedora | Less stable, but much more frequent kernel and package updates. Can be considered the testing distribution for RHEL/CentOS. |
Ubuntu | A mixture of stable, older releases with current maintenance, and less stable, much more up-to-date revisions. The LTS releases are the ones to watch for stability and long-term support. May be easier for novices. |
Debian | Ubuntu is based on Debian, and you’ll still find some similarities between the two. Debian functions with three concurrent releases: "stable," "testing," and "unstable." Production workloads should be using "stable," and that release cycle can be quite long. |
OpenSuse | Although distantly related to Red Hat, OpenSuse is quite different from all other Linux distributions. It relies on the YaST configuration tool, and while a capable distro, has been marred by the involvement of Novell and Microsoft. |
Making the right choice
The choice of which distribution to use typically reduces to a few key elements:
Familiarity. The advantages of sticking with a Linux distribution you’re extremely familiar with will generally outweigh the advantages of adopting a different distribution. If CentOS and RHEL are what you know, sticking with these distributions will likely be easiest in the long run. Unless server requirements dictate otherwise, go with what you know.
Simplicity. There is a lot to be said for homogeneity in application stacks. Maintaining the same distribution across your stack is almost always the way to proceed. If your application servers run CentOS, then your database servers should too, unless there is an overriding reason to go a different direction for those servers.
Server requirements. Ultimately, your choice of distro will be limited by the applications and services you need to deploy. For example, if the server must run the very latest releases of a common package like MySQL or PHP, choosing a stabler distribution like CentOS or RHEL with a longer release schedule will complicate matters. You will likely need to resort to additional, third-party package repositories and use packages built by a variety of contributors rather than the official releases supported by the distribution. In some cases, you may have to create your own package RPMs or custom package compilations for very recent package releases.
Alternatively, a little research may show that Fedora already has the version of MySQL or PHP you need, so using Fedora will save you valuable time and effort. In other cases, Ubuntu or Debian might more closely match the software requirements of your server, and thus will be worth considering even if you are not as familiar with them.
You may also find that your planned application or service stack comes with suggestions or recommendations on which distribution is a best fit. In addition, you could find some solutions have prebuilt packages for a few Linux distributions. Your best bet will be to stick with those versions to ensure compatibility.
Stability. Finally, it pays to be conservative. Relying on stable OS releases should always be the default approach. If a stable version doesn't meet the server software requirements, then moving out to a more recent release may make more sense than adapting the older, more stable release with more recent packages.
Rarely should a production server be run on unstable or testing releases from any vendor. Some administrators interpret this guidance to mean that Fedora and non-LTS versions of Ubuntu should never be run on production servers. While that is a good rule in general, there are always exceptions. Understand the risks involved, and be prepared to encounter the hidden issues that usually crop up when dealing with unstable or testing releases.
In many cases, the choice of Linux distro isn't entirely up to you. If you're shopping for a VPS (virtual private server) or cloud server instance, or even for a dedicated server at a hosting facility, you will find that providers offer a limited set of supported distributions to choose from. For the vast majority of those providers, those supported distros will be a subset of RHEL, CentOS, Fedora, Ubuntu, Debian, and OpenSuse.
It’s not uncommon to find providers that offer only CentOS and Ubuntu, or perhaps those distros along with Fedora and Debian. Fewer will offer OpenSuse, so predominately the choice comes down to these four or five distributions. The guidelines above, and the table below, should help you figure out which is best for your project.
Of course, your best course is to get comfortable with as many different Linux distros as you can, so you're prepared to use each when its strengths are a match for the job at hand.
This story, "How to choose the right Linux distro" was originally published by InfoWorld.