I've gotta build my own Linux setup. RPMs and all are fine for getting things up and running and maintaining a home box, but on a production server it just gets me in trouble. For one the RPMs don't always put things where I want them to be, also they are not customized for my system. Some software packages out there have thousands of compile options. Apache, PHP and MySQL being very feature rich makes them hard to configure at times with all their depencies, but using an RPM of them will have you end up with getting some or all the features. Me I want the ones I will use. Enabling all features when I use 20-50% of them is a waste of RAM as they spend most of their lives there, all the time and several processes on top of that.
So what is a guy to do. Well, I configure and compile those packages myself, but then the RPMs strike back. All Linux software seems to be related. The re-use of libraries is nice, but there are always problems too. Upgrading a library because PHP needs it for a new feature you need may result in you re-compiling a dozen other packages. Upgrading zlib or openssl impacts on pretty much everything. Even upgrading libgd can cause headaches if you link everything dynamically.
I like the port system of FreeBSD, I just don't like parts of the FreeBSD core. In some ways it is better than Linux, some ways not. Gentoo is a Linux alternative to BSD ports, but I wouldn't run it on a server environment. No offence to Gentoo, but it is too cutting edge to offer the stability I need. I tried installing it on a Compaq Proliant DL 360 server and it doesn't do to well with SCSI disks. I got it working in the end, but not before cursing for half a day. Maybe when there is a Gentoo 3.x.
For now I will just have to make do with the source and all the headaches it brings. Like spending 5 hours to upgrade libgd which forced me to recompile/upgrade libcurl, libz, libjpeg, webalizer, PHP, Apache, etc. Most the problems went back to RPMs though. Having used a RH install as the base for the system means that a lot of the libs came from RPMs that I haven't updated as upgrading RPMs has never resulted in much luck for me. I tend to replace the RPM version with my own compiled versions when I need a new version of a lib for some other application, or there is a serious security issue. I know I am just making things harder for myself, but thats just the way I am.
Guess it is time to build a Linux system for scratch set up just the way I like it. I'm sure it will be fun ;)