Not sure of any books, but some documents on the Gentoo Wiki about the various projects are helpful.
I use /etc/portage/package.{use,accept_keywords}/* in a somewhat unusual way. For each package that needs tuning the USE flags beyond the eselected profile and some globals in make.conf, I have a file named "<catedory>.<pkg>" (e.g. media-libs.mesa) with a few handling some multiples. This lets me tune packages in a fine grained manner, and still see which ones I have fixed quickly. For example: In eselect profile: default/linux/amd64/13.0/desktop/kde In make.conf: (may well repeat some from profile, try to group by functionality) USE="smp \ cdr dvd dvdr css usb -bluetooth \ caps branding unicode ipv6 tcpd \ kde qt4 qt3support plasma gtk -gnome \ dbus udev udisks perl samba \ icu idn maildir -mbox \ alsa -pulseaudio ffmpeg -libav gstreamer \ X glamor opengl xattr xine xinerama xv xvid \ sdl wxwidgets \ ogg theora vorbis flac dirac schroedinger mp3 mp4 matroska mtp \ a52 aac audiofile cdda faac libsamplerate sndfile x264 \ vdpau xcb vaapi quvi \ lzma lzo lz4 zlib \ cvs git subversion \ sqlite mysql introspection \ bash-completion vim-syntax \ fontconfig truetype threads nptl \ ruby_targets_ruby21 -ruby_targets_ruby19 -ruby19 \ -nepomuk -semantic-desktop \ -ldap -evo -eds \ offensive" and an ls(1) of /etc/portage/package.accept_keywords : app-admin.mcelog app-arch.lzma app-cdr.k3b app-emulation.qemu app-emulation.virtualbox app-forensics.unhide app-portage.layman app-text.yodl dev-libs.libebml dev-libs.nss dev-libs.pugixml dev-python.pyGPG dev-python.pymountboot ... virtual.ffmpeg virtual.libusb www-client.chromium www-client.firefox x11-libs.libva x11-libs.libva-intel-driver x11-libs.libva-vdpau-driver x11-libs.wxGTK zzzpackages.keywords The last entry is an empty file to catch the "automagic" changes portage may propose so that they can be broken out into individual files. package.use/* is similar. I have found some wedged cases where there isn't any way to solve it except by using some "unstable" arch packages (while waiting for them to be stabilized.) It may seem unwieldy, but I fnid it much easier to deal with than one big file with all the packages isted in it. For example, in /etc/portage/package.use/app-office.akonadi-server I have: app-office/akonadi-server soprano -sqlite which makes the emerge be quiet about having both mysql and sqlite enabled. Don't be afraid to ask questions, it is an easy cure. -- G.Wolfe Woodbury redwo...@gmail.com