emerge抱怨被封包:我该怎么办?


5

我们有一个运行Gentoo的旧开发服务器正在运行。我想更新这个系统,但我一直遇到包装系统的问题。对我来说,似乎有各种包的几个版本的依赖关系,我无法看到如何解决它。

最大的问题可能与Python和Portage有关。我需要一个更新的portage,但似乎存在周期性依赖。

我尝试了各种解决方案,但不太确定可以从这里开始。任何可能让我进一步修复它的线索?

更多的信息

以下是运行输出的(相关位) emerge --update --newuse --deep @world

(lots of normal output ....)
[ebuild     U ] app-misc/mc-4.7.0.3 [4.6.1-r4] USE="edit%* -slang*" 
....
[blocks B     ] >=dev-lang/python-2.6.6 (">=dev-lang/python-2.6.6" is blocking sys-apps/portage-2.1.6.7)
[blocks B     ] <sys-apps/portage-2.1.7.16 ("<sys-apps/portage-2.1.7.16" is blocking app-shells/bash-4.1_p9)
[blocks B     ] <sys-apps/portage-2.1.9 ("<sys-apps/portage-2.1.9" is blocking dev-lang/python-2.7.1-r1)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (dev-lang/python-2.7.1-r1, ebuild scheduled for merge) pulled in by
    =dev-lang/python-2* required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2*[threads] required by (dev-vcs/mercurial-1.7, ebuild scheduled for merge)
    =dev-lang/python-2* required by (dev-libs/glib-2.28.6, ebuild scheduled for merge)
    (and 1 more)

  (app-shells/bash-4.1_p9, ebuild scheduled for merge) pulled in by
    >=app-shells/bash-3.2_p17 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    app-shells/bash required by (sys-block/di-4.18, ebuild scheduled for merge)
    app-shells/bash required by (app-admin/perl-cleaner-2.7, ebuild scheduled for merge)
    (and 2 more)

  (dev-lang/python-3.1.3-r1, ebuild scheduled for merge) pulled in by
    dev-lang/python required by (app-admin/python-updater-0.9, ebuild scheduled for merge)
    >=dev-lang/python-3 required by (sys-apps/portage-2.1.9.42, ebuild scheduled for merge)
    =dev-lang/python-3.1* required by (dev-java/java-config-2.1.11-r3, ebuild scheduled for merge)

这是运行emerge --pretend --depclean时输出的相关位

Calculating dependencies... done!
 * Dependencies could not be completely resolved due to
 * the following required packages not being installed:
 * 
 *   >=dev-lang/python-2.4 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-java/java-config-2.1.7
 * 
 *   dev-lang/python pulled in by:
 *     dev-libs/libxml2-2.6.31
 * 
 *   <dev-lang/python-2.6.6 pulled in by:
 *     sys-apps/portage-2.1.6.7
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-python/pycrypto-2.0.1-r6
 * 
 *   >=dev-lang/python-2.3 pulled in by:
 *     dev-vcs/mercurial-1.0.2
 * 
 *   >=dev-java/java-config-2.1.9-r1 pulled in by:
 *     dev-libs/beecrypt-4.1.2-r1
 * 
 *   virtual/python pulled in by:
 *     dev-lang/swig-1.3.34
 * 
 *   dev-lang/python pulled in by:
 *     net-fs/samba-3.0.28a-r1
 * 
 *   >=dev-lang/python-2.2 pulled in by:
 *     app-arch/rpm-4.4.6-r6
 * 
 *   >=virtual/python-2.2.1 pulled in by:
 *     sys-libs/libcap-1.10-r11
 * 
 *   dev-lang/python pulled in by:
 *     sys-libs/cracklib-2.8.9-r1
 * 

portage会接受最新版本的Python吗?ie是Python版本2.x 及以上的所有依赖项?
new123456 2011年

我想知道你是否可以“首先出现portage”,更新其他一切?自从我使用portage以来已经有一段时间了。抛出一个gentoo irc频道可能是一个很好的问题。
James T Snell

@phoenix:portage无法升级。那就是问题所在。
寡头

@ new123456:我不太确定我会关注...你看到python版本列表是对的吗?它们都在2.X系列中,只是不同。
寡头

@oligofren最高的Python版本似乎是2.6 - 你试过它吗?
new123456 2011年

Answers:


3

几天前我遇到了同样的问题。我没有确切的方法如何做,但这是通用的方式:

首先来看看/var/lib/portage/world。进行备份并将软件包拆分到系统所需的软件包以启动。这里有一些内容可以帮助您:

app-admin/syslog-ng
net-firewall/iptables
net-misc/dhcpcd
sys-apps/pciutils
sys-apps/slocate
sys-apps/usbutils
sys-boot/grub
sys-kernel/gentoo-sources
sys-power/acpid
sys-process/vixie-cron
virtual/inetd

其他所有内容将在稍后更新。

最关键的部分是将portage和python引入最新版本,所以让我们关注它。

  1. 出现你的portage目录:

    emerge --sync
    

    要么:

    emerge-webrsync
    
  2. 设置有效的个人资料

    eselect profile list
    eselect profile set <x>
    
  3. 逐步升级python / portage。

    看看您当前安装的portage版本。将portage升级到高于当前版本的下一个版本(即使它被~x86掩盖),然后对python执行相同的操作。在python升级之后一定要运行python-updater

    这一步一步一步,直到python / portage是最新的。(您可以跳过一些次要版本升级。您将自己看到哪些版本会导致编译错误,哪些会导致编译错误。)

  4. 一旦他们工作,尝试出现一些其他包,因为他们可能会帮助您完成任务。

    app-portage/ufed
    app-portage/autounmask
    app-portage/gentoolkit
    
  5. 一旦python / portage是最新的,您可以恢复旧世界文件并更新您的系统。

    emerge -pvauDN world
    

    您可能需要致电:

    emerge ...
    emerge --depclean
    revdep-rebuild
    

    在构建过程中多次。


我忘了谢谢你,麦克莱恩。当人们提出要求而不给予积分时,我总是讨厌它。不幸的是,我没有时间检查我是否可以让它工作,所以没有给你答案,但会投票支持你创建这样一个全面的答案。谢谢!
寡头

0

如果python中的问题然后尝试运行python-updater 请注意,您可以通过命令选择当前版本的pythoneselect

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.