Что означает способность «почему» и «почему-нет»?

Из руководств:

Команда почему находит цепочку зависимостей, которая устанавливает пакет, названный в командной строке, как указано выше. Обратите внимание, что зависимость, которую aptitude создает в этом случае, является лишь предположением. Это связано с тем, что ни один пакет, установленный в данный момент на этом компьютере, не зависит от пакета kdepim и не рекомендует его; если бы была более сильная зависимость, aptitude показала бы это.

Напротив, почему-не находит цепочку зависимостей, приводящую к конфликту с целевым пакетом:

В моем случае (Ubuntu 14.04.2 LTS \n \l) я пытаюсь установить libdbus-1-3:i386

$ sudo apt-get install libdbus-1-3:i386
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:
 libdbus-1-3:i386 : Depends: libc6:i386 (>= 2.10) but it is not going to be installed
 unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                        Depends: libcheese7 (>= 3.0.1) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

Я пытался aptitude why и aptitude why-not, надеясь получить больше информации о том, почему установка не удалась.

$ sudo aptitude why libdbus-1-3:i386
p   upstart:i386 Provides upstart                     
p   upstart:i386 Depends  libdbus-1-3:i386 (>= 1.2.16)

$ sudo aptitude why-not libdbus-1-3:i386
Unable to find a reason to remove libdbus-1-3:i386.

$ sudo aptitude why libc6:i386
p   sqlite3:i386 Provides sqlite3            
p   sqlite3:i386 Depends  libc6:i386 (>= 2.4)

$ sudo aptitude why-not libc6:i386
p   sqlite3:i386 Provides  sqlite3            
p   sqlite3:i386 Depends   libc6:i386 (>= 2.4)
p   libc6:i386   Conflicts libc6-xen:i386     
p   libc6:i386   Provides  libc6-xen:i386

Но я не могу понять смысл вывода. Может кто-нибудь помочь мне?

4
задан 19 May 2016 в 08:40

1 ответ

способность why

Короче говоря, aptitude why управляйте попыткой сказать, почему пакет должен быть установлен или уже установлен в системе. Например, в моей системе (Ubuntu 16.04), когда я работал aptitude why nautilus-data, Это говорит

i   unity-settings-daemon Depends nautilus-data (>= 2.91.3-1)

Что означает unity-settings-daemon зависит от nautilus-data и вот почему это установлено, обозначено i слева большая часть столбца стороны.

Снова, когда я работал aptitude why edubuntu-desktop, Это говорит,

Unable to find a reason to install edubuntu-desktop.

Поскольку ни один из моих установленных пакетов не зависит или рекомендует (зависит и рекомендует, внутренний термин Кв.), edubuntu-desktop

способность why-not

why-not противоположность why. Это пытается найти причину, почему данный пакет не должен быть установлен или должен быть удален, если уже установлено.

Например, когда я ввел aptitude why-not mate-power-manager:i386, Это говорит

i   mate-power-manager Conflicts mate-power-manager:i386

что означает мой установленный mate-power-manager:amd64 будет конфликтовать с mate-power-manager:i386 (Поскольку моя система является amd64 установкой, вот почему она явно не упоминала amd64).

Соответствующая часть страницы руководства очень ясна. Но включая это будет делать ответ слишком долго. Вот руководство способности


О Вашей проблеме

Когда Вы пытались установить libdbus-1-3:i386, сообщения, здесь говоря

The following packages have unmet dependencies:
 libdbus-1-3:i386 : Depends: libc6:i386 (>= 2.10) but it is not going to be installed
 unity-control-center : Depends: libcheese-gtk23 (>= 3.4.0) but it is not going to be installed
                        Depends: libcheese7 (>= 3.0.1) but it is not going to be installed

пакет libdbus-1-3:i386 требует libc6:i386 (>= 2.10) но это не может быть установлено. Также пакет unity-control-center в зависимости от libcheese-gtk23 (>= 3.4.0) и libcheese7 (>= 3.0.1) не может быть установлен.

Причина, почему не может быть установлен, может быть, многие, включая определенную версию, требуемую для тех пакетов, отсутствуют или будут конфликтовать с существующей версией, установленной и т.д.

4
ответ дан 19 May 2016 в 18:40
  • 1
    @user3867776 мы просто установили libpq-dev с указанной версией, которая более тесно соответствовала версии Пост-ГРЭС, которую мы установили. Проблема решена. – James 2 February 2018 в 23:52

Другие вопросы по тегам:

Похожие вопросы: