I have to admit, I’m a bit of a glutten for punishment. For some reason, I actually enjoy the challenge of lesser-known distributions. While I’ve been taking a good hard look at FreeBSD and how it might meet my needs, it is still lacking several key applications I rely on: VirtualBox (yes, it’s in ports, but have you actually gotten it to work? I haven’t) and the Adobe Flash player (tried gnash, didn’t work. Adobe won’t cough up an amd64 FreeBSD player). Granted, these are minor hiccups but other things are also keeping me from using FreeBSD on my main desktop.
To that end, I’ve been happily using Debian Lenny. It’s nice because it generally works on anything you throw at it and the apt utility can’t be beat for software management. Apt can also be a royal pain in the ass. I tried for hours to get it to play nicely and install mplayer with the codecs I wanted but there seemed to be a “stuck” package on my system that wouldn’t upgrade. My other annoyance with apt is that applications aren’t always updated as fast as they should be. The main one that comes to mind is Pidgin, the IM client that connects to all the different messenging networks. Again, I wrestled with apt for weeks, trying to get the latest greatest version of Pidgin without having to move over to Sid. I even tried using the backports repository. Still no dice.
That’s when I started thinking about FreeBSD again. I’ve been using it successfully on a new laptop I’ve got (article on that to follow at some point) but there my requirements are much less. So then I thought about Gentoo. Gentoo has all the Linux goodness and a system called portage that isn’t unlike the FreeBSD ports tree. In fact, portage was inspired by FreeBSD’s ports system! So I set out to install Gentoo on my main desktop box.
I’ve got fairly vanilla hardware so I was sure that it was all supported. (specs: Intel Core2 Quad Q6600, 6 GB PC-8500 RAM, 2x 1 TB hard drives (one for backup), EVGA Geforce 9500 GT, Intel Pro/1000 NIC, Gigabyte EP45-3DSL motherboard, Logitech USB mouse and keyboard) I was happy to see that I was right. I simply burned a CD of the weekly minimal installer CD and booted up. Gentoo is interesting because unlike most other distributions of Linux, you aren’t confronted with a happy graphical installer. Nope, you get dropped to a root prompt and have to go from there. Fortunately, the documentation is impeccable and very easy to follow. To take full advantage of my hardware, I followed the AMD64 guide, located here. I was lazy when I installed and opted to use Gentoo’s “genkernel” package to build my kernel for me. I may trim down my kernel at a later point and remove all the junk that’s not needed. After about 45 minutes, I had a bare system up and running.
The fun part is deciding where to take it from there. Since I’m using this machine as a desktop box, I installed Xorg and my current favorite window manager, XFCE. Like FreeBSD, Gentoo compiles all software from source code so you can really take advantage of your hardware. Unlike FreeBSD, however, Gentoo’s portage system is a lot easier to use. Instead of drilling down the ports tree to find what you want, then issuing a “make install clean”, you simply use the ‘emerge’ utility. This is as simple as “emerge –search <someapp>” to search for something and then “emerge <someapp>” to install it. emerge is definitely more powerful than that (I’m using it to update my entire system as I’m writing) so it’s well worth either looking at the man page or the online documentation.
I did run into a few kinks along the way. After having a base system installed along with XFCE, I wanted sound so I can listen to some tunes while working. Since genkernel pretty much gives you a kitchen sink kernel, ALSA support was already in the kernel (which by the way, is how it’s supposed to be moving forward I’m told). The only thing I had to do was to emerge the alsa-utils port so I’d get the mixer app and startup scripts. Documentation for that is located here.
The other kink I ran into was the need to dual boot that other OS. Yes, I still play the occasional game here and there but by and large, my days are spent in Linux doing stuff. The grub section under the installation guide is helpful, but not in a case where you’ve got Windows installed on a different drive. The problem is that Windows wants to be on the first drive and can’t fathom why you’d want to boot into any other OS. To remedy this, I added the following information to my grub.conf file:
title Windows XP
rootnoverify (hd2,0)
map (hd0) (hd2)
map (hd2) (hd0)
chainloader +1
In my case, my Windows drive is the third physical hard disk installed (the first being the Linux installation and the second being the backup drive). Remember, in Grub-land, hard disks start at zero. Since Windows doesn’t like not being the first drive, you have to trick its boot loader into thinking it is. This is where the map commands shown above come in handy. The last line just tells grub to seek 1 sector from the start of the partition (usually the boot sector).
So far I’m really impressed with Gentoo. I no longer have to worry about conflicts (emerge takes care of it for you) or outdated packages (emerge builds the latest/greatest depending on your system profile). My system is clean, has only what I actually use, and I have a far more thorough understanding of what’s going on. What’s not to like??