Пример разрешения зависимостей пакетов в Ubuntu
Вчера проводил некоторые эксперименты с установкой пакетов в Ubuntu. Экспериментировал на виртуальной Ubuntu 10.04 обновленной с Ubuntu 9.10. Это не так важно, но все же. Так вот после установки одного пакета с неразрешенными зависимостями в области уведомления появилось сообщение:
Произошла ошибка. Запустите менеджер пакетов из контекстного меню или apt-get в терминале, чтобы посмотреть детальную информацию. Сообщение об ошибке: Ошибка:’BrokenCount > 0′ Это обычно означает, что ваши установленные пакеты имеют неразрешенные зависимости.
Я знал о каком пакете идет речь, но если вдруг такая ситуация появится “сама по себе” :) , то для поиска пакетов с неразрешенными зависимостями можно использовать команду apt-get check:
1 2 3 4 5 6 7 8 9 10 11 | $ sudo apt-get check [sudo] password for igor: Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Возможно, для исправления этих ошибок вы захотите воспользоваться `apt-get -f install'. Пакеты, имеющие неудовлетворённые зависимости: ghex: Зависит: libgnomeprint2.2-0 (>= 2.17.0) но он не установлен Зависит: libgnomeprintui2.2-0 (>= 2.17.0) но он не установлен Зависит: libgtkhex0 (>= 2.21.4) но он не установлен E: Неудовлетворённые зависимости. Попытайтесь использовать -f |
В выводе команды видим, что пакет с неудовлетворенными зависимостями это ghex, а пакеты от которых он зависит и которых нет в системе это libgnomeprint2.2-0, libgnomeprintui2.2-0 и libgtkhex0.
Чтобы попытаться разрешить зависимости автоматически, нам предлагают воспользоваться командой apt-get install с предлагаемым ключом -f. Я так и поступил:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ sudo apt-get -f install Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Исправление зависимостей... Готово Будут установлены следующие дополнительные пакеты: libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common libgtkhex0 НОВЫЕ пакеты, которые будут установлены: libgnomecups1.0-1 libgnomeprint2.2-0 libgnomeprint2.2-data libgnomeprintui2.2-0 libgnomeprintui2.2-common libgtkhex0 обновлено 0, установлено 6 новых пакетов, для удаления отмечено 0 пакетов, и 5 пакетов не обновлено. не установлено до конца или удалено 1 пакетов. Необходимо скачать 421kБ архивов. После данной операции, объём занятого дискового пространства возрастёт на 5.153kB. Хотите продолжить [Д/н]? |
После подтверждения продолжения установки, идет закачка и установка нужных пакетов. Сообщение в области уведомлений исчезает, а команда apt-get check показывает, что все в порядке:
1 2 3 4 | $ sudo apt-get check Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово |
Пакет ghex, который раньше был установлен некорректно, теперь работает.
andrey:
спс. помогло)
Ответить
6 августа 2012, 10:24Vityok:
А у меня вот такое выдаёт:
apt-get install -f
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?
Пароль даже и не запрашивает, хотя я из под админа. А что теперь?
Ответить
Igorka Reply:
января 11, 2013 at 11:41
Я выполнял sudo apt-get install -f
Ответить
Inlifeuser:
Не помогает для установки wine1.5, проблема так и осталась.
Ответить
17 июня 2013, 11:05nitrojet:
Отличный способ без лишних действий, спасибо.
Ответить
4 октября 2013, 11:52