Richard Watson schreef:
> I believe that you are mistaken about what is blocking the Perl upgrade
> (no fault of your own, block messages are hard to read).
> 
> I think that the blocking (currently installed) package is
> perl-core/File-Spec-0.87
> not Perl 5.8.5 whatever.
> So that is what I would unmerge, not Perl, then try the emerge again.
> 
> It sometimes happens that a *module* can block the upgrade of a language
> because the module is installed with the upgrade or something along
> those lines.
> 
> Hope this helps,
> Holly
> 
> Thanks Holly. I'm obviously doing something wrong ... I can't seem to get
> emerge to remove the offending package. Below is the output I'm getting. I'm
> probably making an obvious mistake ... Regards Alan
> 
> # qpkg -i File-Spec-0.87
> perl-core/File-Spec-0.87
> Handling files and directories portably [ http://www.cpan.org/modules/by
> -authors/id/K/KW/KWILLIAMS/.readme ]
> 
> # emerge -C File-Spec-0.87
> --- Couldn't find File-Spec-0.87 to unmerge.
> 
>>>>unmerge: No packages selected for removal.
> 
> 

I notice that the output mentions www.cpan.org.

Did you by chance install this module via CPAN? Portage doesn't manage
those, so naturally it would not be found by Portage.

If so, remove it via CPAN, because Portage clearly *wants* to manage
this module, and doesn't want to upgrade Perl with an unmanaged
(critical?) module on the loose.

Alternatively, I notice this in the Changelog for File-Spec:

>   25 May 2005; Michael Cummings <[EMAIL PROTECTED]> +metadata.xml,
>   +File-Spec-0.84-r1.ebuild, +File-Spec-0.87.ebuild, +File-Spec-3.01.ebuild,
>   +File-Spec-3.06.ebuild:
>   dev-perl => perl-core migration
> 

Which means that if you did install the module via portage, you probably
installed it as

dev-perl/File-Spec-0.87

which no longer exists(?) in Portage; the module is now in a new category:

perl-core/File-Spec-0.87

In this case, what I would do is attempt to unmerge File-Spec with

emerge -Cav =dev-perl/File-Spec-0.87

This might work, but also might fail, because the original ebuild has
been removed from Portage.

In that case, I would install perl-core/File-Spec-0.87 over the previous
version (assuming you did install it with Portage in the first place),
and if it still blocks the emerge, then uninstall it via Portage, which
would now be able to recognize that it was installed in the first place.

Do you have no recollection of this module and how you might have
installed it?

Oh, look, this is in the changelog too:

>   17 Apr 2005; Michael Cummings <[EMAIL PROTECTED]>
>   +File-Spec-3.01.ebuild, +File-Spec-3.06.ebuild:
>   Adding both version 3.01 and 3.06 to the tree. 3.01 gives us cross
>   compatibility with the version of File-Spec that is shipped with the perl
>   5.8.6 core package. 3.06 is just the current stable upstream :) Please see
>   metadata for explanation of extreme version jump.
> 

So at least I was right about that much-- this module ships with 5.8.6,
so if you have it previously installed as a separate module it will
conflict and block the upgrade *to* Perl 5.8.6.

That brings me to a third thought: It's remotely possible that Portage
would be able to upgrade the module as part of the upgrade to Perl, but
cannot because:

1) there is no upgrade to the installed module (the module has changed
category, and you can't upgrade across categories)

2) the upgrades are ~arch (are you running ppc64 or ia64, where 0.87 is
the last stable?), which you may have keyword masked.

That would be a weird situation, but I can see how it would result in a
Block as the only reasonable error message that Portage could produce
(since the way to resolve a block is to unmerge the offending package,
which is also how to resolve a category migration).

So, in summary:

1) if you installed the module via CPAN, uninstall it via CPAN;

2) if you installed the module via Portage within the last couple of
weeks (before the category change) try uninstalling it specifically
using Atoms (=dev-perl/File-Spec-0.87), as that is what Portage
currently knows the package as;

3) if 2) fails and you did not install the module via CPAN, try
installing the new-category package over the old-category package;


3a) see if the module still blocks the Perl upgrade (specifically
[B]locks, rather than gives a message that all upgradeable packages are
masked, which in this case would be an improvement in the situation, as
you could just unmask the keyword-masked package and go on from there);

3b) if Perl is still blocked, then uninstall the whole File-Spec
shebang, as emerge -C File-Spec should now work.

One way or another, at the end of whichever trail you take, you should
be able to upgrade Perl.

Hope this helps,
Holly
-- 
gentoo-user@gentoo.org mailing list

Reply via email to