[blocks B] <perl-core/Digest-MD5 (“<perl-core/Digest-MD5” is blocking virtual/perl-Digest-MD5)
ARGH!!! If you managed a Gentoo machine long enough, I’m sure you’ve seen an endless list of block statements when trying to do an upgrade or just about… EVERYTHING.
But updating ‘dev-lang/perl’ in particular on a Gentoo based machine can be an experiment in premature hair loss. The following can save a couple of those hairs:
emerge -av1 perl-cleaner emerge -av1O dev-lang/perl perl-cleaner --all
We first make sure that the ‘perl-cleaner’ utility is installed. Then we do a single one-time installation of the new version of perl. And lastly we force all of the installed perl packages to update to the latest version.
You’ll likely end up with a bunch of packages that are no longer maintained or still conflict, in which case, you’ll need to unmerge those perl packages manually. An example of all the blocks:
[blocks B ] <perl-core/Digest-MD5-2.530.0 ("<perl-core/Digest-MD5-2.530.0" is blocking virtual/perl-Digest-MD5-2.530.0-r2) [blocks B ] <perl-core/Test-Harness-3.330.0 ("<perl-core/Test-Harness-3.330.0" is blocking virtual/perl-Test-Harness-3.330.0) [blocks B ] <perl-core/File-Spec-3.480.100 ("<perl-core/File-Spec-3.480.100" is blocking virtual/perl-File-Spec-3.480.100-r1) [blocks B ] <perl-core/Compress-Raw-Zlib-2.65.0 ("<perl-core/Compress-Raw-Zlib-2.65.0" is blocking virtual/perl-Compress-Raw-Zlib-2.65.0) ... Total: 95 packages (41 upgrades, 12 new, 42 reinstalls), Size of downloads: 839 kB Conflict: 25 blocks (22 unsatisfied) * Error: The above package list contains packages which cannot be * installed at the same time on the same system. (virtual/perl-Archive-Tar-1.960.0::gentoo, ebuild scheduled for merge) pulled in by =virtual/perl-Archive-Tar-1.960.0 required by (perl-core/Module-Build-0.420.500::gentoo, ebuild scheduled for merge) virtual/perl-Archive-Tar:0 >=virtual/perl-Archive-Tar-1.09 required by (perl-core/Module-Build-0.420.500::gentoo, ebuild scheduled for merge) (perl-core/Module-Load-0.240.0::gentoo, ebuild scheduled for merge) pulled in by perl-core/Module-Load:0 (perl-core/Sys-Syslog-0.320.0-r1::gentoo, ebuild scheduled for merge) pulled in by perl-core/Sys-Syslog:0 ...
You can try the following to help with the core and virtual packages:
emerge --deselect --ask $(qlist -IC 'perl-core/*') emerge -uD1a $(qlist -IC 'virtual/perl-*')
This will remove all perl-core packages from your world file. Then it will update all the installed Perl virtuals (which will bring in all of the core files).
Does anyone even use perl anymore?