Annoying example: the gcc3 upgrade.
When gcc3 recently changed libstdc++ versions from 3 to 4,
an 'emerge prune gcc' removed libstdc++.so.3 without so much
as a tip of the hat to the several installed packages which
were linked against that library.
That makes twice in the past few days I've had to go thru
and figure out which packages use the c++ libraries and
re-compile them all by hand.
The very same prune removed /usr/bin/makeinfo and install-info
because they were part of gcc2.x (why is that, anyway?) and
of course other ebuilds use those two items to install their
info files, so they didn't build either. I had to copy the
binaries from another gentoo box before I could continue.
From http://www.gentoo.org/doc/portage-manual.html :
" Portage also supports a package prune action. The prune action is an unsafe
form of the clean. It removes all versions of all packages except for the last
installed version. It does not perform many of the checks clean performs and can
remove essential dependencies from your system. Users of this option can easily
break their systems and its use is not recommended except in specific
specialized circumstances. "
Also please note prune/clean will not protect you against the unmerging of
multiple gcc revisions for the following reasons:
- Upgrading from 2.95.x to any version of gcc 3.x without a complete recompile
of your system from the ground up will break your system due to the changing of
the C++ ABI and binutils incompatibilities
- Upgrading from gcc 3.0 to 3.1 without a complete recompile will break your
system for the same reason
- makeinfo and such were bundled with gcc 2.95.x... This is no longer the case
with gcc 3.x and we are working to update dependencies accordingly.
- you cannot switch back and forth from 2.95.x to 3.x and back without a
complete system recompile
gcc 3.x and any distribution is highly experimental right now and many packages
are broken due to upstream bugs and major changes in gcc and binutils...
Also due to the highly sensitive nature of a distribution like gentoo and its
compiler the compiler version is tied into the base system profile and
clean/prune cannot protect you from messing with the base system profile.