3

Обычно я компилирую все, что мне нужно, но я пытаюсь стандартизировать свою платформу разработки. Я запускаю разработку в Ubuntu (база 11.10: разработка 12. что угодно).

Я установил boost 1.48 и сейчас пытаюсь установить mongodb-dev. Кажется, это косвенно зависит от libboost1.46-dev через libboost-dev. Какое самое чистое и самое долгосрочное решение для меня, чтобы решить эту проблему?

Состояние моей системы:

(precise_amd64)hassan@hassan-ubuntu:~/dev/twit/scripts/bin$ sudo apt-get install mongodb-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:
 mongodb-dev : Depends: libboost-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
------------------------------------------------------------------------------------------------
(precise_amd64)hassan@hassan-ubuntu:~/dev/twit/scripts/bin$ sudo apt-get install libboost-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-dev : Depends: libboost1.46-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
-------------------------------------------------------------------------------------------------
(precise_amd64)hassan@hassan-ubuntu:~/dev/twit/scripts/bin$ sudo apt-get install libboost1.48-dev
Reading package lists... Done
Building dependency tree      
Reading state information... Done
libboost1.48-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
------------------------------------------------------------------------------------------------

1 ответ1

3

Как вы заметили, (пустой) пакет libboost-dev зависит от libbost1.46-dev вместо libbost1.48-dev (из-за некоторых проблем с существующими пакетами).

Чтобы решить эту проблему, восстановите его с помощью

apt-get source  libboost-dev # get the source files
cd boost-defaults*
sed -i -e "s/1.46/1.48/g" debian/control # replace 1.46 with 1.48
debuild -uc -us # rebuild the package
dpkg -i ../libboost*.deb # install it.

Для этого вам нужно установить пакет devscripts .

Самый правильный способ - добавить новую запись в журнал изменений в debian/changelog чтобы предотвратить обновление пакета.

В качестве альтернативы, вы можете создать фиктивный пакет самостоятельно с equivs .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .