On 24/08/2015 15:17, Alan Mackenzie wrote:
> Hello, Harry,
> 
> Long time, no see!
> 
> On Sun, Aug 23, 2015 at 10:19:42PM -0400, Harry Putnam wrote:
>> My gentoo OS is running on Openindiana (solaris) inside oracle's vbox.
> 
>> It's been left setting for at least 4-5 months maybe a couple more.
> 
>> After eix-sync, attempting an `emerge vuND world' comes up with so
>> many blocks, use flag changes and a variety of other bad news in
>> such proliferation... I'm thinking better to install from scratch with
>> latest ISO.
> 
> I know the feeling.  When the same thing happened to me (my system got
> into a mess because I was running XFCE which was too dependent on
> gnome-2; when gnome-3 became stable, the demons of hades were let
> loose, and I tried a couple of times, half-heartedly, to update), I told
> myself to stop and think.
> 
> I could spend days fighting with use flags and conflicts, or I could
> spend a few days reinstalling.  In the end I reinstalled (using the old
> system (rather than an ISO image) to do the initial stages.  It took me
> about a week, compared with about a month the first time I seriously
> installed Gentoo.  "Installation" here means getting everything up and
> running, including X with destop manager, printing, sound, email server
> and client, ....


At first glance it does look like maybe a reinstall would be better. But
in this case, that's not true. Looking over the list of packages to be
updated, there are 3 general classes of things:

1. Regular updates
2. A whole whack of rebuilds
3. A perl upgrade from 5.20 to 5.22

#1 is routine. Press enter, and make does it's thing
#2 looks scary, but in the old days we'd have to do the updates then let
revdep-rebuild catch the inconsistencies, and rebuild those. Modern
portage has some magic code to fold everything into the main emerge
world step. So just press Enter and make does it's thing
#3 can be very confusing. With 5.22, upstream moved many Perl packages
into the core Perl codebase, so all such installed packages (and all of
us have many of them) need to uninstall perl-core/<package> and replace
it with virtual/perl-<package>. Portage normally deals with this
transparently, but the output can be a little too verbose sometimes, and
takes some decent brainpower to figure out what is really going on.

There's also some blockers in that list ([blocks b  ]), but they are all
soft (lower case b) so portage should take those in it's stride and just
fix it with no intervention.


Harry's real problem as many have noted is that his gcc config is not
valid. But, portage can't tell him that. It started the merge, and
handed control over to the next app, which portage can't make sense of
as it all happened outside portage's control. Result: a wall of text on
the screen, right after the wall of text of 195 things to be rebuilt and
a huge list of stuff causing other stuff to be needed to be rebuilt!

I suppose those ebuilds that are sensitive to gcc versions could have a
check built in to check the version before starting and then print a
sane error message that portage CAN control and make sense of.

Either way, "gcc-config -l" is what Harry needs to run first, and make
his default compiler 4.7 or later. With that out of the way, emerge
should proceed normally apart from taking a while to get through it. He
might have perl issues afterwards and need to run perl-cleaner.

The real problem is how do I know all this, and Harry did spot it? Well,
building a source distro comes in at a much lower level than a binary
one, and it does take a good large dose of experience, knowledge and
plain old luck to figure out what is really going on. These days portage
is very good at doing the right thing (it still sucks at a human level
in it's output...) and today Harry just got really unlucky.

So yeah, reinstall is probably not the better option here.


-- 
Alan McKinnon
alan.mckin...@gmail.com


Reply via email to