Вопрос или проблема
Я пытаюсь установить deb пакет в новом экземпляре AWS 14.04 ami, но это заканчивается ошибкой –
Следующие пакеты имеют неудовлетворенные зависимости:
youtube-snapshot-taker : Зависит: firefox (= 35.0.1+build1-0ubuntu0.14.04.1), но 36.0.4+build1-0ubuntu0.14.04.1 должен быть установлен
E: Невозможно исправить проблемы, у вас есть поврежденные пакеты.
Deb был упакован с помощью fpm, а его deb-зависимости следующие –
Зависит: python-virtualenv, python-pip, python-dev, xvfb, firefox (= 35.0.1+build1-0ubuntu0.14.04.1), openssl, build-essential, xorg, libssl-dev, libxrender-dev, libqt4-dev, qt4-dev-tools, wkhtmltox, libxml2-dev, libxslt1-dev
Я проверил, что firefox не установлен (dpkg -l).
У меня нет представления, в чем проблема.
Спасибо за помощь!
Строка должен быть установлен
означает, что Firefox 36 – это единственная доступная версия в репозиториях. Пакет зависит от Firefox 35, который недоступен, поэтому apt не может установить пакет.
В этом вопросе есть информация о том, как установить пакет, игнорируя некоторые зависимости: https://serverfault.com/questions/250224/how-do-i-get-apt-get-to-ignore-some-dependencies
Вы можете попробовать установить ваш пакет, следуя этим шагам (если вы устанавливаете отдельный .deb пакет, а не из репозиториев через инструменты APT):
- Установите сам пакет через:
dpkg -i /path/to/package.deb
. Похоже, что вы уже выполнили это действие. - Если у вас возникнут неудовлетворенные зависимости, как в вашем сообщении, выполните следующее:
aptitude install -f
илиapt-get install -f
. Эти команды разрешат ваши ошибки зависимости, и вы успешно установите ваш пакет.
Ответ или решение
При установке deb-пакета на новую AMI-экземпляр AWS 14.04 вы столкнулись с ошибкой «unmet dependencies» (неудовлетворенные зависимости). Давайте разберем вашу ситуацию и предложим несколько решений.
Проблема
Ошибка, которую вы получили, связана с тем, что пакет youtube-snapshot-taker
зависит от конкретной версии Firefox — 35.0.1. На вашем экземпляре доступна только более новая версия — 36.0.4. Это создает конфликт, так как APT не может установить пакет, требующий версию, которая недоступна в репозиториях.
Варианты решения
1. Установка недостающих зависимостей вручную
Одним из способов решения проблемы является установка необходимых версий пакетов вручную.
-
Вы можете попробовать установить требуемую версию Firefox, скачав его .deb-файл с официальных источников или с сайта, где хранятся старые версии пакетов (например, Ubuntu Package Archive).
-
Убедитесь, что вы загружаете правильный пакет для вашей версии Ubuntu, а затем выполните команду:
sudo dpkg -i /path/to/firefox_35.0.1+build1-0ubuntu0.14.04.1.deb
-
После этого повторите установку вашего пакета
youtube-snapshot-taker
:sudo dpkg -i /path/to/youtube-snapshot-taker.deb
2. Запуск команды для исправления зависимостей
После установки пакета вручную или если вы хотите попытаться установить пакет без удовлетворяющей зависимости:
- Запустите команду, чтобы исправить проблемы с зависимостями:
sudo apt-get install -f
или, если установлен
aptitude
:sudo aptitude install -f
Эти команды попытаются разрешить зависимостные конфликты.
3. Игнорирование зависимостей (не рекомендуется)
Если вышеуказанные методы не сработают и установка пакета критически важна для вас, как крайняя мера, вы можете игнорировать зависимости. Однако это может привести к потенциальным проблемам в работе системы или приложения. Команда выглядит следующим образом:
sudo dpkg -i --ignore-depends=youtube-snapshot-taker /path/to/youtube-snapshot-taker.deb
Важно! Это может оставить ваше приложение в некорректном состоянии, поэтому используйте этот метод с осторожностью.
Заключение
Ваши неудовлетворенные зависимости связаны со спецификацией версий пакетов. Правильный подход включает обновление или установку нужных версий зависимостей. Используйте упомянутые шаги для устранения проблемы, и если возникнут дополнительные вопросы, не стесняйтесь спрашивать. Это поможет вам не только правильно установить пакет, но и поддерживать стабильность и безопасность вашего окружения на базе AWS.