I am a six-month-old Gentoo user now! Six month ago, I posted about being a newbie of Gentoo. Now I could say I am happy with my decision of switching from Fedora. Please note that Fedora is a great distribution, I personally think Fedora is better than most of distributions—Ubuntu included.

If you know of Gentoo a little more, you should know that it’s a source-based management, you install packages (applications) by compiling source code with Gentoo package management program, Portage. It sounds scary whether if you have experience to tar xf program-x.y.z.tar.gz && cd program* && ./configure && make && make install or not. Of course, you wouldn’t have to run the command but just run emerge <package> to compile and to install it. The Gentoo developers have taken care of that for you.

However, at beginning, the effort of using Portage is not as easy as other binary package management distributions. You need to understand your system more and to configure how you want the package being compiled as you do manually. You need to set up /etc/make.conf, which has C(XX)FLAGS, etc. This leads a common discussion: Does -O3 helps in program execution speed? Go google it.

You would also need to edit /etc/portage/packages.*, because sometimes you need unstable packages or you need to specify per package USE flags.

Like other binary package management, you would encounter problems sometimes. Most of them are failure to compile, I had few times. Google “gentoo bugs package_name version” to see if it’s already been reported and also check Gentoo Forums. Sometimes, you resync after, it will be resolved.

How about GCC upgrade? I had done twice and met no problems, one right after I installed Gentoo 4.1.X to 4.3.X, few days ago, 4.3.X to 4.3.4. You only need to follow the manual. If you want to do something, just google. The only drawback of Gentoo that I could think of is compiling time. The last GCC upgrade took me 21 hours to rebuild system + world. Well, it’s a trade-off. If every six month to do whole system rebuild, I could accept that.

For some really big package like OO.o or Chromium browser, you could emerge the binary package. Yes, Gentoo provides some binary package, try to append -bin after package name. When I first time to compile Firefox on Fedora, I thought it’s a big app. Once you tried OO.o or Chromium, well, you will see what’s really called “Big app.”

About my environment, XDM > Fluxbox. I don’t use GNOME or KDE months before I switched to Gentoo. The only few major GUI apps are Firefox, GIMP, GnuCash, VNCViewer, and OO.o. Firefox runs most of time on my system.

I use Midnight Command to manage files, MPD + ncmpcpp to play music, conky to monitor my system, VIM to edit files, BashPad to launch programs, xrandr to manage dual-monitor, and some self-made scripts to help myself.

I think one of major point of using Gentoo is USE flag, if you have compile a program, you would have known that ./configure --help tells about what kind of features that you can enable or disable. The binary management distributions would probably enable all because they have to meet all of users’ needs, therefore, the compiled result would have lots of things you would never need to use or you have no idea there is a such feature. For example, the mplayer,


> emerge -pv mplayer

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] media-video/mplayer-1.0_rc4_p20090919-r2 USE="X a52 aac alsa ass cddb cdio dirac dts dv dvd dvdnav enca encode faac faad gif gmplayer iconv jpeg live lzo mmx mp2 mp3 network opengl osdmenu png quicktime rar real rtc schroedinger sdl shm speex sse sse2 ssse3 theora tremor truetype unicode v4l v4l2 vorbis x264 xinerama xscreensaver xv xvid -3dnow -3dnowext -aalib (-altivec) -bidi -bindist -bl -cdparanoia -cpudetection -custom-cpuopts -debug -dga -directfb -doc -dvb -dxr3 -esd -fbcon -ftp -ggi -ipv6 -jack -joystick -ladspa -libcaca -lirc -mad -md5sum -mmxext -mng -nas -nut -openal -opencore-amr -oss -pnm -pulseaudio -pvr -radio -samba (-svga) -teletext -tga -vdpau (-vidix) (-win32codecs) -xanim -xvmc -zoran" VIDEO_CARDS="-mga -nvidia -s3virge -tdfx" 0 kB

(If you want to know what the USE flags for, just run equery u mplayer.)

With Gentoo, you could turn off those that you don’t need and have a cleaner version of programs and environment. This does reduce the flexibility, but you only take time to re-emerge with new USE flags and this kind of change rather happening. It is worth if you do have time.

The other good thing about Gentoo is its tools, for example, eselect, very powerful to customize some settings. Here is a sample of what it can do for you:


> eselect
Usage: eselect

Global options:
--no-color,--no-colour Disable coloured output

Built-in modules:
help Display a help message
usage Display a usage message
version Display version information

Extra modules:
bashcomp Manage contributed bash-completion scripts
binutils Manage installed versions of sys-devel/binutils
blas Manage installed BLAS implementations
cblas Manage installed CBLAS implementations
ctags Manage /usr/bin/ctags implementations
editor Manage the EDITOR environment variable
env Manage environment variables set in /etc/env.d/
fontconfig Manage fontconfig /etc/fonts/conf.d/ symlinks
java-nsplugin Manage the Java plugin for Netscape-like Browsers
java-vm Manage the Java system and user VM
kernel Manage the /usr/src/linux symlink
lapack Manage installed LAPACK implementations
modules A module for querying modules. By default, it lists all available modules
news Read Gentoo ("GLEP 42") news items
oodict Manage the configuration of dictionaries for OpenOffice.Org.
opengl Manage the OpenGL implementation used by your system
pager Manage the PAGER environment variable
profile Manage the /etc/make.profile symlink
python Manage the /usr/bin/python and python.1 man symlinks.
rc Manage /etc/init.d scripts in runlevels
vi Manage /usr/bin/vi implementations
visual Manage the VISUAL environment variable

Gentoo is easy to maintain if you are willing to pay time first to learn. I don’t know if it’s still easy if you use GNOME or KDE, but I am sure it is if you use other DE or just window manager because you would know your system and each configuration better. I can do everything and even more and know better. For example, I didn’t know gmplayer had ceased development when I was using Fedora, but I knew it after I emerged mplayer with gmplayer USE flag. When you emerge something, you will get some good information, it might recommend you something else or some post-emerge actions. If you use Gentoo, you will learn to read messages.

I am not a very careful user I believe, maybe just above average? I know Gentoo is perfect for me, Fedora is great for me, Arch Linux is awesome for me. But I just could stop loving using Gentoo. It’s simply fantastic because I have it and control it more. It’s meant to be used by you, not like some are using you.

Hail Gentoo!