web-dev-qa-db-ja.com

同じパッケージのスケジュールされた2つのバージョン(dev-lang / Perl-5.20とPerl-5.22)をビルドするように出現します-競合を引き起こします

すべてのパッケージを更新しようとしているので、次のコマンドを実行しました。

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

そして、いくつかのパッケージの競合が見つかりました。ただし、興味深いことに、dev-lang/Perlパッケージの2つの異なるバージョンをインストールするようにスケジュールされています。

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)

いずれかのバージョンのdev-lang/Perlを依存関係として使用している各パッケージ(少なくともインストールされ、競合の原因としてリストされているパッケージ)をマージ解除し、/etc/portage/package.mask/Perlでいずれかのバージョンをマスクしてみました。行うことによって:

>dev-lang/Perl-5.20.2

または

<=dev-lang/Perl-5.22.1

しかし、対立は残っています。

いずれかのバージョンに依存する各パッケージをマスクする必要がありますか、それともこの競合を処理する別の方法がありますか?

4
CaptJak

使用する

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

システムでPerlを5.20から5.22に更新することができました。

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

1
Flow

これは私のために働いたものです、他には何も働きませんでした:

#!/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

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

0
Watcom