Server rebuild – with Gentoo

I have an old machine I’ve been using as a server for the past few years. It serves my mail, CVS, MySQL; acts as a home webserver (for internal use and testing) and MoinMoin wiki. I built it mostly for fun, but I seem to be relying on it more and more.

I’m currently running Fedora Core 4 on this machine. It’s actually been running Fedora for over 2 years now and has been continuously upgraded since Core 1. Aside from power outages and moving to a different home, this machine has only been down to boot into a new kernel.

Since Fedora Core 4 is end of life I now have the option of upgrading yet again or switching distributions. I love Fedora on the desktop but I’d like something more stable (as in “doesn’t change much”) on this server as I just don’t feel like messing with it.

So here I will relate the process I went through to pick a new distro. Maybe someone will find it interesting.

The Victim

  • Processor       AMD K6-3, 400MHz
  • Motherboard  ASUS P5A Socket 7, circa 1998
  • RAM               384 megs PC 133
  • Hard Drive   Samsung 40 gig (jumpered to 32 gigs per BIOS limitations)

This system is crusty and old, but it works. This motherboard has been in near constant service since 1999. The original CPU fan died so I wedged an Athlon cooler in there. It barely ever gets above ambient temperature!

The Criteria

Here are the criteria I used, mostly in order of importance.

  1. Stable – don’t make me upgrade every 6 months. Updates more oriented to bug fixes and security.
  2. Easy – basically this means Red Hat based. I won’t have to learn anything new.
  3. Fast – optimized for i586 or preferably K6-3 would be a plus.
  4. Minimal – smallest install possible, with few packages installed by default.
  5. Apache 2 – I’m used to apache 2, and would prefer it over 1.3.
  6. Different – This conflicts with “Easy” above, but it would be nice to learn a non-Red Hat based distro if there are enough other incentives.
  7. Up-to-date – I don’t want bleeding edge, but I think the 2.6 kernel by default is reasonable.
  8. Big package selection – my requirements aren’t huge, but I’d like to do everything I want without having to go outside the package management system and standard repositories.
  9. Python 2.4 – MoinMoin likes the latest Python it can get, but this isn’t a huge factor.

The Distributions

I compiled my ratings in a spreadsheet. Each distro could get up to 1 point per category. I gave the top 2 categories – stability and ease – up to 2 points.

(Sorry about the crappy table. I blame WordPress.)

Distro Stabl Easy Fast Mini apache2 Diffrnt UTD Packgs Py2.4 Total
Gentoo

 

 

1

1

1

1

1

1

1

7

Arch

 

 

1

1

1

1

1

 

1

6

Slackware

2

 

1

1

 

1

 

 

1

6

CentOS

2

2

 

 

1

 

 

 

 

5

FC5

 

1

 

 

1

 

1

1

1

5

FC4

 

2

 

 

1

 

 

1

1

5

Ubuntu

 

 

 

 

1

1

1

1

1

5

Debian

2

 

 

 

 

1

 

1

 

4

Gentoo
As you may have guessed, this is the one I chose. I’ve tried Gentoo before and always got fed up. This time I’m going to go for it. It loses on my 2 top categories – stability and ease – but the other pluses won out. It can be optimized for my CPU. It is as minimal as I want. It has the packages I want in versions I want. It’s definitely different and will teach me some new stuff. It has as big a package selection as I could want. Since I can control everything I can overcome the stability issue as well with a little research. I think this shows one of the virtues of Gentoo: it can be bent to fit many niche applications.
Arch
The only point Arch looses to Gentoo is on package selection. I found the installation to be needlessly complex and the instructions unclear. It’s also i686 specific, which means it’s not for me.
Slackware
Slack is very stable, fast and minimal, but a bit too behind the times for me. I’ve been running 2.6 kernels for years, and would like a distro that has as well. I also like package management that involves dependency resolution. A computer can figure out what depends on what. I shouldn’t have to.
CentOS
This was initially my top choice. It would be easy to move to CentOS and keep all the familiar Red Hat goodness, but gain stability and long support cycles. In the end, though, a thirst for the new and the need for a fast, minimal distro won out.
Fedora Core 5
It would also be easy to do an upgrade or an install of the latest Fedora on this machine. I know I’d be doing it again in 6 months, though. A ‘minimal’ install these days is getting to be about 1 gig, which is a bit much. I’m running into some SELinux problems on my other FC5 machine (the way I have MoinMoin configured it does some things that are unusual and insecure ). I know how to write my own policy to get around the problems, but I’m tired of dealing with it. FC6 is supposed to have easier SELinux tools. For a home server I don’t need the security.
Fedora Core 4
It’s end of life. I could get updates through the Fedora Legacy project, but I’m already running into packages that are older than I’d like (like MoinMoin and MySQL). There’s also the hunger for something new which is really the reason I thought about changing in the first place.
Ubuntu
I’d really like to run Ubuntu, but I don’t think it’s to be. They’ve got a server version now, but it’s not attractive enough in enough areas to make me leave Red Hat land. People who like Debian love Ubuntu, but I’m not one of them. I may put it on a desktop some day but I’m not going with another rapid-release-cycle distro on the server.
Debian
I’m just not a Debian person, it seems. It’s known for being stable, but more stable than I can deal with. Even ‘Etch,’ the ‘testing’ version is a bit crusty for me. I’d have to lose some newer packages I really want (although it seems to be an excellent platform for MoinMoin). I’ve also seen Debian stable servers crash more than I like.

Conclusion

So the numbers have spoken, and I’m going to install Gentoo on my server. I’m actually kind of excited about it. I’ve experimented here and there and run nearly every major distro (including some BSDs). This is the first time I’ve decided to run a non Red Hat based OS on a vital machine for any length of time. I’ll post again once the install is done.

Leave a Reply