4

I'm trying to update all my packages, so I ran:

emerge -aUDU --with-bdeps=y --verbose-conflicts @world

and I found a few package conflicts. Interestingly enough though, is that it has scheduled two different versions of the dev-lang/perl package to install:

dev-lang/perl:0

  (dev-lang/perl-5.22.1:0/5.22::gentoo, ebuild scheduled for merge) pulled in by
    =dev-lang/perl-5.22* required by (virtual/perl-IO-1.350.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                     
    =dev-lang/perl-5.22* required by (virtual/perl-version-0.990.900-r2:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                               
    =dev-lang/perl-5.22* required by (virtual/perl-File-Spec-3.560.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                            
    =dev-lang/perl-5.22* required by (virtual/perl-CPAN-Meta-YAML-0.12.0-r1:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                   
    =dev-lang/perl-5.22* required by (virtual/perl-ExtUtils-MakeMaker-7.40.100_rc:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                         
    =dev-lang/perl-5.22* required by (virtual/perl-ExtUtils-ParseXS-3.280.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                   
    =dev-lang/perl-5.22* required by (virtual/perl-CPAN-Meta-2.150.1:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                            
    =dev-lang/perl-5.22* required by (virtual/perl-Module-Metadata-1.0.26:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                 
    =dev-lang/perl-5.22* required by (virtual/perl-Parse-CPAN-Meta-1.441.400-r1:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                       
    =dev-lang/perl-5.22* required by (virtual/perl-JSON-PP-2.273.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                          

  (dev-lang/perl-5.20.2:0/5.20::gentoo, ebuild scheduled for merge) pulled in by
    =dev-lang/perl-5.20* required by (virtual/perl-Getopt-Long-2.420.0-r1:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                 
    =dev-lang/perl-5.20* required by (virtual/perl-ExtUtils-Install-1.670.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                   
    =dev-lang/perl-5.20.2* required by (virtual/perl-Storable-2.490.100-r1:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^^^                                                                                                                                                
    =dev-lang/perl-5.20.2* required by (virtual/perl-ExtUtils-CBuilder-0.280.217-r2:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^^^                                                                                                                                                         
    =dev-lang/perl-5.20* required by (virtual/perl-Test-Harness-3.330.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                               
    =dev-lang/perl-5.20* required by (virtual/perl-Compress-Raw-Zlib-2.65.0:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                   
    =dev-lang/perl-5.20* required by (virtual/perl-ExtUtils-Manifest-1.630.0-r2:0/0::gentoo, ebuild scheduled for merge)
    ^              ^^^^^                                                                                                                                                       
    =dev-lang/perl-5.20* required by (virtual/perl-Perl-OSType-1.7.0:0/0::gentoo, ebuild scheduled for merge)

I've unmerged each of the packages that are using either versions of dev-lang/perl as a dependency (at least those that were installed and listed as causing conflicts), and I've tried masking either versions in /etc/portage/package.mask/perl by doing:

>dev-lang/perl-5.20.2

or

<=dev-lang/perl-5.22.1

But the conflicts remain.

Do I have to mask each of the packages that depend on one of the versions, or is there another way to handle this conflict?

CaptJak
  • 141
  • 1
  • 6
  • Have you tried un-merging all those Perl "virtual" packages instead? –  Apr 24 '16 at 15:08
  • @Nasha, yeah, I unmerged all of those too. But they are `ebuilds scheduled for merge`. If you look in the terminal output I posted, you can see that none of the conflicting packages, or the packages causing conflicts are installed, just `scheduled for merge`. – CaptJak Apr 24 '16 at 15:12
  • Have you checked out [this thread](https://forums.gentoo.org/viewtopic-t-996680-highlight-perl+upgrade+conflicts.html) on Gentoo forums? –  Apr 24 '16 at 16:56
  • @Nasha, geez. I wish the Gentoo forums were more like the Stack Exchange sites... Anyways, I ended up making sure that each package that wanted to pull in the older version of Perl had been unmerged, and then I explicitly masked them in `/etc/portage/package.mask/perl`. The conflicts for Perl disappeared. I'm now installing the newer version of Perl, will do `pearl-cleaner --all` and see how that goes. This might take a while to see the result because I also pulled in a dependency update for LibreOffice. Should be done updating by the time I'm 65... :P – CaptJak Apr 24 '16 at 17:06

2 Answers2

1

Using

EIX_LIMIT=0 emerge -1auvDNt -j2 --verbose-conflicts =dev-lang/perl-5.22* $(eix '-I#' virtual/perl-*)

I was able to update Perl from 5.20 to 5.22 on my system.

Source: https://forums.gentoo.org/viewtopic-p-7593286.html#7593286

Flow
  • 819
  • 1
  • 11
  • 23
0

This is what worked for me, nothing else worked:

#!/bin/bash

# unmerge perl virtuals
emerge --unmerge $(qlist --installed virtual/perl)

# print perl blockers and quit
if emerge -pq dev-lang/perl:0 2>/dev/null | grep blocks
then
        echo
        echo "unmerge packages blocking perl upgrade"

        exit 1
else
        # upgrade perl
        perl-cleaner --reallyall -- dev-lang/perl:0
fi

exit 0

From: https://forums.gentoo.org/viewtopic-p-7790388.html?sid=5198a9a0af09fca7f15b170de417a5da#7790388

Watcom
  • 101
  • 2