When I began my Gentoo adventure, I believed that the main difference between Gentoo and the other distributions I've used (Caldera, Red Hat, Mandrake, Xandros, Storm, SUSE, Debian, Slackware, and Ubuntu) was that it was a roll-your-own distro, requiring you to compile everything you use. But after struggling with Gentoo for 10 days, I realized I was wrong.
I began on a Friday and spent the weekend doing Gentoo installs -- ranging from the ultra-fast minimal install (live CD) to a partially pre-compiled Gentoo Reference Platform install from the live CD. On Monday I decided I was Gentoo-savvy enough to use it on my production desktop platform. I even joked with my co-workers about it, saying that back in the day, Gentoo users first had to rip the source code from the bone with their teeth before compiling and installing it, but now the live CD had sissified the process to the point that anyone could do it.
I exaggerated the ease of installing Gentoo. For a proper Gentoo install, you'll need to read the fine manual. Read it a couple of times. Cover to cover. Pay particular attention to the sections on USE flags and Portage.
You will hear, see, and read "RTFM" dozens of times before you're done. But don't make the mistake of thinking that simply means having a copy handy as a reference during the installation, because by the time a question appears, it may already be too late. You need to RTFM before you begin.
When you finish, you can start looking for answers to questions not covered in the manual. Learn everything there is to know about your hardware and the drivers the various components use. Study GCC and the options that govern the behavior of GCC version 4.1.1. You can find a short list here. You'll also want to have more than a nodding acquaintance with Xorg if you want to use a GUI display.
I did the first install by mistake. I thought I was installing the live CD. The minimal install is a live CD, too, but it's different. When it finished, less than 15 minutes later, I assumed it would then continue the install from the hard disk after I rebooted. But it just sat there. That was the first in a series of bad assumptions. On the plus side, it led me to the #gentoo IRC channel on irc.freenode.net.
The IRC resource
|
|
| Click to enlarge |
When I asked how to continue after doing the (minimal) live CD install, they pointed me to the Gentoo 2006.1 live CD manual. After reading a few pages of the manual, I realized that the minimal live CD did not equal the Gentoo 2006.1 live CD. So I stopped and got the real thing.
After I had downloaded, burned, and booted from the live CD, I found myself with a network-connected GNOME desktop system with a cute but cool Gentoo background. The desktop included icons for Computer, Gentoo's home (Gentoo being the default user name), the CD-ROM drive, a CLI version of the Gentoo installer, a GTK version of the Gentoo installer, and an installer FAQ.
I selected the GTK installer and was presented with page 1 of a 17-page installation and configuration script. I chose the settings I felt most appropriate and kicked off the install. In no time at all, GCC began compiling everything that didn't move. That was Friday afternoon. At 10:30 on Saturday morning, it was still cooking, so I decided to take a different approach to the install.
For the next attempt, I followed the Gentoo Reference Platform (GRP) path, using pre-compiled packages anywhere I could. That worked out pretty well, and I played with and kicked the tires on Gentoo on my test box for the next day or so, learning how to use Portage and emerge to install applications. Then I thought I was ready for the big time, so I decided to migrate my production desktop machine from Ubuntu to Gentoo.
I didn't do this out of any unhappiness with Ubuntu. I try to move to a new distro every six to 12 months, so I don't get locked into a set of distro-blinders. I've happily used Ubuntu for over a year, and I'm sure I will run it again. But it was time to change, and what better way to check out Gentoo than a real-world scenario.
The migration begins
I began about noon on Monday. I decided to try an install more in keeping with Gentoo tradition and philosophy, by compiling almost everything except OpenOffice.org. Besides, it was the Labor Day holiday, so I had almost 24 hours before the workday began.
The live CD didn't like the video card in my machine. I noticed as I booted that the text began about three-quarters of the way across the screen, then wrapped around to continue on the left side. When the GUI display appeared, it was similarly offset. Using the monitor's auto-image adjust feature, I was able to set the display properly.
I selected the Stage 3 install, with GRP extras. When I tried to proceed, I couldn't, because I hadn't told the installer where I wanted to get the Stage 3 tarball. I didn't know where to get it, so I visited the #gentoo channel (and remained there until the install was done). Luckily, during an install from the live CD, you can surf, chat, and play games, so I didn't have to abort the install, and a kind soul on the channel gave me the URI for the tarball.
I chose the snapshot version of the Portage tree. When faced with the settings for make config, I accepted the defaults and moved on. I started to choose the live CD kernel, because the installer suggested that this would get the system up and running quickly. Then I noticed that I wouldn't be able to install any packages that required kernel sources if I did that, so I opted to fetch and build the kernel from source code.
I left the kernel-config option blank, selected GRUB as the boot loader, and specified that it live in the master boot record on /dev/hda. After selecting eth0 as my network interface device, and specifying DHCP for the network configuration, I accepted the default suggestions for cron duty and logging. From a menu of Extras offered, I chose GNOME, Xorg, and a few others.
Then the install began in earnest, and I became very good at playing Mah Jongg. When I got bored with that, I skimmed through the Gentoo FAQ. One of its questions read: "Gentoo is too hard to install and I feel like whining." The answer? "Please see /dev/null."
At 5:30 p.m. I checked Gentoo's progress. 120 of the 474 packages had been emerged. Some packages take longer than others, of course. Xlib seems to have been a biggie, for example, and since it had finished an hour before, 20 others had been compiled and installed. By 9:00 p.m., 175 packages were done. My hopes for the install finishing on the same day evaporated.
Install failure
By 7:30 a.m. Tuesday morning, Gentoo was up to package 326, and still cooking. A few hours later, after almost 24 hours of continuous compiling, the install failed when emerge said it could not emerge media-libs/zlib1.1.3.r2. At first I thought all was lost, but the FAQ and the IRC channel assured me that I could resume the emerge by specifying the --resume and --skip-first options. Emerge, however, had other ideas, and it told me there was nothing to resume.
I crossed my fingers and tried booting from the hard disk for the first time. It worked, and I logged in as root, since my attempt to add a user during the install had failed. I used the GNOME User and Group manager to add a user, signed off as root, and signed back in as an ordinary user.
The first order of business was to emerge Xchat so I could communicate with my colleagues on IRC. For the rest of the afternoon, I was happily Gentooing, emerging this and that, getting sound to work, tweaking my X config. I think it was something that I did trying to get the Nvidia driver installed that was my downfall. Whatever it was, it broke X beyond my ability to repair it. And while the IRC channel was sympathetic, it was really impossible for them to be helpful since I wasn't sure what I had done to break it. Sometime after 5 p.m., I decided I would have to bite the bullet and reinstall.
Post-mortem, I believe that I caused the problem by setting a keyword in /etc/make.conf to ~X86. That told Portage that using unstable code was fine with me. I made that change because one of the packages I wanted to emerge required it, and I didn't know the correct way to allow test/unstable code in a single package. I paid the price for not knowing that.
Gentoo install: take two
The second time around was a lot different than the first. Before starting the install, I moved my entire home directory from the first drive to the second so I could save it, since one of the things I had managed to do before crashing the system was to recover my email, chat, and browser settings and data from the second drive.
In the interest of speed, I chose GRP binary packages wherever possible. A little more than an hour later, I had a working system again, with no loss of data. The resolution wasn't right on my monitor, but I was afraid to try to fix it, given what had just happened with my last X experimentation.
I lived with the bad resolution for the next few days while trying to catch up at work and continuing to emerge and tweak the system to get it back to the same functionality it had while running Ubuntu. Finally, I decided to try to resolve the resolution issue.
Right away, X started crashing again, complaining that the frequency was "out of range," even though it was not. Even worse, I couldn't figure out how to get it to boot into single-user mode, and the GRUB menu contained nothing but a single boot option, which started GDM and crashed before I could do anything.
I experimented with various edits to the GRUB boot commands, but never found the right magic. I decided to simply copy the working Xorg.conf from the live CD to my disk and use it. After booting the live CD, I mounted the drive and copied the file, then rebooted from the hard drive. Success!
Then I noticed that I had lost my sound again.
That was the final straw. I was spending all of my time tending to Gentoo and none of my time being productive. I called a halt to the great migration and admitted to myself that I was simply not good Gentoo material.
Is Gentoo for you?
About an hour later, Gentoo was gone, replaced by Debian Etch. It took me five minutes to get the sound working, another five for the printer, and the resolution problem never happened. And though I still have a little bit of tweaking to do, the system is very nearly as functional now in all respects that it was when I was running Ubuntu.
Why are Gentoo and I not meant for each other? I'm sure there will be a few Gentoo users who will blame me for all the problems. Let me cut them off early. I agree. If I knew everything there was to know in order to be a competent Gentoo geek, I'm sure I never would have run into all those problems. It's my own fault.
Gentoo is a popular, powerful, well-crafted distribution that panders to your geek side to the nth degree. You want control? Gentoo hands you the reins and wishes you good luck. How much luck you need depends on how much you know. But it's simply not for me. Like a good programmer, I'm lazy. While it was once fun to compile the kernel and mention it the next morning while grabbing a cup of coffee, these days I want to use my machine for things other the care and feeding of the operating system.
Note: Comments are owned by the poster. We are not responsible for their content.
By the way, the title for the 2001 article didn't come from me, it came from a disgruntled MPlayer user in his online complaints about the arrogance and rudeness of the developers.
Programmers rule, admins drool.<nobr> <wbr></nobr>;)
I use gentoo on about 12 machines, both servers and workstations.
I think the differences are big, and a source distribution is in no way as "easy" as a binary distribution: there's just much more to consider when handling source. What compiler is used to compile packages? What compiler was used to compile library X which is needed in the compile of package Y? Are use flags consistent over a dependent set of packages? Have they been overridden somehow in an improper way?
I grant you that some of the tools surrounding portage are not that great. Use flags are an example although not that important - you look 'm up in the ebuild and these are easy to read and find. You state that none of the tools worked reliably. I use gentoo a lot and find that an extaggeration. Sure, ebuilds do not always work expecially when mixing STABLE and UNSTABLE packages but that is not unexpected, and a fix is usually easy to find. And there are not that many more tools I need to do proper system maintenance: i use vi/less to examine ebuilds in<nobr> <wbr></nobr>/usr/portage; I use equery to relate files to packages and vice versa and I use the various *-update scripts for maintenance. That's about it, and they often work rather well. Which does not mean that the tools cannot be better - they can.
I thing one should not position gentoo as a simple end-user distribution. It requires way more knowledge about both Linux, the software you install and the idiosyncraties of gentoo/portage itself. And an installer does not fix this at all.
I've been using Gentoo without difficulty for a year or two, and had no idea that doing so was evidence that I had acheived such a level of Linux eliteness. (Or should that be l33tness?)
Go me!
;o)
It's a pity that your gentoo experience went this bad. But reading your article and some of the comments on it do make me understand something: I think most people do not understand that a source distribution is fundamentally different from a binary one, and it is by definition way more complex.
Some of the things you encounter (and have not yet encountered like config file maintenance wrt updates) are indeed gentoo shortcomings. The most glaring one is X configuration where many distributions indeed have fine utilities which generate a proper config, using gentoo one has to do most of the work by itself. The same goes for many config files: gentoo expects a higher level of knowledge about many config issues, even though default configs are getting better. Most gentoo users (read: the ones providing the ebuild<nobr> <wbr></nobr>;-) have more knowledge of linux and have less of a problem doing this, and in this way gentoo is kind of a trap: things do not get fixed because most users can fix it by themselves. Other users use forums.gentoo.org and learn. This is not an end-user friendly way but at this point gentoo is not meant to be for end user (even though things like the live CD and the installer seem to indicate otherwise)
In a binary distribution your provider makes a huge number of choices for you. Using gentoo you have to make these choices yourself. Can it be any other way than that this increases complexity? Learning gentoo is indeed more difficult. USE flags, selecting stable/unstable packages etc all give you lots of rope to hang yourself. Also, since gentoo is all about compiling sources most of the problems also come from compiling sources. And these tend to be not-too-nice problems which exceed the occasional RPM dependency hell. Luckily most problems can be easily fixed by searching forums.gentoo.org or googling.
Many people here complain that gentoo compiling takes an [expletive of your choice]load of time. I think that is utterly silly. What does one expect of a source distribution? It's nature is to compile anything, and some packages are huge! Patches (minor fixes) for open source software are also source so a fix means an update to a package and a complete recompile. Can it be any other way? Complaining about compilation times is silly when you use a source distribution: it's the nature of the beast. In addition these compilations are usually only a problem while installing; once your system is up and running you can just compile in the background while you work. Just don't switch the machine off when you go off to breakfast and sleep<nobr> <wbr></nobr>;-).
Complaining that packages change often, implicating that recompiles are needed all of the time is silly too for two reasons:
The gentoo live CD and the installer that is being created might give you the idea that gentoo is just another Red Head or SuSE. It is not: it is just a convenient method for people to get a gentoo machine up without all of the boring work (reading the quick install; doing a lot of typing; waiting for one's beard to grow while the thing compiles [yes, not all of us grow beards but I imagine that a KDE compile might at least force our female brethren to wax once or twice 8-(]). In many ways it does not prevent you from having to learn a lot because it is still the same distribution! And the current installer is not even that good - if you want to install Gentoo it is way better to start with a gentoo-based distribution like <a href="http://www.vidalinux.com/" title="vidalinux.com">VidaLinux</a vidalinux.com>, one of the fastest ways to get a fine gentoo system installed.
I've used gentoo for about four years now and it has been a great experience. Once you have reached a basic understanding (which consists of more knowledge than needed for a binary distribution, and good reflexes [error? forums.gentoo.org]) then gentoo is a very maintenance friendly distribution with lots of options and flexibility. Which comes at the price of being forced to learn a lot about Linux.
Not For Everyone
Posted by: Anonymous Coward on September 20, 2006 12:26 AMI learned more in five months of running Gentoo than I learned in five years of running Red Hat/Suse/Mandrake.
#