Je viens de passer d'Ubuntu à Fedora14. Dans Ubuntu, nous avions le apt-get autoremove
chose pour supprimer les paquets orphelins/inutilisés. Quelle est la contrepartie de Fedora?
package-cleanup --quiet --leaves
du package yum-utils listera les packages de bibliothèque qui ne sont pas utilisés par d'autres packages. Malheureusement, cela a tendance à être un peu exagéré. Sur mon système, par exemple, il a suggéré de supprimer libvirt. Ajout du --exclude-bin
l'argument aide. Si vous êtes satisfait de sa suggestion, alors pour nettoyer les paquets, faites:
# package-cleanup --quiet --leaves --exclude-bin | xargs yum remove -y
DNF, le remplacement de yum depuis Fedora 22, fournit également une sous-commande autoremove
qui est modélisée d'après apt-get/yum autoremove.
Exemples:
# dnf autoremove
qui essaie de supprimer tous les packages de dépendances installés automatiquement et autrement inutilisés - devrait être à peu près équivalent à apt-get autoremove
.
# dnf autoremove examplepackage
qui supprime le package d'exemple et toutes ses dépendances installées automatiquement (et autrement inutilisées).
Yum a la commande autoremove depuis Fedora 19, et elle est documentée depuis Fedora 20/RHEL 7.
L'utilisation est analogue à l'implémentation dnf, par exemple:
# yum autoremove
ou
# yum autoremove examplepackage
Yum prend en charge une option de configuration pour changer le comportement par défaut de la sous-commande remove
(par exemple via /etc/yum.conf):
clean_requirements_on_remove=yes
Lorsque cette option est définie, la prochaine yum remove
essaie également de supprimer les dépendances installées automatiquement si elles ne sont pas nécessaires aux autres packages.
Vous pouvez également tester temporairement cette option via quelque chose comme:
# yum --setopt=clean_requirements_on_remove=1 remove examplepackage
(Pour les versions de Fedora où la sous-commande yum autoremove n'est pas disponible et/ou clean_requirements_on_remove
ne marche pas.)
Bien que lors de l'installation des packages, les dépendances installées soient marquées comme telles (semble être une fonctionnalité relativement nouvelle de rpm/yum).
Vous pouvez trouver des dépendances inutiles via:
$ package-cleanup --leaves -q --all \
| xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' \
| grep -- '- dep' \
| cut -d' ' -f1 > tmp
Cette ligne de commande est inspirée de script de fenris02 .
Après inspection de tmp
(et peut-être curation), vous pouvez les supprimer via quelque chose comme ceci:
# xargs yum remove < tmp
vous devez installer le plugin yum "remove-with-leaves":
# yum install yum-plugin-remove-with-leaves.noarch
une fois installé:
# yum remove --remove-leaves package
bonne chance!
# package-cleanup --orphans >/tmp/junk
modifiez le /tmp/junk
fichier et supprimez la première ligne informative de la ligne de commande, entrez ce qui suit:
for file in `cat /tmp/junk`
do
yum remove $file
done
REMARQUE: Cette réponse est correcte mais ne s'applique qu'à RHEL 7+ et Fedora 20 + (où la suppression automatique a été ajoutée en tant que nouvelle fonctionnalité).
# yum autoremove
Confirmez simplement pour supprimer les packages sélectionnés.
Une autre façon de ne pas provoquer ces problèmes consiste à utiliser les transactions.
Après avoir configuré le système de base, lors de l'installation à l'aide de yum, il crée des transactions. Lorsque vous avez l'intention de supprimer des éléments, annulez les transactions.
Dans Fedora, le package Orphan ne signifie aucun dépôt candidat à mettre à jour!
Si les packages orphelins ont été générés par vous, désactivez yum.repos.d/some.conf.
yum distro-sync
Autres packages orphelins, la commande peut être dangereuse.
yum remove $(package-cleanup --orphans)
ou, utilisez simplement la commande de sécurité.
yum remove name-of-page
S'appuyant sur réponse de Larry Mohr :
package-cleanup --orphans | sed '1d' | sed '/^ * /d' | sed '/Loading mirror speeds from cached hostfile/d' | xargs Sudo yum remove
(Inclut le saut pour le miroir le plus rapide, si vous vous demandez.)