Apt-get хочет установить другую версию зависимостей для libboost-all-dev?

Когда я запускаю sudo apt-get install libboost-all-dev, я получаю эту ошибку, которая кажется очень распространенной.

 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:
 libboost-all-dev : Depends: libboost-context-dev but it is not going to be installed
                Depends: libboost-coroutine-dev but it is not going to be installed
                Depends: libboost-exception-dev but it is not going to be installed
                Depends: libboost-graph-dev but it is not going to be installed
                Depends: libboost-graph-parallel-dev but it is not going to be installed
                Depends: libboost-locale-dev but it is not going to be installed
                Depends: libboost-log-dev but it is not going to be installed
                Depends: libboost-math-dev but it is not going to be installed
                Depends: libboost-mpi-dev but it is not going to be installed
                Depends: libboost-mpi-python-dev but it is not going to be installed
                Depends: libboost-random-dev but it is not going to be installed
                Depends: libboost-signals-dev but it is not going to be installed
                Depends: libboost-timer-dev but it is not going to be installed
                Depends: libboost-wave-dev but it is not going to be installed
 E: Unable to correct problems, you have held broken packages.

Покопавшись немного глубже и попытавшись установить зависимости по отдельности, я сначала попробовал sudo apt-get install libboost-context-dev, что побудило меня установить libboost-context1.54-dev, что привело к ошибке

 libboost-context1.54-dev : Depends: libboost1.54-dev (= 1.54.0-4ubuntu3) but 1.54.0-4ubuntu3.1 is to be installed

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

Возможный дубликат: Сбой зависимости при установке libboost -all-dev на ядре Ubuntu 14.04


person knightian    schedule 17.08.2015    source источник
comment
Я не смог решить эту проблему напрямую - я установил boost из исходников, и это сработало для моих целей.   -  person knightian    schedule 17.08.2015


Ответы (1)


Я только что столкнулся с проблемой с тем же самым пакетом, но это повторяющаяся проблема. Я решил проблему (установка libboost-all-dev), используя следующую методику. Это немного утомительно, но отлично работает примерно через 5-10 минут (в зависимости от количества зависимостей). Фактически, вы почти полностью подошли к решению.

Для каждого пакета в вашем списке неудовлетворенных зависимостей вы должны следить за зависимостью, пока не найдете пакет, который не может быть установлен, потому что для него доступен другой более свежий пакет. Затем вы принудительно установите его в более ранней версии, используя знак = с apt-get. Например, в вашем случае:

apt-get install libboost1.54-dev=1.54.0-4ubuntu3

После того, как вы установили все зависимости, вы сможете установить свой основной пакет (libboost-all-dev).

Я не знаю, есть ли лучший (более быстрый) способ сделать это.

person giskard    schedule 24.08.2015