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 πŸ™‚