升级到 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
。