Я слышал, что легко установить библиотеки на Ubuntu, поэтому я переключился на Ubuntu, я попытался установить boost, поэтому я пишу:
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-python-dev but it is not going to be installed E:
Unable to correct problems, you have held broken packages.
Теперь я вижу, что для этого есть канонический вопрос, но, как следует из ответа:
APT - это система управления пакетами для Debian и других дистрибутивов Linux на ее основе, таких как Ubuntu. По большей части APT прост в использовании для установки, удаления и обновления пакетов. В редких случаях, часто при смешивании сторонних зависимостей, вероятность того, что apt-get может закончиться тем, что вы сообщите, что установка пакета не может быть завершена.Но я сомневаюсь, что в моей ситуации нет ничего редкого. Фактически, сама причина, по которой я пыталась установить boost, заключается в том, что я знаю, что это должно быть без проблем, и я бы хотел, чтобы у меня был некоторый успех, прежде чем устанавливать openscenegraph, что мне действительно нужно. Я хотел попробовать, работают ли основные вещи, и это меня подвело. помогите, а не обманывайте мой вопрос против «общего решения». Я пробовал это, но в какой-то момент у меня нет идеи, о которой говорят ответчики:
APT - это управление пакетами системы для Debian и других дистрибутивов Linux, основанных на ней, таких как Ubuntu. По большей части APT прост в использовании для установки, удаления и обновления пакетов. В редких случаях, часто при смешивании сторонних зависимостей, вероятность того, что apt-get может закончиться тем, что вы сообщите, что установка пакета не может быть завершена.
PPAs (Personal Package Archive ) являются хранилищами, размещенными на Launchpad. Вы можете использовать PPA для установки или обновления пакетов, которые недоступны в официальных репозиториях Ubuntu. Одной из наиболее распространенных причин неудовлетворенных зависимостей являются PPA, особенно когда используется для обновления существующего пакета в репозиториях Ubuntu. Чтобы решить проблему, у вас есть параметры дерева, отключите, очистите (вернитесь к исходному пакету в репозиториях Ubuntu) или удалите PPA.Disable / Remove / Purge PPAs:
Итак, мой конкретный вопрос:
В тот же день я установил Ubuntu 12.04 LTS. Я установил кодовые блоки, g ++, build-essentials, без проблем.
Я попытался sudo apt-get install openscenegraph, возможно, он работал, хотя я не могу найти файлы заголовков на своем жестком диске (возможно, я должен был загрузить [ f6] (но его не существует))
Итак, я решил установить boost, чтобы увидеть, работает ли этот установщик пакетов, и я получил (неудовлетворенные зависимости) то, что я вставил выше. [!d14 ]
Почему это не работает и как я могу заставить его работать?
apt-cache madison libboost-python-dev
Изменить:
libboost-python-dev | 1.48.0.2 | http://archive.ubuntu.com/ubuntu/precise/main amd64 Packages
Один из способов, которым возникают проблемы неудовлетворенных зависимостей, - это когда зависимое приложение имеет свою собственную зависимость, которая не будет установлена. Вот так.
Задача libboost-python-dev зависит libboost-python1.46-dev.
packages.ubuntu.com.
Итак, чтобы установить libboost-python-dev, вы также должны установить libboost-python1.46-dev.
] Итак, запустите:
sudo apt-get install libboost-all-dev libboost-python-dev libboost-python1.46-dev
** Вы можете установить packages.ubuntu.com на:
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libopenscenegraph80 libopenthreads-dev libopenscenegraph-dev
sudo aptitude install libboost-all-dev
Использование aptitude вместо apt-get может предложить вам некоторые автоматические решения для удаления конфликтующих пакетов.
Я сам столкнулся с этой проблемой. У меня был установлен «libboost1.48-dev», который похож на ваш случай, когда у вас есть «libboost1.48-python-dev».
Вы хотите установить libboost1.48-all-dev, а не libboost-all-dev , Последнее - версия 1.46, которая несовместима с уже установленной libboost1.48-python-dev. В качестве альтернативы вы можете удалить libboost1.48-python-dev и установить libboost-all-dev, если хотите вернуться к v1.46.