web-dev-qa-db-fra.com

Comment supprimer les packages orphelins dans Fedora?

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?

43
c0da

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
36
Owen Fraser-Green

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

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

Changer le comportement des suppressions de miam

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

yum.conf (5)

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

Solution de contournement pour l'ancienne version de Fedora

(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
33
maxschlepzig

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!

16
mrc
# 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
8
Larry Mohr

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.

4
Chilly Milly

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.

https://docs.fedoraproject.org/en-US/Fedora/24/html/System_Administrators_Guide/sec-DNF-Transaction_History.html

0
Vamsi

Dans Fedora, le package Orphan ne signifie aucun dépôt candidat à mettre à jour!

  1. Si les packages orphelins ont été générés par vous, désactivez yum.repos.d/some.conf.

    yum distro-sync
    
  2. 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
    
0
firo

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.)

0
Bengt