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 contiennent des méta-informations indiquant 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
Voir la ligne Conflicts: libc-bin
? 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 préoccupe toujours: qu'est-ce que cela signifie quand un paquet entre en conflit sur lui-même? À quoi sert-il?
Oneiric prend en charge Multi-Arch, c'est-à-dire qu'il vous permet d'installer simultanément des packages d'architectures différentes (actuellement les versions i386 et AMD64 a.k.a 32 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-get
maintenant.
Si vous utilisez apt-cache show libc-bin
, vous pouvez voir la ligne mentionnant ce conflit:
Multi-Arch: étranger
Vous trouverez une description de ce champ à l'adresse suivante: http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages
L'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, de sorte qu’il n’est en conflit avec son homologue 32 bits.
Vous avez rencontré bug 831768 .
aptitude
ne comprend pas encore multiarch, j'ai bien peur. Il est préférable d'éviter aptitude
jusqu'à ce que cela soit résolu. On peut survivre avec apt-get
.