J'ai installé des paquets rpm sur mon Fedora 17. Certains paquets avaient beaucoup de dépendances. J'ai supprimé des paquets mais j'ai oublié de supprimer les dépendances inutilisées avec yum remove.
Ce n'est pas facile. Comment faites-vous la distinction entre "un fichier requis par quelque chose que j'ai supprimé depuis" de "un fichier qui n'est plus requis par quelque chose que je veux vraiment"?
Vous pouvez utiliser la package-cleanupcommande du yum-utilspackage pour répertorier les "nœuds terminaux" dans votre graphe de dépendance. Ce sont des paquets qui peuvent être supprimés sans rien affecter d'autre:
$ package-cleanup --leaves
Cela produira une liste de "bibliothèques" dont rien d'autre ne dépend. Dans la plupart des cas, vous pouvez supprimer ces paquets en toute sécurité. Si vous ajoutez --allà la ligne de commande:
$ package-cleanup --leaves --all
Vous obtiendrez également des paquets qui ne sont pas considérés comme des bibliothèques, mais cette liste sera si longue qu'elle ne sera probablement pas utile.
APT (l'équivalent Debian de Yum) a la notion de «paquet automatiquement installé». Si un package n'a pas été explicitement demandé mais est uniquement extrait en tant que dépendance, il sera automatiquement supprimé (avec une invite de confirmation) si les packages qui en dépendent sont tous supprimés. Sans indication de ce type, ce n'est en effet pas facile.
Gilles 'SO- arrête d'être méchant'
101
Si vous installez un paquet avec yum install, disons pdftk, il attirera beaucoup de dépendances:
yum remove pdftk enlèvera seulement ce paquet et pas toutes les dépendances.
Mais vous pouvez regarder toutes les "transactions" (installer, supprimer, etc.):
$ sudo yum history list pdftk
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------
88 | install pdftk | 2012-12-14 13:35 | Install | 11
Et ensuite, vous pouvez annuler cette transaction:
Vous pouvez également appliquer la commande autoremove avec un package spécifique
yum autoremove <package>
Ce qui supprimera les dépendances inutiles de ce paquet installé. autoremoveest très souvent un alias, remove --setopt=clean_requirements_on_remove=1mais pour certaines raisons, il n’est toujours pas documenté.
commande yum remove --setopt=clean_requirements_on_remove=1fonctionne pour moi en centOS
BMW
Pour moi, package-cleanup --leaves && yum autoremovelibvorbis supprimé et a ainsi fait disparaître l'application "Ices" de diffusion en continu sur Internet - probablement parce qu'elle n'était pas en pension et que je devais la compiler.
Nakilon
La commande yum autoremovefonctionne également sur CentOS 7.6.
scrutari le
yum autoremove ne parvient pas à supprimer 4 anciens noyaux sur CentOS 7
Cela saisit toutes les dépendances qui peuvent être supprimées sans affecter quoi que ce soit d'autre, puis les supprime. Mieux vaut alors passer un par un.
"-q" est utile sur certains systèmes qui affichent "Configuration de yum" sinon, cette commande supprime yum. Et ce n'est pas ce que tu veux.
package-cleanupsorties "Configuration de yum" sur ma machine, ce qui a amené Yum à se retirer lui-même. J'essaie maintenant de trouver un moyen de résoudre ce problème.
Paul Lammertsma
@PaulLammertsma vient d'ajouter une -qoption pour le nettoyage du paquet. Cela m'est aussi arrivé: D
Ealhad
1
package-cleanup -q --leaves | xargs -r -l1 yum -y removeignore silencieusement xargs si la sortie de nettoyage du paquet est vide, utile pour les scripts automatisés tels que ansible, chef, marionnette, vagabond
Ilya Sheershoff
c'est la réponse.
xCovelus
1
Dans les nouvelles Fedoras avec dnf, vous pouvez utiliser dnf repoquery --unneededen remplacement de package-cleanup --leaves.
yum
page de manuel : linux.die.net/man/8/yum ?Réponses:
Ce n'est pas facile. Comment faites-vous la distinction entre "un fichier requis par quelque chose que j'ai supprimé depuis" de "un fichier qui n'est plus requis par quelque chose que je veux vraiment"?
Vous pouvez utiliser la
package-cleanup
commande duyum-utils
package pour répertorier les "nœuds terminaux" dans votre graphe de dépendance. Ce sont des paquets qui peuvent être supprimés sans rien affecter d'autre:Cela produira une liste de "bibliothèques" dont rien d'autre ne dépend. Dans la plupart des cas, vous pouvez supprimer ces paquets en toute sécurité. Si vous ajoutez
--all
à la ligne de commande:Vous obtiendrez également des paquets qui ne sont pas considérés comme des bibliothèques, mais cette liste sera si longue qu'elle ne sera probablement pas utile.
la source
Si vous installez un paquet avec
yum install
, disonspdftk
, il attirera beaucoup de dépendances:yum remove pdftk
enlèvera seulement ce paquet et pas toutes les dépendances.Mais vous pouvez regarder toutes les "transactions" (installer, supprimer, etc.):
Et ensuite, vous pouvez annuler cette transaction:
la source
yum history
. Merci!A partir de Fedora 18, vous pouvez simplement utiliser cette commande
ou
Vous pouvez également appliquer la commande autoremove avec un package spécifique
Ce qui supprimera les dépendances inutiles de ce paquet installé.
autoremove
est très souvent un alias,remove --setopt=clean_requirements_on_remove=1
mais pour certaines raisons, il n’est toujours pas documenté.la source
yum remove --setopt=clean_requirements_on_remove=1
fonctionne pour moi en centOSpackage-cleanup --leaves && yum autoremove
libvorbis supprimé et a ainsi fait disparaître l'application "Ices" de diffusion en continu sur Internet - probablement parce qu'elle n'était pas en pension et que je devais la compiler.yum autoremove
fonctionne également sur CentOS 7.6.J'ai pris des larsks répondre un pas plus loin.
Cela saisit toutes les dépendances qui peuvent être supprimées sans affecter quoi que ce soit d'autre, puis les supprime. Mieux vaut alors passer un par un.
"-q" est utile sur certains systèmes qui affichent "Configuration de yum" sinon, cette commande supprime yum. Et ce n'est pas ce que tu veux.
la source
package-cleanup
sorties "Configuration de yum" sur ma machine, ce qui a amené Yum à se retirer lui-même. J'essaie maintenant de trouver un moyen de résoudre ce problème.-q
option pour le nettoyage du paquet. Cela m'est aussi arrivé: Dpackage-cleanup -q --leaves | xargs -r -l1 yum -y remove
ignore silencieusement xargs si la sortie de nettoyage du paquet est vide, utile pour les scripts automatisés tels que ansible, chef, marionnette, vagabondDans les nouvelles Fedoras avec
dnf
, vous pouvez utiliserdnf repoquery --unneeded
en remplacement depackage-cleanup --leaves
.la source