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?
apt
software-installation
dependencies
Peter Smit
la source
la source
Réponses:
Une solution rapide consiste à entrer la commande suivante dans un terminal:
ou, si vous êtes uniquement intéressé par la cause ultime:
Remplacez $ package par le nom du paquet et vous devrez peut-être d'abord installer le
aptitude
paquet.Voici la sortie que vous pourriez obtenir pour
aptitude why aspell --show-summary
Pour plus de détails, vous courriez
aptitude why aspell
. Vous pouvez lire ci-dessous l’exemple de sortie ci-dessous: "Vous avez installé manuellementinkscape
ce qui nécessitelibgtkspell
, ce qui nécessitelibenchantic2a
, ce qui nécessiteaspell
". (Lesi
marqueurs indiquent les packages installés; lesA
marqueurs indiquent les packages installés automatiquement.)Enfin, la commande suivante
répertorie les autres packages installés sur votre ordinateur qui dépendent directement de $ package . Vous pouvez ajouter l'
--recurse
option permettant de répertorier tous les packages qui en dépendent directement ou indirectement.la source
apt-cache rdepends --recurse $package
donne probablement trop de paquets. J'ajouterais une--installed
option pour limiter les packages installés.-i
l'option se limite aux paquets liés à la pré-dépendance et à la dépendance. Mais un paquet peut être installé car il est recommandé par un autre paquet. Pour inclure de tels paquets liés aux recommandations, je suppose que cela donnerait les bons:apt-cache rdepends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --installed --recurse $package
apt-cache rdepends --no-{suggests,conflicts,breaks,replaces,enhances} --installed --recurse $package
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
):Remplacez-le par le nom du package qui vous intéresse. Par exemple, la saisie
aptitude why libgoo-canvas-perl
génère les éléments suivants:Cela signifie essentiellement que le paquet
shutter
dans ce cas a suggéré d’libgoo-canvas-perl
être installé. En tapant,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èrelibgoo-canvas-perl
- cependant, 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 des captures d'écran avecshutter
lesquelles je me suis installé 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 consulter impérativement les dépendances et les recommandations des autres paquets que vous avez demandé d'installer) en exécutant la commande suivante.
Cela produira une ligne comme ci-dessous (3ème ligne de la sortie):
Pour plus d’informations, lancez
info aptitude
(dans un terminal) ou visitez la page wiki AptitudePour savoir quand un paquet particulier a été installé, il y a 2 options:
Install
(attention au cas) pour lister toutes les entrées concernant l’installation. Cependant, cela ne montrera que les paquets installés en utilisant SynapticExé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
la source
zcat -f /var/log/dpkg.log* | grep -i PackageName | egrep “\ install\ |\ upgrade\ “
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:
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".
la source
Voici un moyen simple qui ne repose pas sur le fait
aptitude
que la version 10.10 n’est plus livrée 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
Là encore, les packages qui seraient supprimés sont tous ceux qui en dépendent (de manière récursive). (Le
-s
paramètre ditapt-get
de ne pas réellement supprimer le paquet.)la source
y/N
demande de confirmation supplémentaire doit également être envoyée en cas de faute de frappe-s
. J'ai ajouté un avertissement cependant.