One question we get a lot: What are the best community server distributions? That question isn’t as simple as it sounds. What makes a distro “the best”? Why community distributions, specifically? It’s not a simple question — but read on and we’ll point you to six distros that will help you reach a satisfying answer.
Perfection? No
The world of tech is fast-moving and fast-changing, and there is no such as achieving a static state of ultimate perfection. Yes, we’ve all heard the stories of forgotten ten year-old Linux servers chugging quietly away in dusty corners, doing their jobs even though they’re neglected and all alone with only spiders and silverfish for company. While this is a happy thing, and probably apocryphal because ten years without a hardware failure is unlikely, it’s bad system administration.
So I expect that any proper Linux server under my control will have a good package manager for easy updating and upgrading, an active community of users and contributors, fast security updates, a reasonable release and upgrade schedule, and that it will be around for the long-term. Distro hopping is fun for a home desktop, but for servers — no thanks. Once it’s up and running I don’t want to fuss with it anymore than is necessary.
I also like to keep some bleeding-edge test boxes around so I can get acquainted with new technologies, and some distros are better for this than others.
I have a soft spot for community-powered distros because they are labors of love, and provide a useful counterbalance to corporate follies. The two top Linux distros, Red Hat and Debian, represent opposite sides of the same Linux coin; Red Hat is a commercial success, while Debian will always be both libre software and free of cost. Both have been around since the early days of Linux, both have a commitment to free software, and they are the two fundamental distros that the majority of other distros are descended from. This shows that both models work, that both have their merits and are complementary.
Top Production Server Distros
My number one pick is Debian. Debian is one of the oldest Linux distributions, born in 1993. The Debian community is a successful experiment in nearly-pure democracy, though some would say anarchy. But it is not anarchic. There are elected officers, a constitution, and formal structures for making decisions and resolving problems. It gets messy and noisy, as in any large community, and it works.
I’ve been spoiled by Debian, which never needs to be reinstalled but can be upgraded forever, barring hardware failure and hopelessly bollixed installations. Debian supports more packages than any other distribution, so it’s rare to not find whatever you want just an apt-get install away. Debian supports more hardware architectures than anyone else: x86, ARM, PowerPC, IBM S/390, MIPS, SPARC, ARM, Itanium, and kFreeBSD, the FreeBSD kernel.
Debian is committed to free software (according to the Debian Free Software Guidelines), and no non-free software is required to run a Debian system. But Debian caters to all users– one of my favorite features is that free and non-free software are organized in separate repos, so it is easy to control what goes on your system. Kernels are kept as close to vanilla as possible, without a lot of modifications.
Debian comes in four flavors: stable, testing, unstable, and experimental. Each release gets new code names from the Toy Story movies. The current stable release is Squeeze, testing is Wheezy, and unstable is always linked to Sid, the bratty kid. This naming scheme offers both flexibility and confusion: if you configure your sources to pull packages from Stable instead of Squeeze then the time will come when you’ll get packages from the next release, Wheezy, instead of Squeeze.
New packages typically enter Unstable, then Testing, and finally Stable. You can run any of these, and even mix and match, though that sometimes leads to rather spectacular dependency collisions. Stable is great for servers because it is famously rock-solid, and two years between releases works all right for servers. I’ve run LAN servers on testing; I wouldn’t use anything but stable on a public-facing server. Debian is very strong on security, but only the stable release gets consistent, fast attention from the security team. Testing gets some security fixes, and Unstable gets none because packages pass through it so quickly.
Slackware gets my vote for second-best. Slackware is another old distro like Debian, also founded in 1993. It is still maintained by its founder, Patrick Volkerding. Slackware is the most Unix-like of the major Linux distributions, and the simplest — it does not come with a gaggle of graphical configuration tools or “helpful” administration scripts, but expects the user to know the command line and how to edit configuration files. You don’t have to clear a bunch of bloaty cruft out of the way to get under the hood. It is consistent– once you learn to do something it won’t change, not without a good reason.
I like Slackware’s BSD-style init system, which is simpler to configure than the Sys-V init system used by most other distros. There is one init script to configure per runlevel, rather batches of individual scripts for each service. Slackware also supports Sys-V init for those who prefer to use it. It still uses LILO, which is a mighty fine alternative to GRUB2.
Slackware is light on hardware requirements. It supports x86 processors and will run with as little as 32 MB RAM, though you won’t be able to do much. I’ve used it to run DNS and file servers on old Pentiums with 128 MB RAM satisfactorily.
Slackware, contrary to popular myth, does include a nice package manager, pkgtool. The pkgtool utility is a perfectly-capable ncurses menu-based package installer and remover. It does not do dependency-checking like apt-get and yum. I love package managers that perform dependency-checking, so that is one reason I give Debian first place. But I see the merits of the admin dealing with dependency resolution, rather than being at the mercy of whoever packaged the software and what they think you need larding up your installation.
Another reason Debian edges out Slackware is that Slackware does not support nearly as many packages as Debian does. Of course you can always install from sources, or build your own Slackware packages using the native Slackware packaging tools, or third-party package-builders like CheckInstall.
Ubuntu Server comes in a close third, and saves this roundup from looking like a geezer-fest of antique distros. Ubuntu Server is the real deal with a kernel tuned for server duties. The installer bundles a useful set of package groups: several cloud package groups for different roles (cluster, cluster controller, node, cloud controller, storage), LAMP server, mail server, print server, Samba file server, Tomcat server, and several others. It targets the enterprise with private and public cloud capabilities, remote systems monitoring and management via Landscape, Mac OS X and Windows integration, virtualization, tools for non-interactive deployments, and a certified hardware list.
Ubuntu Server is a free download, and there are commercial support options. Unlike some FOSS with commercial support options there are no hoops to jump through for the freebie; just download and install it like any other free-of-cost distro. There is only one version, rather than a free “community” version with limited features, while the good stuff costs money and is closed-source. The features that cost money are outside of your computer: support, training, and online services like Landscape and Ubuntu One.
One of Ubuntu’s best features is a unified package repository for all the different versions. The official flavors are Ubuntu, Kubuntu, Xubuntu, Ubuntu Studio, Edubuntu, and Mythbuntu. All use the same repos, and you can mix and match the different versions all you want. For example, while Ubuntu Studio is available as a complete distro, you can also install the special Ubuntu Studio packages on any version of Ubuntu. This is true of all the *buntus. This works for Ubuntu Server as well. It does not come with a graphical desktop, but you can install one. Don’t like the server kernel? Then install a different one. And so on.
Top Testing Distros
Arch Linux is a thing of beauty, with a sane, rational, clean structure that is a lot like Slackware’s. And like Slackware, it is well-documented. The one thing keeping it off my production server list is that packages and software repositories are not signed. This is a fundamental precaution against altered packages or compromised mirrors, and it has been a point of controversy for several years. I’m not taking sides or pointing fingers; Arch is a great distribution, and the maintainers are implementing package signing, so soon this will not be an issue.
Fedora Linux is a great distro for getting first looks at new technologies. For example, Fedora was among the first to incorporate SELinux, PulseAudio, PackageKit, GRUB 2, Gnome 3, and systemd.
The impressive Jeoss is a good tiny Linux to watch. It’s still new, but already it boasts innovations like all installation methods are network-capable, it supports PXE installations from ISO images, and it uses the normal Ubuntu software repository. You can read a nice introduction to Jeoss (which by an astounding coincidence was written by me) right here on Linux.com.