À partir des manuels:
La commande pourquoi trouve une chaîne de dépendances qui installe le package nommé sur la ligne de commande, comme ci-dessus. Notez que la dépendance que aptitude a produite dans ce cas n’est qu’une suggestion. En effet, aucun paquet actuellement installé sur cet ordinateur ne dépend du paquet kdepim ou ne le recommande. si une dépendance plus forte était disponible, aptitude l'aurait affichée.
Au contraire, pourquoi-not trouve une chaîne de dépendance menant à un conflit avec le package cible:
Dans mon cas (Ubuntu 14.04.2 LTS \n \l
), j'essaie d'installer 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.
J'ai essayé aptitude why
et aptitude why-not
, dans l'espoir d'obtenir plus d'informations sur les raisons de l'échec de l'installation.
$ 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
Mais je ne peux pas comprendre le sens de la sortie. Quelqu'un peut-il m'aider s'il vous plaît?
why
En bref, la commande aptitude
'why
essaie de dire pourquoi un paquet doit être installé ou est déjà installé sur le système. Par exemple, dans mon système (Ubuntu 16.04), lorsque j’exécutais aptitude why nautilus-data
, il est indiqué
i unity-settings-daemon Depends nautilus-data (>= 2.91.3-1)
Ce qui signifie que unity-settings-daemon
dépend de nautilus-data
et c'est pourquoi il est installé, indiqué par le i
dans la colonne de gauche.
Encore une fois, quand j'ai lancé aptitude why edubuntu-desktop
, il est écrit:
Unable to find a reason to install edubuntu-desktop.
Parce qu'aucun de mes paquets installés ne dépend ou ne recommande ( dépend et recommande sont le terme interne d'apt) edubuntu-desktop
why-not
why-not
est l'opposé de why
. Il essaie de trouver une raison pour laquelle un paquet donné ne devrait pas être installé ou devrait être supprimé s'il est déjà installé.
Par exemple, lorsque j'ai tapé aptitude why-not mate-power-manager:i386
, il est indiqué
i mate-power-manager Conflicts mate-power-manager:i386
ce qui signifie que mon mate-power-manager:AMD64
installé entrera en conflit avec mate-power-manager:i386
(mon système étant une installation AMD64, c'est pourquoi il n'a pas été explicitement mentionné AMD64
).
La partie pertinente de la page de manuel est très claire. Mais y compris cela rendra la réponse trop longue. Voici le manuel d'aptitude
Lorsque vous avez essayé d’installer libdbus-1-3:i386
, les messages suivants vous disent
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
le paquet libdbus-1-3:i386
nécessite libc6:i386 (>= 2.10)
mais il ne peut pas être installé. De plus, le package unity-control-center
dépend de libcheese-gtk23 (>= 3.4.0)
et libcheese7 (>= 3.0.1)
ne peut pas être installé.
La raison pour laquelle l'installation ne peut pas être installée peut être multiple, y compris la version spécifique requise pour ces packages qui manque ou va entrer en conflit avec la version existante installée, etc.