September 16, 2004

Review: Gentoo 2004.2

Author: Preston St. Pierre

Gentoo Linux is the BSD of GNU/Linux distributions; it's elegant and customizable and you know exactly what you're getting when you install it. No mystery programs, no packages that you have to deinstall because you'll never use, no clutter, and everything is customized to your needs. If you do it right, Gentoo is also faster than your average GNU/Linux distro because everything can be compiled with higher compiler optimizations. The 2004.2 edition of Gentoo Linux lacks the improvements I had hoped to see, but this is still the best community GNU/Linux distribution for desktop tinkerers. Some even say that it makes a good server, too.

If you're heretofore unfamiliar with Gentoo Linux, it's a source-based GNU/Linux distribution; that means that you compile some or all of the operating system and the accompanying programs from source code. There are other source-based distributions, such as Source Mage, ROCK Linux, Onebase Linux, Lunar Linux, and Sorcerer, but what makes Gentoo unique among not only GNU/Linux distributions but most operating systems in general is its Portage program management system. Portage is like Debian's APT tools, except it's much easier to configure and use, and it generally handles the downloading and compiling of source code packages rather than binary packages.

Portage was originally based on the concept of the FreeBSD Ports system, which was the pioneer in source-based package management utilities. Ports categorizes programs in the /usr/ports directory, where the user must navigate to the proper place and run the make install command, whereupon the program source is downloaded and compiled along with any necessary dependencies.

Gentoo's Portage system combines those steps automatically; all you do is type emerge followed by the program name and the software automatically finds the program, downloads it, checks its dependencies, compiles, and then installs it. It needs no configuration under most circumstances; only if you want to install one of the few "masked" packages (which are generally deemed unstable for one reason or another) do you need to modify any config files. Searching for packages is as easy as using the -s flag with the emerge command, and updating is just as simple.

The programs in Portage are generally more up-to-date than you'd find in any APT repository, and since you can compile them specifically for your architecture they can operate significantly faster than precompiled binary packages, which on most operating systems are compiled for the least common denominator -- i386 or i586. That being said, if you're on a slow system or need to save some time, Portage also has a number of binary packages available for many of the most popular programs.

What's new in 2004.2

Earlier this year the Gentoo project team decided to change its version naming convention from small numbers to date-specific identifiers. Gentoo Linux went from version 1.4 last fall to version 2004.0 the following winter. The 2004 is -- of course -- the year of the release, and the 0 stands for the number of the release. As you may already know, programmers generally like to start numeric lists with zero instead of one, so 0 is the first release of this year. 2004.1 followed in the spring, and now we have 2004.2.

According to the 2004.2 release information page, the primary focus of 2004.2 was to improve the quality of the release media. The main additions to 2004.2 seem to be LiveCD support for SATA hard drives, wireless networking, and SMP. Aside from that I found 2004.2 to be much the same as 2004.1 and 2004.0 before it. It still uses the 2.4 kernel by default, the AMD64 edition is still a nightmare to install, and the installation procedure for all architectures is still tedious and time-consuming.

With a binary Linux distribution the kernel doesn't matter all that much to most users, but Gentoo Linux becomes a whole different operating system when you use the 2.4 kernel as opposed to the newer 2.6 tree. 2.4 does not have intrinsic support for ALSA or serial ATA hard drives, so not only do you have to install sound drivers through Portage instead of through the kernel configuration file, you also are limited in the hardware that you can use. It's far more complicated than I can communicate in a review; what you need to know is that the 2.6 kernel should be your first choice when installing Gentoo Linux unless you have a very specific reason to use 2.4.

The Gentoo Handbook has been updated extensively, and the installation instructions have been split from one guide into several architecture-specific guides. I found the x86 installation guide to be accurate and easy to follow, if a bit bloated. My chief complaint about it is that it badly needs a competent editor; the authors get too chatty and go into details that are best left for footnotes or a separate section or sidebar for special-case situations. The installation portion of the document could be cut in half just by taking out such annoying superfluities as the lengthy and wholly unnecessary introductions, facetious comments, and smiley faces. Of course, silly me, I went straight to the handbook first and didn't see that there were streamlined instructions for more experienced users.

It seems like every new Gentoo release has a fancier graphical splash screen and a more complicated "do it by hand" installation procedure. The procedure has remained mostly the same over the past few releases -- a few twists and turns aside -- and although the instructions are easy to follow, the entire process takes far too much time. More often than not, it involves typing in commands you will never need to use again. As a veteran of at least a dozen Gentoo installations across several versions, I can't help but think that the time spent updating the manuals would have been better spent creating a simple shell script to take care of all of the tedious command copying from the installation guide -- something along the lines of the OpenBSD installation script, which is simple but effective. Such a script would save a user or admin from having to go back and forth between consulting the documentation and copying complex commands into the terminal. For this reason, I've found that an installation through OpenSSH (which is included on the LiveCD) is the best way to do a Gentoo Linux installation quickly -- you can copy and paste commands into the SSH terminal directly from a Web browser.

The AMD64 edition of the 2004.2 release is best described as poorly tested -- following the installation instructions did not produce a working operating system for me, but I was able to figure out some ways around the mistakes in the documentation thanks to some tips on the Gentoo forums. The LiveCD, as it has done for all previous versions, did not properly detect and install the kernel module for the 3Com Gigabit Ethernet LAN chip integrated into the ASUS K8V Deluxe motherboard (curiously, the x86 edition does not have a problem with this). Fortunately it loads properly via modprobe, and from previous experience I already knew that the module name was sk98lin.

On my first attempt to get the AMD64 edition installed on an Athlon 64 system using the above-mentioned mainboard, I was not successful -- I'll try again when I have some spare time, but for now I can't recommend the AMD64 edition to any but the most experienced GNU/Linux or FreeBSD veterans who are able to trace and resolve errors in configuration and compiling. You can also scour the forums for help if you have another working machine with a Web browser. You'll probably find everything you need after an hour or so of searching and reading, but one should not have to read forums, newsgroups, or mailing lists to install an operating system. The documentation should be accurate and the software should be properly tested and fully functional, and in the instance that it is not fully functional, it should at least be predictable.

Gentoo on the desktop

Once it's installed and you've completed the first boot, you're still a few hours (or days, if you have anything less than an Athlon XP or Pentium 4 processor) away from a usable graphical desktop. The best way to get to X11 is to emerge either KDE or GNOME (or both) and then work from there. If you know how to configure X.org to start your favorite window manager, you can alternatively emerge X.org and then your window manager of choice.

You can emerge several programs at once if you like, but make sure that they don't have common packages that will try to compile at once -- both compiles will fail and you'll have to restart the emerge process. If you're smart about emerging, you can have four or five virtual terminals compiling different programs at once without any problems.

Once you've installed most or all of the software that you need, Gentoo provides a fast and easily updated desktop operating system that has a gigantic arsenal -- to the tune of more than 7,000 packages -- of extra programs in the Portage system. Updating is as easy as typing emerge sync and then emerge -u world. Historically this has occasionally resulted in a failed upgrade of some critical package, such as GCC or Perl, but 2004.2 seems to be more stable in that regard, from what I can tell after several days of use. Obviously some problems will be isolated or won't show up until there is an upgrade to a critical package, but I've found that the Gentoo forums are generally responsive to failed ebuilds and you can get assistance with your problem rather quickly (or the problem will simply be addressed and fixed in Portage). The online Gentoo forums are probably the best, most friendly distro-specific community on the Internet, and are a welcome alternative to the mailing lists and newsgroups dominated by curmudgeonly developers that some community distributions rely upon for support.

Gentoo Linux requires some patience and a willingness to learn how to solve problems. If you absolutely hate to tinker with software and demand something that "just works" in whatever definition you deem valid, stay away from Gentoo. Even if Gentoo Linux adopts a sensible installation script or utility someday, or if you use VidaLinux (a graphical and easy-to-install Gentoo-based distribution), you'll still have to do some configuration work and some occasional maintenance and problem-solving.

Gentoo often has the latest software before any other distribution offers it. That means you'll get the latest versions of Mozilla, Evolution, GNOME, and other programs long before they're ncluded in commercial distributions or inserted into the unstable branch of Debian's package repository.

Next: Gentoo as a server

As a server, Gentoo Linux is a bit different; if you're only running some services from the command line, Gentoo becomes much simpler to install and maintain. The key to keeping Gentoo stable is to minimize the amount of software that you install on it, so the less there is to update, the less opportunity there is for broken circular dependencies and other Portage-killing debacles. These are problems that can happen on other operating systems as well, but are somewhat more easily found and fixed on Gentoo than on most others.

Portage can create binary packages of programs installed from source code. In other words, you can create a backup of all of your installed software in binary form, compiled to your specifications and for your system. If you ever have to reinstall, you can restore all of your programs through Portage by installing your custom premade binaries. You could also use this capability to deploy the same software over a number of identical systems.

Gentoo will probably never replace Debian, Red Hat, SUSE, or FreeBSD in the Web hosting market, but it adds a kind of variety that is necessary to the survival of the Web. It's also quite often specifically requested by hosting customers who prefer to work with Gentoo over other operating systems -- the OS itself has enough fans to merit a place for it in the server market. In addition to hosting companies, there are also about a half dozen custom hardware companies worldwide that offer Gentoo Linux preinstalled on new computer systems, both for desktop and server use.

Versions

Gentoo Linux is available in two CD images: a 78MB "Minimal" ISO, which has only what is necessary to boot the LiveCD -- no packages and no resources for installing Gentoo locally; and the 605MB "Universal" ISO, which includes everything you need to install Gentoo without an Internet connection. There is also a "packages" ISO that contains many binary packages for some commonly installed programs like KDE, GNOME, Mozilla, and OpenOffice.org. Obviously it's much quicker to install a binary package than it is to compile a package from source, but you tend not to get the same optimizations in a precompiled package that you would from Portage.

Gentoo offers three "stages" tarballs for installation, which can be downloaded individually from a Gentoo mirror or unpacked directly from the Universal CD. You can essentially make your own LiveCD if you like, then download a stage tarball and unpack it to an empty drive. Some people even use Knoppix as a LiveCD to install from, in which case they have a working, graphical, Internet-connected system to use while Gentoo is compiling and installing.

Stage1 bootstraps your system, so you unpack mostly source code and a directory skeleton to your root directory and then build GCC, GlibC, and other necessities. After that you're basically where stage2 starts off; you build Portage and use it to download your Portage tree, which is then the basis for emerging the rest of the system. At that point you're where you'd be if you started from stage3, and all that's left to do is download the kernel source and compile it, then install and configure your boot loader.

On the fastest desktop systems on the market, the entire process will take between three and four hours if you're vigilant and can wait nearby to watch its progress; stage2 and stage3 installations are incrementally quicker to install but offer less optimization. On slower systems, the sky is the limit for installation times. No matter which stage you choose, you still have to start the process by partitioning and formatting your hard drive using the command line, then setting the root password and the date, and setting up and configuring your network if you have one.

Conclusions

Gentoo Linux development seems to be moving very slowly, which is odd for an operating system that people generally choose for its speed and its arsenal of newer-than-usual programs. The lack of an installation utility greatly hampers a user's or administrator's ability to quickly deploy a Gentoo system in any kind of environment. Even doing a stage 3 install takes a little too long -- the process could be mostly automated by using the simplest of Bash scripts. In the future it would be nice to see such a script or even a graphical installation program employed to ease the amount of keyboard time required for deployment. Admins have better things to do than babysit an installation for an hour or (much) more.

The 2.4 kernel is a horrible choice for Gentoo because the installation and configuration of sound and video driver modules is not automatic as it is with commercial distros. If you want sound, you have to wrestle with ALSA by installing it through Portage. Having been through that nightmare in the past, this single point alone makes a solid case for dumping 2.4 in favor of the 2.6 kernel for desktop users. For server use, the 2.6 kernel offers better performance for SMP machines and has expanded hardware support, especially for AMD64-based computers and modern x86 servers that use SATA RAID. The Gentoo project should deprecate and/or mask the gentoo-sources package -- or perhaps rename it to gentoo-2.4-sources -- and make 2.6 the default and recommended kernel for all architectures.

The project team itself appears to be highly organized and well managed, and the forums are an excellent resource for those in need of assistance. I wish the team had done more with this release to advance the state of the operating system, but even as it is it isn't bad if you know what to expect.

Overall, Gentoo Linux 2004.2 is the same as it's been since 1.4 -- it's still a pain to install, but once it gets going it can be a real pleasure to use on the desktop or in the server room.

Purpose Operating system
Manufacturer The Gentoo Linux project
Architectures x86, AMD64, PPC, HPPA, SPARC
License The GNU General Public License, but some programs in Portage are under other non-free licenses
Market Desktop tinkerers, Web and dedicated game server hosting
Price (retail) $10 from the Gentoo online store, includes only a single universal LiveCD for SPARC, AMD64, or x86
Product Web site Click here

Jem Matzan is the author of three books, a freelance journalist and the editor-in-chief of The Jem Report.

Click Here!