LINUX From Scratch
I've started playing with QEMU, a virtual PC emulator, so I can play with Linux From Scratch, a distribution built entirely from source.
I'm supposed to be working on writing the web service interfaces (EJB and POJO via SOAP), but the in-house creators of the framework I'm supposed to be using put me off. They're correcting some configuration issues they had while introducing new projects (as in mine), so I'm to be patient while they get the ball rolling. Meanwhile, my Friday deadline looks less likely every minute.
Since I can't do that, and I can't do the related database-layer development for the software to which the service interface is to use, I'm playing with LFS.
Since I can't brutalize the PC on which I'm working, I installed QEMU to give me a safe playground. A simple large file (well, two large files that are 2GB each) acts like a hard drive, and a downloaded ISO image allows me to "boot" the emulator to a LINUX environment and start creating the distribution.
I've read through the LFS handbook a few times, and think I got the process. I just never sat down to try it. It takes a long time to download, compile, install, and configure a distribution from scratch, which is why I use SuSE on my desktop and recommend Ubuntu to everyone. I'd use Ubuntu on my desktop, if I didn't already have so much invested in SuSE.
I'm looking into LFS because I'm getting a little tired of so many of the distributions controlling the software on the system. I am not trying to fool anyone into thinking I'm investigating the source for the projects I use, but I prefer some of the things built from source, with the settings I desire, instead of either entire packages (e.g., Apache with all of the options and therefore dependencies) or none of the packages (e.g., Apache with DSO and I have to compile the desired modules anyway). I'm also a little less happy with the potential lag between new releases of software and adoptation by the distribution. Ubuntu is much closer to the cutting edge than SuSE, but both lag a while behind some of the security and other bug fixes, as well as improvements, that the packages offer.
I'm looking to set up a simple server. It needs to provide a useful environment including SSH, Apache, MySQL, sendmail, PERL, PHP, Java, Tomcat, and very little else I can think of off the top of my head.
I decided to start trying to use LFS to get a good baseline, and then build the bits I need, and the bits that are required, all from source when possible. Java is one obvious exception, as Sun controls that and it's only available as a binary.
Well, now that I've said that, that's not even really true, either. Java SE 6, code-named "Mustang", is available as user-buildable source. But it isn't really supported by the programs that I want to run, like Tomcat. So we'll stick with the Sun-released binaries for now.
Other than that, everything is source-compilable that I want to use.
LFS is chugging along on its third day of building (seems to go in the emulator at about a package a day), so I'll probably not finish it here at work, but I probably will get the stones to give it a go on the new server I'd started and never finished...