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 distributionsUbuntu included.
If you know of Gentoo a little more, you should know that its 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 wouldnt 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 its 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, its 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 its a big app. Once you tried OO.o or Chromium, well, you will see whats really called Big app.
About my environment, XDM > Fluxbox. I dont 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 dont 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 dont know if its 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 didnt 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. Its simply fantastic because I have it and control it more. Its meant to be used by you, not like some are using you.
Hail Gentoo!
Id rather nail my balls to the floor than use gentoo
ReplyDelete@Graham, you didnt sound like Gentoo at all, would you like to share your experiences with us?
ReplyDeleteWell written.
ReplyDeleteI used Gentoo for a couple of months, but it just took a lot of my time to tweak some obvious things.
But, for loving and learning GNU/Linux, its the best ;)
ive used gentoo for several years (well, ive started from slackware in 1999), including several mission-critical deploys such as firewalls/vpn, router, etc...
ReplyDeletei still love gentoo, but i dont work anymore as sysadmin, so when i need a ready desktop to work, i think gentoo takes too much time to choose/compile/setup software (even if every six months :P).
emerge is not yet *perfect*, it still lacks reverse deps, this could be a medium/long term issue
btw, good article :)
cheers,
a.
@kotnik, at first I took about a month to tweak everything, write scripts/C code, and I still modified my configuration from time to time. But most of them are not Gentoos configurations.
ReplyDelete@apeacox, I could understand the painful whole system rebuild if you have GNOME or KDE, and some other huge packages. Thats why I only use FluxBox. I have to say compiling time is that a thing you really could complain, but package choosing time is one we can. Every time I resync database and run `emerge -pvuD world` it took awhile, but I still can tolerate that.
I agreed that "emerge is not yet *perfect*," but its fine with me for its current stage.
I am a happy Gentoo user (It havent let me down...yet? :-))