升级 dev-lang/perl 时遇到的问题

64 views
Skip to first unread message

kdlijian

unread,
Nov 10, 2014, 8:52:58 AM11/10/14
to gentoo...@googlegroups.com
目前系统里安装的 dev-lang/perl 版本是 5.16.3,

$ eix -I dev-lang/perl

[U] dev-lang/perl
     Available versions:  [M]5.16.3(0/5.16) 5.18.2-r1(0/5.18) 5.18.2-r2(0/5.18) ~5.20.0-r2(0/5.20) ~5.20.1-r1(0/5.20) {berkdb debug doc gdbm ithreads}
     Installed versions:  5.16.3(11:14:49 AM 06/16/2014)(berkdb gdbm -debug -doc -ithreads)
     Homepage:            http://www.perl.org/
     Description:         Larry Wall's Practical Extraction and Report Language

如上所示,同时 Portage 也提醒说 5.16.3 因为安全问题被 mask 掉了。因此我就打算升级它。

$ sudo emerge -av --update dev-lang/perl


These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild     U  ] dev-lang/perl-5.18.2-r2:0/5.18 [5.16.3:0/5.16] USE="berkdb gdbm -debug -doc -ithreads" 13,746 kB
[ebuild  N     ] perl-core/File-Temp-0.230.0  50 kB
[ebuild     U  ] virtual/perl-File-Temp-0.230.0-r1 [0.220.0-r2] 0 kB
Total: 3 packages (2 upgrades, 1 new), Size of downloads: 13,796 kB
!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:
dev-lang/perl:0
  (dev-lang/perl-5.18.2-r2::gentoo, ebuild scheduled for merge) pulled in by
    =dev-lang/perl-5.18* required by (virtual/perl-Compress-Raw-Bzip2-2.60.0-r1::gentoo, installed)
    (and 7 more with the same problem)

  (dev-lang/perl-5.16.3::gentoo, installed) pulled in by
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/DateManip-6.410.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/HTTP-Cookies-6.0.1-r1::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (perl-core/Digest-SHA-5.820.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-vcs/git-1.8.5.5::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/WWW-RobotRules-6.20.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-vcs/subversion-1.7.14::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/Net-HTTP-6.60.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/Net-SSLeay-1.550::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/HTTP-Negotiate-6.0.1-r1::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (perl-core/IO-Compress-2.60.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/libwww-perl-6.50.0::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/Error-0.170.210::gentoo, installed)
    dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/IO-Socket-SSL-1.953.0::gentoo, installed)


It may be possible to solve this problem by using package.mask to
prevent one of those packages from being selected. However, it is also
possible that conflicting dependencies exist such that they are
impossible to satisfy simultaneously.  If such a conflict exists in
the dependencies of two different packages, then those packages can
not be installed simultaneously. You may want to try a larger value of
the --backtrack option, such as --backtrack=30, in order to see if
that will solve this conflict automatically.

For more information, see MASKED PACKAGES section in the emerge man
page or refer to the Gentoo Handbook.


!!! The following installed packages are masked:
- net-dialup/ppp-2.4.5-r3::gentoo (masked by: package.mask)
/usr/portage/profiles/package.mask:
# Sergey Popov <pink...@gentoo.org> (28 Aug 2014)
# Security mask, wrt bug #519650
# If your application is broken due to this mask,
# please file a separate bug report

For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

===========================================================

我的问题:

为什么 Portage 不能很好地处理这次升级?像其它包一样,安装新版的,然后卸载掉旧版的?

我以前也遇到过一些类似的包,处理的方式都是先卸载掉旧的,然后就能顺利升级了。可是这次是遇到 Perl,
我担心会搞坏系统就不敢这么做了。


emerge -av --update --deep dev-lang/perl 也是同样的问题。

emerge -av --update --deep @world 可以解决问题。

可是我又不想升级@world。请问在此种情况下,应该如何优雅地、合乎情理的处理这次升级问题?






刘洋

unread,
Nov 10, 2014, 9:51:30 AM11/10/14
to gentoo...@googlegroups.com
> HTTP-Cookies-6.0.1-r1::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (perl-core/
> Digest-SHA-5.820.0::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-vcs/git-1.8.5.5::gentoo,
> installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> WWW-RobotRules-6.20.0::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-vcs/
> subversion-1.7.14::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> Net-HTTP-6.60.0::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> Net-SSLeay-1.550::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> HTTP-Negotiate-6.0.1-r1::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (perl-core/
> IO-Compress-2.60.0::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> libwww-perl-6.50.0::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
> Error-0.170.210::gentoo, installed)
> dev-lang/perl:0/5.16=[-build(-)] required by (dev-perl/
emerge -1v dev-lang/perl
perl-cleaner -v --reallyall
何如?

kdlijian

unread,
Nov 10, 2014, 8:07:50 PM11/10/14
to gentoo...@googlegroups.com
# emerge -1v dev-lang/perl

也是一样的问题,不能升级。目前看来只能通过升级 @world 来搞定。

可我不想升级 @world 也是有原因的,我手动mask了 ` > freetype-2.4.11`,因为如果 freetype 升级到 2.5
的话,其新版默认采用 Adobe/Google 的字体渲染引擎,我之前测试不如旧版的理想。

如果要升级 @world, Portage 又提示必须得升级 freetype(去掉 mask),这是我不愿意的。



在 2014年11月10日星期一UTC+8下午10时51分30秒,刘洋写道:
Reply all
Reply to author
Forward
0 new messages