A Gentoo diary: Intro

Posted by Scott_Ruecker on Jun 22, 2006 7:00 AM EDT
LXer.com; By H.Kwint
Mail this story
Print this story

LXer Feature: 22-June-06

Tired of normal distro reviews, I decided to write a review in the form of a diary. Written by an intermediate Gentoo user, this review offers some insight in administering a Gentoo desktop. So bear with me while I try to make my stuff work!

Now, I could just start to write about the things I tried the last few days, but it would be a good idea to introduce you to my desktops.

Desktop environment

Most Linux users use KDE or Gnome. I don't. I like the spartan, light way of life; why should you slow down your fast processor with graphics reminding you of baby fashion? Yes, also talking about the notorious Teletubby-hill and all that comes with it here.
Therefore, I use WindowMaker, with a real minimum of decorations. My opinion is, KDE and Gnome are most of the times easy to use, but they make it hard to have a mixed environment.

And a mixed environment I have!
On workspace 1, there's normally a translucent Eterm running.
On workspace 2, Xmms is playing random songs from my mp3-playlist. Xmms should be replaced with another music player since it is leaking memory at the rate of a tea strainer sometimes, which finally could make Linux hang, but more about that later probably.
On workspace 3, Firefox usually runs, and at the moment I'm trying to compile Konqueror with SMB support, which might also end up on workspace 3.
Then there's workspace 4, which doesn't do anything most of the times, since it is meant for serious work and I'm to lazy to scroll to it. However, I reserved it for office work, so it runs Koffice and OpenOffice most of the times.
Finally, we end up on the last workspace, workspace 5, which runs Amsn (a Linux MSN client, since about 80% of the chatting citizens of my country use MSN as their IM messenger), and sometimes it runs Azureus, for all my 'legal' stuff. In case you thought I lacked a file manager: my file manager is called "bash" and runs in the Eterm.
When my fingers are sore, I might consider using mc, which also runs in the Eterm, and when I am longing for baby graphics, I start KDE's Krusader. Krusader is really brilliant if you are used to the Windows/TotalCommander; I spent half a year to look for a graphical mc-like program, and Krusader is just that. Editing configuration files normal happens with nano, and normally I edit html files using Kwrite. Now, you may believe I installed whole KDE. That's not true, I only installed kdelibs and kdebase, and the parts of KDE I need. Basically, you could say I have half KDE. The lacking half makes sure KDE programs have bugs sometimes, which is a good thing; it keeps me from hanging on the streets.

The boxes

I have two computers, because my life is divided between two places. Both of them are runnig Gentoo at the moment, and I haven't used any other Linux distro the last two years. That is, apart from some LiveCD's to test other distro's, and a laptop runninng Debian, which belongs to a friend of mine (did I mention Debian is for the old man and their grandpa's?). At school, at which I learn to make mechanical drawings, we have to use Windows. AutoCAD doesn't run on Linux under Wine anyway, so it wouldn't be possible to use Linux there. It's better I have Windows on my CAD desktop, since that desktop probably would be compiling the whole day if I had Gentoo on it, which would raise the electricity bill of my school a fair bit.

The first desktop I own is featured with an Asus S754 mainboard, houses a cheap 32 bit AMD Sempron 2600+ and has a passively cooled nVidia 5200 graphics card. It's full of Nexus damptek, since I don't like 'emerge'-sounds when I'm sleeping. It has two Samsung 5400 spinpoint drives (they produce less noise and heat than a 7200 drive), which are configured in software-RAID using EVMS. The housing is a real cheap Casetek with a Tagan 330 watt power supply. If you sit behind it, you have to turn the CRT-monitor on to see if it the desktop running, because it's really inaudible. If I remember well, I did a stage1 install on this desktop. It is rather stable, and I only had to install it twice; it is normal for people to screw up their first Gentoo-installation, and it requires skill to do it good at once. However, a few moths ago I accidentaly switched the power switch off while glibc was copying its fresh compiled files from the working directory from /var to /usr. After this incident, all was pretty lost and I couldn't repair anything, and because of the always not-so-present backups, I had to start over.

The second desktop, the newer one, has a MSI S939 mainboard on which an AMD 3000+ 64 bit is plugged in, has an MSI nVidia 6600 graphics card, and an Arctic Cooling Silentium case. It makes a lot more noise than the Casetek at the moment, even after I papered it with some Nexus damptek 'carpets' from the inside. Both of them aren't grounded, since there isn't any grounding in the rooms where the desktops live. As long as I don't fiddle too much with some cables - when I did, it gave a real nice big spark, followed by a lot of dark in the surrounding rooms a few weeks ago - all goes well. It features two SATA-II harddrives, which are also configured in software RAID with EVMS, and together the drives are as quick as the biggest penguin on the earth. The biggest penguin on the earth is called Gentoo by the way, in case you didn't know. As stage1 installs weren't supported anymore when I installed Gentoo on this system, the second desktop has a stage3 install. Don't worry if you don't know the differences between stage1 or stage3, since only stage3 is supported today, these are ancient terms only interesting for ricers.

When I just had my second desktop (the fastest), I wanted to install something 'user-friendly' (inluding baby-graphics) on it. However, both Ubuntu, Knoppix and VLOS hung when trying to boot X. Therefore, I needed a distro I could configure to boot up without also booting X, and dropping me to a shell. So, though the X-problem was solved now, I had a lot of trouble installing Gentoo (surprise!) on this desktop: Whatever I tried - and I tried a lot - I couldn't get my integrated sound and network chips working. After trying, fiddling, and being fed up and even thinking about installing Windows on it a lot (yes, kidding about the Windows part here), I choose the simplest solution. A friend of my borrowed me an Al-Cheapo® PCI Realtek network card, and for €10 or so I bought an even more Al-Cheapo® rickety Sweex sound card. I disabled the integrated network and sound capabilities on my motherboard, and after I finally figured out I shouldn't put the ethernet cable in the disabled mainboard socket but in the Realtek network card, all worked as should.

Settings

There are two accounts on this computer: The usual root account, and the user account. The user account is added to the group wheel, which gives the normal user the possibility to use su. I really use sudo a lot, and I even made some command groups in the /etc/sudoers file, to distinguish between tasks the normal user can do with, and without entering a password. This means, my normal user can use most of the packet-manager functions, like equery, genlop and emerge, without giving a password. Yes, I could add that user to the portage group, like the way it is meant to be, but this works fine for me.

Currently, I run the gentoo-2.6.15 kernel on the slow computer, and since yesterday, I use the gentoo-2.6.16 on the faster one. I have used a hardened kernel with PaX in the past, but it gave some annoying problems on the desktop, and since the services running on my desktop are as critical as a duck swimming in a ditch and the biggest number of users who are logged in at the same moment can be counted on three fingers, I switched back to gentoo-sources.

Probably you heard about USE-flags. Well, here are mine:
"16bit 3dnow 3dnowext X509 a52 aac amd asf asm async authdaemond automount bash-completion bcmath bittorrent cairo calendar ccache cdda cddb cdparanoia clamav cpudetection css dlloader dbase dbus dbx devmap dga dnotify dpms dri dvd dvdr dvdread erandom escreen etwin extensions fftw firefox gimp gimpprint ginac glibc-omitfp glx gnustep gs hpn id3 input_devices_keyboard input_devices_mouse irssi jack-tmpfs javascript jikes justify kcal kdeenablefinal kdepim kdexdeltas ladspa lame lesstif logrotate lzo mbox mcal mime mjpeg mmap mmx mouse moznocompose moznoirc moznomail mozsvg mp4 mp4live mpeg2 mplayer msn musepack musicbrainz network nfs no-old-linux nodrm nodroproot nolvm1 nomirrors nsplugin nvidia obcj ocaml offensive openssh openssl pda ppds real rtc sasl sharedmem stream subtitles svg swat sysvipc threads toolbar urandom utf8 video_cards_nvidia video_cards_vesa vim win32codecs x264 xanim xine xpm xvmc zip -apm -arts -emboss objc samba xvid"

Thank God I didn't have to type in all that stuff myself, this time ufed took care of that. Ufed is a tool to 'graphically' turn USE-flags on or off. Don't take graphically to literal: it uses ncurses. For people who don't know what ncurses interfaces look like: Think of colored ASCII art. A reader might ask me: "Do you use all the stuff mentioned in the USE-flags?" The answer is a simple no, but it is nice to know the stuff in the USE-flags is compiled in whenever you need it. Taking a look at the USEflags, you'd probably note, USE-flags also can be used to leave out some stuff. For example, my USE-flags forbid DRM-support, and they would leave out IRC support if I would ever accidentaly compile mozilla, which really makes me sleep better.

The boot process

Now, pay attention, because here is the most important part of using Gentoo: Always have a LiveCD lying around! Especially when you experiment with compiling your own kernels and when using LVM/EVMS, it is always useful to be able to 'by-pass' the boot-up process, in case your boot-up stops because you screwed up, or in case you forgot your root password. Be aware: Persons with physical access to your computer could also use this LiveCD to access your files without having to log in to your desktop. This could be made more difficult by adding a password to your BIOS and lilo, and probably by some other tricks. As I believe I trust the persons who have physical access to my desktop, I haven't secured the BIOS or lilo. For me, that would only be annoying if I screwed up again. LiveCD's are not only useful for accessing files on Linux-desktops, if configured in a right manner, they can also be used to bypass NTFS permissions on a Windows-desktop, or even to boot a diskless desktop (the WD harddrive went up in smoke) into an NFS environment.

As a boot manager, I use lilo. Not that lilo is better than Grub, because it isn't, but it is just more simply to configure in my opinion. I always manually configure my boot loader by hand, though I noticed some more user friendly systems like Debian can boot a new kernel using Grub without even editing a configuration file! The user-friendly-thing reminds me of some consideration we should discuss: Why in the world would somebody use a non-user-friendly Linux distributions if there are distributions who are?

Why Gentoo?

While some people use Gentoo because of the optimalizations, I don't consider thet that important. Let's give an example. I also tried to install a 64 bit distribution on my 64 bit desktop, but after I discovered I couldn't install the binary 32 bit windows media codecs and could get more problems like that, I decided just to install 32 bit Linux on my desktop. All worked again like I like am used to. I do have some desktop-general optimizations in my /etc/make.conf, but nothing more fancy than "-march=athlon-xp -O3 -pipe -fforce-addr".

No, to me, there are more important reasons for using Gentoo. First of all, it's because using Gentoo is probably the best way to really learn something about Linux and all that comes with it. If you know your way around in Gentoo with only Windowmaker installed on it, you can work with any Linux distro that comes with a command line tool, like Xterm, Eterm or whatever terminal. It doesn't work the other way around: People used to Suse 10.1 couldn't use Gentoo with only Windowmaker - which means no graphical configuration tools - without first having to read a bunch of manuals.
Notably, working with Gentoo on the desktop for two years provided half of the knowledge I needed for passing my LPI level 1 certification. Gentoo has really great help pages available, both the Gentoo docs and the Gentoo wiki are excellent. They are even that good, that I forgot other sources of information for Gentoo could exist for Gentoo-related problems.

The next most important thing is one simple word: Freedom of choice. As long as there are alternatives, nothing is forced upon you. This means, Gentoo doesn't install KDE or Gnome by default, if only because there isn't any default installation*. It doesn't force you to use one kernel branch, or any optimizations. It doesn't force you to have a spartan desktop like I have: you could install KDE or Gnome. It even doesn't force you to have X installed on your desktop.

Furthermore, user friendliness is a difficult concept. For example, take the process of making your wireless devices work under Suse 10.1. You start Yast, type in your root password, and everytime when restarting yast, you have to provide your root password again. In Gentoo, there isn't anything as yast, and you would just open a shell, use su, and by doing so, only would have to provide your password once. More important, is the mixed feeling I got when using Suse 10.1: Ideally, one shouldn't have to resort to the commandline, but in practice, one has. Therefore, you change back and forth between the command line and the GUI's to configure things, but when doing something in the GUI, you mostly won't know what changes at which place in the configuration files or settings you edit using the command line.

Comparing this to my own way of working, using Gentoo can be considered user friendly: Almost everything is done from the commandline, which doesn't confuse me by wondering what settings I just changed using the GUI. And yes, I could solely use the commandline in Suse, but alll Suse configuration manuals start by saying you should start Yast, and when problems arise and you use Google, all solutions tell using the commandline.

There's also the problem of one window opening another one, which opens a third one, and in no time, there are more than ten windows open to perform a configuration task. This can be very confusing: Which screen do I have to close first, do I have to Aplly or just Close, should I choose Advanced settings or leave them alone? When using the commandline, this doesn't happen most of the time, at least as far as I am aware.

Then, there are USE-flags. A while ago I wanted SSL support for my links browser on Debian. Since there were no USE-flags available, I had to use the internet to find how I should do this (not used to Debian as I am). I discovered I needed the package links-ssl, which in turn installed elinks. Elinks ssl support was broken, and worse, elinks looked different than the normal links. Darnit, that was not what I wanted, I never asked for elinks! In Gentoo, someone would just put 'ssl' in the USE-flags and recompile links. No need to search the internet for the name of the package needed, no need for a 'separate' package. This way, USE-flags could limit the number of packages a distro needs in my opinion.

Why not Gentoo?

We should also talk about reasons not to use Gentoo. That's the most simple part as far as I am concerned:
  • Compiling takes a long, long time, and raises the electricity bil. You get frustrated when gcc spawns an error after two hours of compiling.
  • Gentoo is DIY. You have to make everything yourself. Just like cabinets and kitcars made by people who don't know exactly what they are doing, Gentoo could break easily if it is done by an 'amateur'. Since that is what most of us are, things could break rather easily, and tend to become tied together with 'ugly' hacks. If you want a lot of integration, you have to build it yourself.
  • Installing Gentoo* is rather difficult. There isn't 'Gentoo out of the box'.
  • Too agressive USE-flags can break packages. It's not easy to find out you used the wrong USE-flags.
  • Looking at the amount of time I put into learning Gentoo, Gentoo isn't suited for people who want to get their work done as fast as possible.
  • Gentoo isn't suited for people with thoughts about throwing their computer through the window, who also don't have glass-insurance. I say this because debugging stuff can be really frustrating, and if you want rare configurations most people don't use, chances are big you have to debug a lot.
  • Gentoo isn't suited for people not wanting to manually edit their configuration files.

Okay, this were just some thoughts. The lists of pro's and cons are by no way complete, the longer I think, the more comes to my mind when talking about Gentoo. Therefore, I'd say it's time to stop the theoretical chat, and go on with day to day Gentoo-worries as soon as possible.

*The newest Gentoo installation media seems to contain a graphical installer which makes some 'very, very flexible default install', though I haven't tested it.

  Nav
» Read more about: Story Type: Editorial, LXer Features; Groups: Debian, Gentoo, SUSE

« Return to the newswire homepage

Subject Topic Starter Replies Views Last Post
Awesome carpenike 10 4,266 Jun 24, 2006 6:20 PM

You cannot post until you login.