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.
- http://www.gentoo-wiki.com (and particularly http://www.gentoo-wiki.com/TIP_Index)
- http://www.gentoo-portage.com
-
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
- emerge sync
- emerge -uDav world
- emerge -av depclean
- revdep-rebuild -pv
- revdep-rebuild -v
- 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 http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&chap=1
-
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 http://forums.gentoo.org/viewtopic.php?t=153921&highlight=psyco 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. http://bugs.gentoo.org/show_bug.cgi?id=62534