Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I am a long-time user of Gentoo, both on the desktop and server. As a software engineer, I love its flexibility and customizability (as well as the fact that it is bleeding edge and a rolling release). But for my new server, I want to go with a different distribution. Mainly because compiling everything would be a hinderance on a virtual server but also due the fact that Gentoo is too bleeding edge where sometimes an update lands that should have been (more) properly tested and delayed.

(As a side note: I have successfully deployed/maintained several Gentoo boxes over the years and most of the time, things went very smooth and the boxes were great.)

So I'd like to ask the community for advice based on experience (not opinions) what distributions would fit the following criteria best:

General

  1. rolling release or a very good (reliable) in-place upgrade path
  2. neither totally outdated nor absolutely bleeding edge package repositories
    • Python 2.7 / 3.3 (the system will mainly deploy python/django apps)
    • a recent gcc (>= 4.7)
  3. well-maintained, good community
  4. flexible and customizable
    • it should be possible to install different gcc or python versions side-by-side

Security

  1. signed (or otherwise secured) package repositories
  2. sane/secure compiler flags (tailored for security instead of performance)
  3. timely security updates and dedicated security team/announce list

What jumps to mind immediately is CentOS and Debian but both are rather outdated when it comes to packages, unfortunately.

I'm eyeing with Ubuntu but the software they officially support (main / restricted repo), is rather small in comparison to universe or other distributions. I am also not so sure about how well (with regards to security fixes) they maintain the official packages and I don't really like their corporate (= closed) mentality when it comes to making decisions that effect their users. On a side note: I have recently installed 12.10 desktop for a friend and wasn't really impressed.

ArchLinux comes close to Gentoo, minus the package compilation, imho. I haven't tried it myself but what immediately stands out (negatively imho) is the rather small core team and the missing security team. There seems to be no dedicated security list and they only recently got package signing integrated (and I have no idea if that is even mandatory). Also there is quite a number of packages that are only supported through AUR or different means. There is not much else I can say about this.

OpenSuSE is also something I am eyeing with but the last time I tried SuSE was in the kernel 1.x days, honestly (I was a very young geek then :P). So I know almost nothing about the current state of it.

Fedora is honestly also something I have thought about. It is usually pretty well maintained and (if it isn't delayed for several months) has a nice release schedule. On the other hand, I have read many bad things about Fedora 18, especially also about the upgrade path. Also it is definitely very bleeding edge.

Not much I can add to this rather lengthy post, except for a thank you for reading this and taking the time. :-)

UPDATE @ 2024UTC

I feel like I need to update my question. Even though I absolutely agree with the answers given, they are not really what I was looking for. So here are a few points to hopefully clarify my situation:

  • I've been maintaining servers for 10+ years, so (at least for the moment) I am not thinking about hiring someone to help me or ease the load.

  • I know my way around Linux. It has been my main system for 15+ years or so. And as a software engineer and geek, I wouldn't trade it for the world. :)

  • I was looking for advice based on experience with the different distributions I mentioned. I know I can install all of those in a virtual machine (and I will for those on the short list eventually) but even though I think distribution xy is great, it says absolutely nothing about how well maintained it is, for example. Or how bumpy the road is once there is a new release out. That only time can tell. And things like that, I was looking for. Experience that a simple test run for a week cannot show. Advice based on experience that only comes with long-term usage of a distribution.

I also have to stress that my list in the original post above, pretty much sums up what is important for me.

share|improve this question
    
What specific question can we help answer for you? I wouldn't use any of the above on a server solution. But there's also this: How should an IT department choose a Linux distribution: Technical reasons –  ewwhite Feb 12 '13 at 13:37
    
Mainly I would like to hear from people how have experience with the mentioned distributions on servers - the pros and cons. Real life experience is something totally different from opinions or marketing talk. :) Besides, thanks for the link, but I know how to choose a distribution and that is exactly why I am asking for some insight which I can factor into my decision. I am familiar with deb, rpm or an ebuild. It's also not about support or lts. One more thing: If you would choose none of the aforementioned dists, which one would it be for you? –  khaos Feb 12 '13 at 14:01
    
@khaos Based on your edit you appear to be looking for us to say "Use this distribution", or "This distribution {rocks,sucks} because of XXXX" -- This falls into the territory of "Product and Service recommendations" (or badmouthing a product or service). Recommending specific products is not something we do. The best we can do is give you things to consider. Anecdotal experience gets outdated quickly, and tends to be Bad Subjective –  voretaq7 Feb 12 '13 at 19:36
    
That said, if you want an earful about the various options you've proposed you are welcome to stop by The Server Fault chat room, the unofficial hangout of the surly folks who answer most of these questions. We can share our horror stories with each of the operating systems you've mentioned :-) –  voretaq7 Feb 12 '13 at 19:37

2 Answers 2

I've had Gentoo, SuSE and Fedora in production environments... My general preference for production work is RHEL or CentOS, but each of the aforementioned distributions were needed in limited-capacity for very specific features.

Gentoo is tough to scale... it can be done, but it's not an "it just works" distribution. You've acknowledged this.

SuSE doesn't have the mindshare in my region, so that could be a potential impediment to hiring and finding expertise.

Fedora is familiar-enough to Red Hat and CentOS engineers to still be useful (with a greater pool of talent that can administer it). The problem there is the upgrade path between versions... This affects Fedora as well as RHEL/CentOS.

However, if you're doing this correctly (the DevOps way), you won't be running full in-place upgrades. Systems and application deployment should be automated and reproducible to the point where you redeploy onto rebuilt servers rather than attempt OS upgrades.

share|improve this answer

Server Fault can't pick an operating system for you -- you need to make this choice for yourself.
Among the many things you should be considering, roughly in order, are:

  1. Application Vendor Support
    Does the software you need run on the distribution in question

  2. Internal (or regionally available) Knowledge Base
    Do you have sysadmins familiar with the distribution in question?
    If not, can you hire them locally at reasonable cost?

  3. OS Vendor Support
    Is the distribution well supported by its vendor?
    Can you get appropriate support contracts (at reasonable cost)?
    Are there appropriate communication channels (security@, etc.)?

  4. Management Features
    How can you keep a number of systems "in sync" with the same packages?
    How can you manage/update a number of systems without touching each one manually?


Bear in mind that "current" and "stable" are generally mutually exclusive requirements:
A distribution that keeps their packages at-or-near the bleeding edge will, of necessity, have more frequent updates, a greater chance of shipping an update that breaks your environment, and potential for security problems to come up.

When evaluating an operating system vendor you should look for one that is shipping "reasonably current" versions of software (i.e. anyone shipping Apache 1.x should be right out, as should anyone shipping software with known security holes unless they're applying local patches), but unless you have a specific need for the latest-and-greatest release of some package you should be content with what your OS vendor ships as long as it meets your needs.
Ask yourself honestly: "Will it impact my day to day operations if I have Perl 5.12 instead of 5.14?", and unless the answer is "Yes, I require 5.14 because of X." don't worry about it.

Remember also that you are not required to use the system version of any program - you can always install and maintain your own version provided you are willing to take on that responsibility. This is where management tools like Puppet begin to be useful.


If you are not familiar with the various distributions and their current feature sets you owe it to yourself to spend a few hours with a copy of VirtualBox or similar desktop virtualization software and evaluate each one after you've narrowed the field.
Determine which distribution you are most comfortable maintaining, because you may be managing it for several years.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.