When the long-awaited Gentoo 2008.0 release finally hit mirrors last month, the two largest groups of users found themselves out of luck: x86 users discovered that their live CD wouldn't copy the kernel during install, and the AMD64 image wouldn't fit onto a standard CD-ROM. This was not a great start for a distribution whose comeback may rest upon this release. Updated ISOs were released two days later, though, and those work well for getting a quick Gentoo install ready to customize.
Gentoo was once the darling of the Linux distribution world, thanks in large part to its Portage package management system. Portage takes the source code for any given package and compiles it to the user's specifications as set up in configuration files. When I began using Gentoo in 2003, everything worked like clockwork. Results were practically guaranteed and always to my liking. I had stability and a slight but noticeable increase in performance. But the greatest thrill of running Gentoo was the sense of ownership. No other system in the world was exactly like mine, and mine was exactly as I wanted. That's hard to achieve with binary distributions.
As time passed, however, the project's founder moved on and the quality of Gentoo began to decline. Packages no longer compiled cleanly, and some of the workarounds caused instability. I was on the verge of giving up on Gentoo, but I wanted to wait for the new release before deciding. This is the story of my two Gentoo installs.
My story begins with the first release of the live CD installers. I'd been waiting for two years for this release because I didn't have any luck with 2006.0 and didn't have time to start from scratch. When the updated ISO was released, it delivered an improved installer, making it easy for anyone to achieve a starter Gentoo system.
When I booted the live CD, I found myself in a sparse Xfce 4 desktop. Two installers are available: a graphical version and a terminal version. They're similar in operation, but I opted for the graphical version. I was disappointed that the installer didn't see all the partitions on my disks due to a limitation in SATA kernel support, but a
nosata boot cheat code should have allowed me to use the older ATA drivers. It didn't work. Instead, I ended up having to install on an older, slower secondary disk.
The first step in installing is working on partitioning (if needed), and the second step is defining which partition to use. I couldn't use my centralized /boot partition because the installer won't install onto a partition with any files present, so I just designated a / (root) partition and clicked Next. The installer completed setting up the filesystem, installing basic system elements such as the compiler, bash, and startup scripts, and copying the Portage distfiles. Then it stopped.
From a chrooted environment, I began searching for elements missed by the aborted install. I found that I had to add users, set the root password, and edit the /etc/make.conf file. I changed the CFLAGS to better match my machine, using
CFLAGS="-march=athlon64 -O2 -fomit-frame-pointer -pipe". Next, I listed an
ACCEPT_KEYWORDS, which sets the branch of Portage to stable or unstable trees for various architectures such as x86, AMD64, and SPARC. I also set
VIDEO_CARDS="nvidia vesa nv fbdev vga", and
INPUT_DEVICES="keyboard mouse evdev joystick".
Next came setting up the USE flags, which control the hardware, features, and options built into your software. For example, if you'd like Portage to build MPlayer with support for popular video formats, you might add
win32codecs to your USE flags. You also might add
dvdread. You don't need to be leery of this process; just consult the online guide or the one included with Gentoo at /usr/portage/profiles/use.desc.
Other settings you'll need to address with manual installs:
- time zone -- set in /etc/conf.d/clock
- default X session -- set in /etc/rc.conf
- host name -- set in /etc/conf.d/hostname
- domain name -- set in /etc/conf.d/domainname
Next I emerged the kernel sources (which unpacks the kernel source into /usr/src and adds Gentoo patches), built the kernel, ran LILO, and changed /dev/ROOT to the actual partition in /etc/fstab. After booting my new basic Gentoo system, I rebuilt the system to use my new configurations with the command
emerge -e world, and emerged KDE-meta, the Portage package that installs the KDE desktop environment in its entirety. If you prefer GNOME, just
emerge gnome. Happily, 730 packages installed or rebuilt with only one compile-time error to fix.
The error happened when compiling cURL. The error output
die 'ldap and kerberos (gssapi) not playing nicely try version >=7.18.1' and
USE=-kerberos emerge curl to fix. Since version 7.18.1 is still in unstable, I used the latter and added
net-misc/curl -kerberos to /etc/portage/package.use. For details, see the USE flag documentation and the Portage Handbook.
After moving into my new system, I added many of my favorite applications, such as XawTV, Njam, and the GIMP. Again, I had no problems with Portage or stability. This new install reminds me of Gentoo's glory days. Is Gentoo back? Before I can say that it is, the installer needs to work for users who have no prior Gentoo experience.
Installation #2 (2008.0-r1)
The second machine I tried has a Gigabyte GA-M51GM-S2G motherboard with SATA drives. Again, no shared /boot was possible for me when using the installer, so I picked a / (root) partition and let the installer go. The first few steps were as described above, but this time the process continued with the configuration steps that make the installer desirable. It allows setup of the root password, user accounts, time zone, network, and some system settings. A package-selection step is next, with limited choices. However, by using it you can get a basic Xfce 4 desktop from which to continue. Then it installs a bootloader, but doesn't add the other Linux systems on the machine to the bootloader's list. My only real complaint is that there's no eject mechanism when the installer is finished and rebooting.
Since I wanted to test the installer as a new user might, I began emerging important components without touching any configuration files. A basic /etc/make.conf file was in place, containing very conservative CFLAGS (compiler environment settings) and no USE flags. I emerged GNOME, the GIMP, and 300 other packages, finishing with only that same cURL error. For someone with experience or desire, this error isn't a showstopper, but for a newcomer it might be.
This install worked fairly well, but some USE flags would have made the applications more enjoyable. Also, it seemed to take longer compiling applications on this much faster machine when using the generic CFLAGS as set up by the live CD when compared to my everyday system that was optimized for the architecture.
As of this writing, Gentoo's stable branch includes software such as Linux 2.6.25-gentoo-r7, Xorg-x11 7.2, KDE 3.5.9, GNOME 2.20.3, OpenOffice.org 2.4.1, Firefox 188.8.131.52, and GIMP 2.4.2. In addition to compiling applications from source, Gentoo also offers binary applications (bins), which can save time for some of the notoriously long builds with little or no strategic advantage, such as Mozilla Firefox or OpenOffice.org. In these cases, for example, you would simply type
After working with my new system for a couple of weeks, I'm happy with Gentoo again. Portage works wonderfully if you stay within the stable branch and set sane CFLAGS. The resulting applications are stable and responsive. The new 2008.0-r1 installer works great with a few limitations, but this is still Gentoo. You can get a starter system going with the live CD, but you probably will need to read some documentation to achieve a full-featured desktop system. If help is needed, there is a friendly user forum available and a wiki of howtos as well.
Gentoo still isn't for everybody, but those who accept the challenge won't be disappointed. You too can have the sense of ownership and satisfaction of running a system like no one else's.
Has Gentoo gotten its act together? Only time will tell, but it sure looks like Gentoo is back on the right path. I'm sticking with it.