Pourquoi certains packages entrent-ils en conflit avec eux-mêmes?

16

Après une mise à niveau vers Oneiric, j'ai eu quelques problèmes avec le gestionnaire de paquets (il voulait supprimer la moitié de mon système, y compris les paquets libc6, zlib1g, etc.). Pendant le combat avec aptitude, j'ai remarqué que certains paquets ont des méta-informations qui indiquent qu'ils sont en conflit avec eux-mêmes. Exemples:

% 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

Vous voyez la Conflicts: libc-binligne? Un de plus:

% 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

La même fonctionnalité "en conflit avec lui-même".

J'ai résolu mes problèmes avec le gestionnaire de paquets maintenant, mais la question me dérange toujours: qu'est-ce que cela signifie lorsqu'un paquet entre en conflit avec lui-même? À quoi cela sert-il?

ulidtko
la source

Réponses:

25

Oneiric prend en charge Multi-Arch, c'est-à-dire qu'il vous permet d'installer simultanément des packages de différentes architectures (actuellement i386 et amd64 aka 32 bits et 64 bits). Certains packages ne peuvent pas être installés simultanément (comme libc6: i386 et libc6: amd64). aptitude ne peut pas gérer ces cas et pense donc que ce peut être une bonne idée de supprimer ces paquets. Il est recommandé d'utiliser apt-getmaintenant.

Si vous utilisez apt-cache show libc-bin, vous pouvez voir la ligne mentionnant ce conflit:

Multi-Arch: étranger

Une description de ce champ peut être trouvée à http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages

Lekensteyn
la source
8

Aptitude ne vous montre pas toute l'histoire.

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

Je suis sur une installation 64 bits, donc cela n'entre en conflit qu'avec son homologue 32 bits.

Oli
la source
7

Vous avez rencontré le bogue 831768 .

aptitudene comprend pas encore le multiarch, j'ai bien peur. Il aptitudevaut mieux éviter jusqu'à ce que cela soit résolu. On peut survivre avec apt-get.

tumbleweed
la source