Gentoo On The Server

Slashdot brought up a story called Gentoo On Server Considered Harmful, a note on a blog entry by Cuzimatter on his experiences, both good and bad, with Gentoo Linux. One of his assertions was that Gentoo was too risky for servers:

The best way to keep a system stable is to get it working and then not changing anything. This is hard with Gentoo. Gentoo wants you to change a lot of stuff. It wants to be bleeding edge.

A day after a rebuttal came out 🙂

Jumping Ship
Anyway, this is about me, so here’s my story. I’ve been running Gentoo on my Linux Desktop since 2002 when it first crept onto the scene. The attraction to me at the time (over Debian) was that it was far easier to manage as far as different software versions, USE flags, and being able to go back to previous versions if something went wrong. Also, at the time anyway, the Debian version scheme of stable (2 years out of date software), testing (not as often updated with fixes) and unstable (bleeding edge, sometimes b0rks things for no reason) had bit me a couple of times too often.

So I jumped.

I updated my desktop machine first though, partially because at the time it was the first distro with the new GNOME (or maybe KDE) desktop available on the day of release, and you could install it all by simply typing “emerge kde” as root. Anyway, that was more attractive at the time than dealing with finding sources lists, incompatible versions, one guys archive of .debs conflicting with another, etc. Nowhere near the mess of RPM based distros (IMHO), but for folks who wanted to get the latest and greatest.

Using Gentoo on the desktop made me like it even more, so when I redid my main server in 2006, I decided to go with what I knew, and installed Gentoo on it.

Getting Bit
As the original article states, Gentoo’s philosophy is to update everything, so it’s very possible that an update to package “D” will have dependancies on “C”, “B” and “A”, and you may not want to update “A”. When you do a full system update it’s possible that the packages you don’t want updated will be mixed up in the list of files that are going to be updated and you may end up sitting there not long after with a brand new version of MySQL or “PostgreSQL” that you weren’t expecting. This happened to me not that long ago when I updated without paying attention.

The opposite of the “update everything” philosophy is that you don’t have to, you can just update specific packages. The issue with this of course is because Gentoo is all compiled packages, updating, say, “libdb” to a brand new version could render many programs unrunnable. Sometimes this can go unnoticed for a while because when linux loads programs it loads the libraries into memory (or something like that) so that a running program (or it’s dependant libraries) can be replaced unnoticed while it continues to happily run.

Until of course you restart the service and find that it fails to start up with a “missing library” error. This has happened to me too.

I have always been very careful with updating updated configuration files “etc-update“, so while I see the issue with the potential of overwriting your carefully crafted configuration files, I haven’t been hit with it yet.

So Why Update?
Why is this an issue of course? Well, Gentoo is supposed to be bleeding edge so there are updates constantly. This is great for people who have their desktop environments compiled out of CVS and who have to have the absolute latest, but this isn’t good for servers. Servers really should only be updated for major security issues or hardware updates, not at a constant rate. Again, fantastic for those jonesing for the latest Tomboy release, not good for the datacenter with lots of users.

To Gentoo or Not to Gentoo?
Would I do it again? Good question.

On the desktop I think it’s great. Issues can be fixed easily enough if you know what you’re doing (a requirement it seems of using the distro), and if you’re down for a day recompiling X and all of GNOME to get the new stuff that day or cause someone decided to update a library that forced everything else to be updated isn’t the end of the world. It sucks, but if you can live with that to be on the bleeding edge, more power to you. Heck, that’s why I’m there.

On the server, probably not. I’ve matured in the last 4 years of so as a sysadmin, and understand the value in not screwing with what works. I’m also working as a sysadmin right now in a prominently Debian shop, so I’m learning some of the tricks that I didn’t know when I was using Debian ages ago. My original complaint still holds though, there’s lots of way outdated packages in Debian, and RPM still sucks 🙂

Debian stable is probably how I’d go these days and just live without some of the new wizbang stuff, most of which is for the desktop anyway. Stability is key I’m learning, and now that I’m getting more and more people on the server, I’m appreciating that all the more. Question of course is how the heck to move back now 🙂

10 Comments on “Gentoo On The Server”

  1. “understand the value in not screwing with what works.”
    “Question of course is how the heck to move back now :)”
    I think your answer is in your first quote. Personally I’d leave it until a new system rebuild is needed years down the road. 😉

  2. Get another server and move services over one by one… then when all done, wipe the first box and make it a mirror so you can do high availability and/or load balancing 🙂

  3. Regarding that rebuttal about using Gentoo on servers… a lot of his tips about reading changes, checking diffs between config files, etc also can apply to use Debian Testing/Unstable on servers…

  4. Why swap back? Ultimate would be to do a full Xen or vmware server implementation and then I could run whatever server OS I wanted, and test all configurations in a staging area like a real data center 🙂

  5. Hmm, True.
    So in the OSS world (so not VMWare, not $$), what’s the best option now for virtualization? KVM? Xen? What’s the least intrusive?

  6. Good question. VMWare server seems to be working nicely @ work, but if you want an OSS solution, Xen is probably the best bet right now. It seems pretty flexible, has COW file systems for sharing files, etc. Sucky thing is it needs the special kernel, etc. Debian has packages for it though.
    If you have a cpu that supports virtualization, I’d say check out KVM. Issue with KVM though is that it’s relatively new and I’m not sure how stable it is. Be interesting to see if it’s compatible with Xen systems so you could move from one to the other.
    I was really tempted to convert my home server to ubuntu server last night, just cause I’ve been bored lately with everything working nicely 🙂