There have been many articles as of late about the so called “source” distributions of Linux. Articles about “rpm hell” and how to get out of it. While I have been using Red Rat since the first release (and do have some things for and against it) there is no distribution that will please all of the people all of the time. Then again, that is what makes an OS like Linux nice, in my opinion. Choices. Today, Gentoo Linux is my choice.
I was told some time ago of a new distribution. One unlike RedHat with its redhat package management (rpm) system. One unlike Debian with apt-get. One that takes some time to
build, but is worth it. Well, as the old adage goes, hard work pays off in the end, so I decided to take Gentoo Linux for a spin and see what it was like. I will describe the install, breifly, which can take quite some time, the performance of the running
system, and then contrast that slightly with ports of Gentoo.
I note first off that this distribution is not for the faint of heart, but does have some advantages (which in some cases are disadvantages) right from the get-go. The install image
is small. The release I downloaded (1.0) was a scant 16MB. Now that is a small image. Those of you tired of grabbing RedHats 2 CDs or SuSes 7 might be glad to hear that, but wait. The install CD is just that, like an install floppy, it has enough to “get you going”. Then the installer will download the packages it needs for your system to build itself, then after that (and a reboot) if you want any other packages you can download them also. Of course, I am leaving some things out for now, but that is the basic concept. Now onto the things I left out…
The command line Portage system and one of its GUI front ends (there are 3 GUI efforts), KPortageMaster.
Gentoo (until recently) does not install packages as one would expect (ala RedHat, Suse, etc). The install process actually grabs the latest source from the Gentoo server and builds them right on your machine. This serves many purposes, some of which are: small install disk, packages are built for the machines CPU type, the process itself takes care of dependancies, you get the latest snapshot of the tree. These few I have listed are pretty big pluses. The CPU optimization alone is a good thing. With most other distributions one has a choice of perhaps x86 compatibility or an i686 build. As noted
in the preamble, this also solves the “package-dependancy-hell” problem.
The Gentoo install, for the first part, is quite envolved from the user perspective. First off the user should be familliar with installing linux and doing good old command line operations. I can see that someone following the instructions to the tee (with small amounts of intuition) should be able to install Gentoo, but if they run intro trouble, or are not familliar with say, linux networking, it could be sligltly frustrating. A running machine on the side with internet access to search or read FAQs would be a big plus
for those not so familiar.
Booting the CD brings you into a running kernel, just as most other Linux installs do, but the similarity ends there. The user is dropped to a stripped shell prompt and must begin preparing the system by hand. Then they must load any kernel modules needed, startup networking, partition the drive(s), set up the partitions, format them, mount them, mount the CD, unpack the stage they want to use and whamo, they are in a small Gentoo environment!
Backing up a moment, the small install CD is sort of a “you get nothing, please build everything” distribution. It is called stage1. There are now Gentoo CDs with stage2 and stage3 tarballs. The stage2 tarball is one that has bootstrapped for you already.
This takes quite some time on older machines (it took an hour and a half on a Dell Precision 330 1.4Ghz machine with 512MB ram and SCSI-U160, it takes hours and hours on say a AMD K6-200, the other x86 based machine I installed gentoo on). The stage3 tarball is one
that has bootstrapped and has the snapshot of the latest portage tree. To summarize, stage1 takes the longest as the install builds everything after it grabs it, stage 2 cuts that about in half (roughly) and stage3 is basically a running system that needs to get up to date and perform a kernel compile. It is the “fastest” install type.
I will not get into the gory details of an install. The install notes for x86 based machines are pretty good, and if the person performing the isntall is slightly familiar with linux, all should go smoothly. A few personal comments about the install: Its slow, even on a “fast” machine (the 1.4Ghz machine mentioned above was a work machine, my personal machines are in the 200Mhz range, and installing gentoo on them is a war of
attrition to say the least). You need a decent connection to the net, or at least to the gentoo server, if performing a install from stage1 or 2. Granted, the install is not huge like some other distros are, but the build will take a long time, and waiting 10mins to
grab a big package will just add to the wait.
Keep in mind that after gentoo is installed a lot of “familiar” packages are not there. Users will have to grab what they want, somewhat like a Debian install, after completion. There are cons to this setup, but I think even the casual serious user can see the benefits of this. Nothing is there that one does not want. The user will know what is installed on the machine. It also makes it quite simple to seetup a stripped down customized server. Lightweight, and optimized for the machine, gentoo has the makings of a serious server optimized distribution.
So how does it perform? In a nutshell, I was running RedHat 7.1 on the aforementioned Dell machine. I had also installed Debian op the same box. After gentoo was installed and X was compiled and configured (for the comparison with the other distributions) it was noted that everything was quicker. Booting to a working bash promp for instance, was faster than the previous OSs. Granted, we are not talking huge amounts of time, but enough to make a noticible difference. Previously on RedHat I ran siege against the rpm install of apache. Running the same apache version on gentoo and running siege against it I noted an decrease in response time and the number of simultaneous connections the server could handle increased slightly. Unfortunately, I did not investigate into what led to this increase in speed at the time. It could have been the kernel, the fact that the entire OS was compiled
machine specific on that machine, or that apche was compiled machine specific on that machine. It was most probably a combination of all of them.
Before I go into an install comparison of different architectures, I wish to note that gentoo help, in the form of online manuals and IRC channels is good, for the most part. The online install is fairly comprehensive, until you get to the install manual for ppc (RS/6000 not Apple) and Sparc. The ppc install manual is completely Apple oriented (which is to be expected) and the Sparc manual basically tells you to consult the x86 manual. This
is not too much of a bad thing, however, the Sparcs do requrie some “other” operations to get them going and the RS/6000, well, that is just a lot of work (and you thought the x86 install was a lot of work). The gentoo IRC channel has a lot of people in it, mostly
not talking. I asked a question in #gentoo about installing on a machine with EISA since on “other” distros I can type in a kernel parameter at the boot prompt (which I could not do with gentoo). It took all of twenty seconds before someone responded with a command line option at boot to add options to the boot kernel. Not bad. The #gentoo-sparc channel on the other hand is where we find people with responses like “why would you want to install Linux on a Sun box?” (that is an actual quote, I have the logs). As far as I can tell, no one in that channel (for the week that I was there) has installed #gentoo-sparc. I think the
maintainer has, but he was not active. All the gentoo IRC channels are on openprojects.net and the list of gentoo specific channels is at the gentoo.org homepage. Note that all manuals are not on the homepage and that gentoo-sparc is at mirrors.
Lastly we compare the install process of gentoo linux on x86 based hardware and “other” hardware, most specifically, Sun sparc hardware. I have a little spot in my heart for Sun Microsystems gear. I own a Sparc 10 a Sparc 20 and an Ultra 1. I have owned
a Sparc 2, 4, 5, Ultra 2, Ultra 5, Ultra 30 and worked on the Blade 1000 and E250. My personal preference is the Ultra 2 or the Ultra 30. They are cheap (respectively speaking), fast running linux and rock solid. Expansion cards (of the SBUS variety) can be had used for cheap and the older units such as the Sparc 10/20/Ultra 1 do not use much power and are small. I have had many a Solaris admin ask me why I would ever want to
run Linux on Sun hardware, but after I show them how fast an Ultra 1, 2, 5, or 30 loads linux and runs, they stop asking questions. At any rate, installing something such as RedHat 6.2 sparc or Debian potato sparc on a Sun box is fairly straigtforward.
If you have a CDrom dirve (sun compatible) it is as easy as booting from it and installing. There are a few small pitfalls installing linux on the Sun, particularly the “whole disk” parition and where to put the swap space, but this is well documented.
Installing Gentoo on the Sun Ultra 1 appears at first to take a similar course. The CD boots fine and you are presented with the normal shell prompt for install with a minimal survival paragraph above for installing gentoo on sparc. Getting the stage1 and 2 on the machine is almost the same as for the x86 installs, but that is about it. After this you must download a kernel and compile it (32 or 64 bit specific). This is where the problems start. Keep in mind my Ultra 1 is a 200E, meaning it has a 200Mhz Ultra Sparc CPU and a few other things like 10/100 networking and USCSI interface, so it is a little quicker than a regular Ultra 1, and it still took gentoo 5 hours to get to a stage 2. At this point in time you do not want this install to fail. It fails. After the kernel compile to stage 3 the system will not reboot into gentoo. The kernel panics with various erros such as not being able to find a loader for modules. I had downloaded the linux-2.4.18.tar.bz2 from kernel.org as mentioned in the install instructions. I found out (much) later that the stock kernel has some Sparc “issues” and that some poeple have had success with the “vanilla” kernels. I found this to be true for only a few moments as the power died after install and my drive
was a goner. The joys and sad times of older hardware.
To summarize, Gentoo is a fast lightweight linux distribution. If you are in a hurry to get linux up and working this is problably not the distribution for you, however, it is well worth the wait. As previously noted, on a stock Dell machine gentoo installed
without a hitch and after an emerge and installing X et al gentoo did not have any hardware problems that I could see. It even played nice with the IDE cdrom burner (which I should mention RedHat has finally gotten to work without user intervention after install).
Gentoo linux is coming along quickly from what I can tell, support is readily available from IRC or the gentoo website and there seem to be an endless number of people willing to help solve problems. As with most other distros there are people in the help
channel who ignore questions which are covered in the install manual, but I digress and state again that this should not be the first Linux someone installs. A little *NIX experience will go a long way in making the gentoo install and maintenance smooth.
As for installing gentoo on hardware other than the x86 based or the Apple, it can be tricky at times, and some things are still undocumented. This is not to say that it can not be done, it just may take a little more effort than a “no problems” x86 install.
I think that the pros still outweigh the cons for Gentoo, and I know of many who are using it (some on laptops with USB 2.0 working) in many applications, from servers (which I think it is most suited for) to desktop systems. Having used RedHat linux since RedHat 1.0, the biggest pro for me for gentoo is not having to go fetch and install ten other rpm packages when I want to install something, or having to remove five rpm packages
when I want to remove something.
About the Author:
Robert Minvielle holds a M.S. in Physics and a B.S. in Electrical and Computer Engineering. His interests are Linux security, old hardware, esoteric hardware, and woodworking. You can reach him at firstname.lastname@example.org.