apt сообщает о зависимости & ldquo; не устанавливается & rdquo; для установленного (виртуального) пакета

Я пытаюсь установить библиотеки armel и поддержку gcc в системе armhf. Я установил libc6-dev:armel, чтобы получить библиотеки armel и заголовки, и теперь считаю, что мне нужно установить gcc-multilib, чтобы заставить их использовать gcc (когда указано -mfloat-abi=softfp). Однако установка пакета завершается неудачно:

$ sudo apt-get install gcc-4.6-multilib
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 gcc-4.6-multilib : Depends: libsfgcc1 (>= 1:4.6.3-1ubuntu5) but it is not going to be installed or
                             libgcc1-armel but it is not installable
E: Unable to correct problems, you have held broken packages.

libgcc1-armel - это виртуальный пакет, предоставляемый пакетом, который я уже установил:

$ dpkg -s libgcc1:armel | egrep 'Version|Provides'
Version: 1:4.6.3-1ubuntu5
Provides: libgcc1-armel

Почему apt считает этот пакет неустановимым, когда он уже установлено?


Примечание: я пробовал это как с apt / dpkg из точного (с armel, заданным как сторонняя архитектура в /etc/dpkg/dpkg.cfg.d/architectures), так и с apt / dpkg из Quantal который, кажется, имеет более зрелую поддержку нескольких арок, например, dpkg --add-architecture).

Примечание 2: Использование libsfgcc1 вместо libgcc1:armel позволяет устанавливать эту библиотеку, но исключает установку других многоархивных библиотек, таких как libssl1.0.0:armel, для которых требуется только libgcc1:armel. Я предполагаю, что libsfgcc1 является переходной библиотекой, которая была представлена ​​до настоящей поддержки нескольких арок.

4
задан 8 January 2013 в 04:06

2 ответа

Ошибки Апта могут быть довольно сложными для понимания.

Проблема в том, что у вас установлен первый вариант, но мы действительно хотим установить второй вариант и удалить первый.

Давая подсказку, с apt-get install gcc-4.6-multilib libsfgcc1 мне удается.

0
ответ дан 8 January 2013 в 04:06

(Просто предположение, основанное на моем прочтении спецификации Multiarch из Debian:)

В этом случае, если libgcc1-armel является «предоставлением» пакета *: armel, то, возможно, считается, что быть как libgcc1-armel:armel, не так ли?

И пакет сторонней архитектуры, такой как libgcc1-armel:armel, не может удовлетворить требования пакета собственной архитектуры (libgcc1-armel, который похож на libgcc1-armel:armhf), если он не будет пометьте «Multi-Arch: foreign» или «Multi-Arch: позволено», и зависимость будет указана для «: armel». Но не ясно, как достичь виртуального пакета ...

0
ответ дан 8 January 2013 в 04:06

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

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