Почему некоторые пакеты конфликтуют сами с собой?

После обновления до 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 <ubuntu-devel-discuss@lists.ubuntu.com>
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 <kubuntu-devel@lists.ubuntu.com>
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

Та же самая функция «конфликтует с собой».

Я решил свои проблемы с менеджером пакетов, но меня все еще беспокоит вопрос: что это значит, когда пакет конфликтует сам по себе? Для чего это используется?

16
задан 10 November 2015 в 04:59

3 ответа

Oneiric поддерживает Multi-Arch, то есть позволяет устанавливать пакеты разных архитектур одновременно (в настоящее время i386 и amd64 a.k.a. 32-битные и 64-битные). Некоторые пакеты не могут быть установлены одновременно (например, libc6: i386 и libc6: amd64). aptitude не может обработать эти случаи и поэтому считает, что может быть хорошей идеей удалить эти пакеты. Сейчас рекомендуется использовать apt-get.

Если вы используете apt-cache show libc-bin, вы увидите строку, в которой упоминается этот конфликт:

Multi-Arch: foreign

Описание этого поля может быть находится по адресу http://wiki.debian.org/Multiarch/Implementation#Multi-Arch:_foreign_support_packages

0
ответ дан 10 November 2015 в 04:59

Aptitude не показывает вам всю историю.

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

Я на 64-битной установке, так что это на самом деле только конфликтует с его 32-битной коллегой.

0
ответ дан 10 November 2015 в 04:59

Вы столкнулись с ошибкой 831768 .

aptitude Я не боюсь, что пока не пойму мультиарх. Лучше избегать aptitude, пока это не будет решено. Можно выжить с apt-get.

0
ответ дан 10 November 2015 в 04:59

Другие вопросы по тегам:

Похожие вопросы: