web-dev-qa-db-fra.com

Que signifient les termes aptitude "pourquoi" et "pourquoi pas"?

À 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?

4
zjk

aptitude's 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

aptitude's 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


À propos de votre problème

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.

4
Anwar