Why do some packages conflict with themselves?

7,261

Solution 1

Oneiric supports Multi-Arch, that is, allowing you to install packages of different architectures simultaneously (currently i386 and amd64 a.k.a. 32-bit and 64-bit). Some packages cannot be installed simultaneously (like libc6:i386 and libc6:amd64). aptitude cannot handle these cases and therefore thinks that it may be a good idea to remove those packages. It's recommended to use apt-get now.

If you use apt-cache show libc-bin, you can see the line mentioning this conflict:

Multi-Arch: foreign

A description of this field can be found at http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages

Solution 2

Aptitude isn't showing you the whole story.

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

I'm on a 64bit install so it's actually only conflicting with its 32bit counterpart.

Solution 3

You've run into bug 831768.

aptitude doesn't understand multiarch yet, I'm afraid. It's best to avoid aptitude until this is resolved. One can survive with apt-get.

Share:
7,261

Related videos on Youtube

ulidtko
Author by

ulidtko

Been using, spreading & locally supporting Ubuntu since Hardy Heron (8.04). 10+ years long contributor, wow!

Updated on September 18, 2022

Comments

  • ulidtko
    ulidtko over 1 year

    After an upgrade to Oneiric I have had some troubles with the package manager (it wanted to remove half of my system, including libc6, zlib1g packages etc). During the fight with aptitude I've noticed that some packages have meta-information which states that they conflict with themselves. Examples:

    % 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
    

    See the Conflicts: libc-bin line? One more:

    % 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
    

    The same "conflicts with itself" feature.

    I've resolved my troubles with the package manager now, but the question still bothers me: what does it mean when a package conflicts on itself? What is this used for?