为什么有些包会与自身冲突?

为什么有些包会与自身冲突?

升级到 Oneiric 后,我在使用软件包管理器时遇到了一些问题(它想删除我系统的一半,包括 libc6、zlib1g 软件包等)。在与 aptitude 的斗争中,我注意到一些软件包的元信息表明它们与自身冲突。示例:

% aptitude show libc-bin
Package: libc-bin                        
Essential: yes
New: yes
State: installed
Automatically installed: no
Version: 2.13-20ubuntu5
Priority: required
Section: libs
Maintainer: Ubuntu Developers <[email protected]>
Uncompressed Size: 3,420 k
Conflicts: libc-bin
Breaks: libc0.1 (< 2.10), libc0.1 (< 2.10), libc0.3 (< 2.10), libc0.3 (< 2.10), libc6 (< 2.10), libc6 (< 2.10), libc6.1 (< 2.10), libc6.1 (< 2.10)
Replaces: libc0.1, libc0.1, libc0.3, libc0.3, libc6, libc6, libc6.1, libc6.1
Provides: libc-bin
Provided by: libc-bin
Description: Embedded GNU C Library: Binaries

看到这Conflicts: libc-bin行了吗?再来一句:

% aptitude show qdbus   
Package: qdbus                           
New: yes
State: installed
Automatically installed: no
Version: 4:4.7.4-0ubuntu8.1
Priority: optional
Section: libs
Maintainer: Kubuntu Developers <[email protected]>
Uncompressed Size: 213 k
Depends: libc6 (>= 2.3.4), libgcc1 (>= 1:4.1.1), libqt4-dbus (= 4:4.7.4-0ubuntu8.1), libqt4-xml (= 4:4.7.4-0ubuntu8.1), libqtcore4 (= 4:4.7.4-0ubuntu8.1), libstdc++6 (>= 4.1.1)
Conflicts: qdbus
Breaks: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Replaces: libqt4-dbus (< 4:4.7.3-4ubuntu5), libqt4-dbus (< 4:4.7.3-4ubuntu5), qt4-dev-tools (< 4:4.7.3-4ubuntu6), qt4-dev-tools (< 4:4.7.3-4ubuntu6)
Provides: qdbus
Provided by: qdbus
Description: Qt 4 Dbus Tool

同样的“与自身冲突”的特点。

我现在已经解决了包管理器的问题,但问题仍然困扰着我:包本身发生冲突意味着什么?这有什么用?

答案1

Oneiric 支持 Multi-Arch,也就是说,允许您同时安装不同架构的软件包(目前为 i386 和 amd64,即 32 位和 64 位)。某些软件包无法同时安装(例如 libc6:i386 和 libc6:amd64)。aptitude 无法处理这些案件因此认为删除这些软件包可能是个好主意。建议apt-get现在使用。

如果您使用apt-cache show libc-bin,则可以看到提及此冲突的行:

Multi-Arch:外国

此字段的描述可以在以下位置找到http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages

答案2

Aptitude 不会向您展示整个故事。

$ apt-cache depends libc-bin | grep Conflicts
  Conflicts: libc-bin:i386

我使用的是 64 位安装,所以它实际上只与 32 位版本冲突。

答案3

你遇到了错误 831768

aptitude恐怕还不理解多架构。最好避免,aptitude直到这个问题解决为止。可以继续使用apt-get

相关内容