web-dev-qa-db-fra.com

Puis-je voir pourquoi un paquet est installé?

Pour un package spécifique, puis-je savoir pourquoi il est installé?

Alors, est-ce que je peux voir ou il est installé manuellement ou s'il est installé en tant que dépendance d'un autre paquet? Ou qu'il soit installé dans le cadre de la distribution?

108
Peter Smit

Une solution rapide consiste à entrer la commande suivante dans un terminal:

aptitude why $package

ou, si vous êtes uniquement intéressé par la cause ultime:

aptitude why $package --show-summary

Remplacez $ package par le nom du package. Vous devrez peut-être installer le package aptitudename__.

Voici le résultat que vous pourriez obtenir pour aptitude why aspell --show-summary

Packages requiring aspell:
  inkscape

Pour plus de détails, lancez aptitude why aspell. Vous pouvez lire l'exemple ci-dessous comme suit: "Vous avez installé manuellement inkscapename__, qui requiert libgtkspellname__, qui nécessite libenchantic2a, et qui nécessite aspellname__". (Les marqueurs iindiquent les packages installés; les marqueurs Aindiquent les packages installés automatiquement.)

i   inkscape       Depends libgtkspell0 (>= 2.0.10)                                                                    
i A libgtkspell0   Depends libenchant1c2a (>= 1.6.0)                                                                   
i A libenchant1c2a Depends aspell-en | myspell-dictionary | aspell-dictionary | ispell-dictionary | hunspell-dictionary
i A aspell-en      Depends aspell (>= 0.60.3-2)

Enfin, la commande suivante

apt-cache rdepends --installed $package

répertorie les autres packages installés sur votre ordinateur qui dépendent directement de $ package. Vous pouvez ajouter l'option --recurse pour répertorier tous les packages qui en dépendent directement ou indirectement.

104
enzotib

Un raisonnement rapide et bref sur la raison pour laquelle un certain paquet a été installé peut être trouvé en tapant la commande suivante dans un terminal (Applications -> Accessories -> Terminal):

aptitude why <package-name>

Remplacez-le par le nom du package qui vous intéresse. Par exemple, taper aptitude why libgoo-canvas-Perl génère les éléments suivants:

i   shutter Suggests libgoo-canvas-Perl

Cela signifie essentiellement que le paquet shutter dans ce cas a suggéré que libgoo-canvas-Perl soit installé. En saisissant alors aptitude why shutter, je peux remonter la chaîne de dépendance.

Cependant, il y a une mise en garde. Je remarque souvent que aptitude trouve que l'explication la plus plausible de la situation n'est peut-être pas la réalité, mais qu'elle vous donnera néanmoins un indice pour approfondir votre recherche.

Dans mon cas, shutter suggère libgoo-canvas-Perl - toutefois, les packages suggérés ne sont pas installés automatiquement par défaut. Néanmoins, cela me rappelle "l'expérience" de ne pas pouvoir éditer les captures d'écran avec shutter, ce qui m'a amené à installer manuellement ligbgoo-canvas-Perl

Enfin, vous pouvez savoir si un paquet a été installé automatiquement (c'est-à-dire décidé par le système de gestion des paquets de regarder impérativement les dépendances et les recommandations des autres paquets que vous avez demandé d'installer) en exécutant la commande suivante.

aptitude show <package-name>

Cela produira une ligne comme ci-dessous (3ème ligne de la sortie):

Automatically installed: no

Pour plus d’informations, lancez info aptitude (dans un terminal) ou visitez la page page wiki Aptitude

Pour savoir quand un paquet particulier a été installé, il y a 2 options:

  1. Le gestionnaire de paquets Synaptic conserve un historique de toutes les activités. Pour afficher le fichier journal de l'historique, choisissez Historique dans le menu Fichier. Vous pouvez rechercher Install (attention au cas) pour lister toutes les entrées concernant l'installation. Cependant, cela ne montrera que les paquets installés en utilisant Synaptic
  2. Exécutez la commande suivante dans un terminal. Ceci recherchera les journaux dpkg pour les entrées de l'historique d'installation. Toutefois, le nombre de journaux conservés est limité. Par conséquent, si le package que vous recherchez a été installé il y a longtemps, il se peut que vous ne le trouviez pas. Plus de détails ici

    zcat -f /var/log/dpkg.log* | grep "\ install\ " | grep -i <package-name>
    
30
koushik

Oui, vous pouvez, et c'est une commande assez évidente, en fait. En supposant que vous avez installé aptitude, vous pouvez ouvrir un type d’annonce Terminal Window:

aptitude why package

Cela devrait donner une liste des paquets qui dépendent de ce paquet spécifique. Si c'est un paquet installé manuellement, il va dire quelque chose comme: "Il n'était pas possible de trouver une raison pour installer le paquet".

12
Daniel Rodrigues

Voici un moyen simple qui ne repose pas sur aptitude, que 10.10 n’expédie plus par défaut.

Graphiquement

Ouvrez Synaptic et essayez de le supprimer.

Si une boîte de dialogue s'ouvre vous demandant de supprimer d'autres packages, il s'agit des packages qui (de manière récursive) en dépendent.

Du terminal

apt-get remove package_name_goes_here -s

Là encore, les packages qui seraient supprimés sont tous ceux qui en dépendent (de manière récursive). (Le paramètre -s indique à apt-get de ne pas supprimer réellement le package.)

4
badp