Usando
EIX_LIMIT=0 emerge -1auvDNt -j2 --verbose-conflicts =dev-lang/perl-5.22* $(eix '-I#' virtual/perl-*)
Consegui atualizar o Perl de 5,20 para 5,22 no meu sistema.
Fonte: link
Estou tentando atualizar todos os meus pacotes, então corri:
emerge -aUDU --with-bdeps=y --verbose-conflicts @world
e eu encontrei alguns conflitos de pacotes. Curiosamente, porém, é que ele programou duas versões diferentes do pacote dev-lang/perl
para instalar:
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)
Eu desativei cada um dos pacotes que estão usando as versões de dev-lang/perl
como uma dependência (pelo menos aquelas que foram instaladas e listadas como causadoras de conflitos) e tentei mascarar as duas versões em /etc/portage/package.mask/perl
fazendo:
>dev-lang/perl-5.20.2
ou
<=dev-lang/perl-5.22.1
Mas os conflitos permanecem.
Eu tenho que mascarar cada um dos pacotes que dependem de uma das versões, ou há outra maneira de lidar com esse conflito?
Usando
EIX_LIMIT=0 emerge -1auvDNt -j2 --verbose-conflicts =dev-lang/perl-5.22* $(eix '-I#' virtual/perl-*)
Consegui atualizar o Perl de 5,20 para 5,22 no meu sistema.
Fonte: link
Isso é o que funcionou para mim, nada funcionou:
#!/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
De: link