Пример разрешения зависимостей пакетов в 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, который раньше был установлен некорректно, теперь работает.

Статьи и новости схожей тематики:

Комментариев: 5

  1. andrey:

    спс. помогло)

    Ответить

  2. Vityok:

    А у меня вот такое выдаёт:
    apt-get install -f
    E: Не удалось открыть файл блокировки /var/lib/dpkg/lock - open (13: Отказано в доступе)
    E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); у вас есть права суперпользователя?
    Пароль даже и не запрашивает, хотя я из под админа. А что теперь?

    Ответить

    Igorka Reply:

    Я выполнял sudo apt-get install -f

    Ответить

  3. Inlifeuser:

    Не помогает для установки wine1.5, проблема так и осталась.

    Ответить

  4. nitrojet:

    Отличный способ без лишних действий, спасибо.

    Ответить

Оставьте свой отзыв