Things not to do:
  • put hardened in USE in /etc/make.conf. It breaks X right now.
  • put amd in USE flags if you're using net-fs/shfs and sys-kernel/linux26-headers. For some reason, there's great wonderful breakage with net-fs/am-utils.

Things that can be useful:

  • put buildpkg in FEATURES in /etc/make.conf. Takes a bit more space and time, but means you can easily re-add a package that accidently gets removed.
  • (and particularly
  • app-portage/gentoolkit has a bunch of really useful commands
    • dep-clean - Shows unrequired packages and missing dependencies
    • equery - Package Query Tool
    • etcat - Portage Information Extractor
    • euse - command line USE flag editor
    • glsa-check - check system for possible security problems
    • qpkg - query package tool
    • revdep-rebuild - Reverse dependency rebuilder
  • app-portage/esearch provides a speedy replacement for emerge search but /usr/sbin/eupdatedb has to be run for it to work. And it's not automatically run. And it takes a couple minutes. But it's fast once it's built.
  • use dispatch-conf instead of etc-update
  • Update steps
    1. emerge sync
    2. emerge -uDav world
    3. emerge -av depclean
    4. revdep-rebuild -pv
    5. revdep-rebuild -v
    6. dispatch-conf
  • USE flags are only so useful. Set up /etc/portage/package.use for per-package flags and overrides. Like djbdns's ipv6 patches not playing nice with other patches. More details at
  • dev-python/psyco does some sort of jit thing for python. There's no good way to add it permanently to scripts, since it's lost each time the script is re-emerged. But in the meantime, you can edit files like /usr/bin/emerge and add the lines below. See for some details.
         try: import psyco; psyco.full();
         except ImportError: pass

Rumoured useful things that haven't been checked out yet

  • Putting dev-java/sun-j2sdk and dev-java/sun-j2sdk-1.4.2 into /var/cache/edb/world will allow the latest version of sun-j2sdk to be installed, but will keep version 1.4.2 installed also. Of course, this only works with packages that don't need to live in the same place, and sun-j2sdk is a good example of that.
  • This seems to work. But the goo in /usr/portage/eclass/java.eclass for testing whether or not there's a JVM set up has been flakey as hell. It might work properly now, but I still don't test it.

Problems that haven't been correctly solved:

Problems that were solved:

  • ntpd was failing to drop root privileges. Make sure the modules capabilities is loaded.

Problems that have gone away:

  • using sys-kernel/linux26-headers causes breaking with net-misc/iputils and I don't know why I'm the only one finding it. Or maybe I'm not, but it's not obviously reported anywhere. One workaround is editing the ebuild for iputils and commenting out the sed lines for a makefile change on the includes.
       sed -i \
               -e "s:/usr/src/linux/include:${ROOT}/usr/include:" \
               Makefile libipsec/Makefile setkey/Makefile \
               || die "sed /usr/include failed"
  • But this is stupid. And goes away each time you emerge sync unless you set up an overlay directory, and then you don't get the updates.
  • if /etc and /tmp are on separate partitions (e.g., /tmp is a tmpfs) dispatch-conf breaks.
Edit | Attach | Watch | Print version | History: r10 < r9 < r8 < r7 < r6 | Backlinks | Raw View | WYSIWYG | More topic actions
Topic revision: r10 - 2013-02-22 - DrewPilcher
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback