From Mageia wiki
Jump to: navigation, search
(Attention)
Line 44: Line 44:
  
 
Maintenant, vous supprimez un seul de ces paquets parce que vous ne le voulez pas. Disons par exemple que c’est le lecteur de documents {{prog|okular}}. Supprimer {{prog|okular}} signifie qu’une des dépendances de {{prog|task-plasma5}} est manquante et donc le méta paquet {{prog|task-plasma5}} est également enlevé. C’est bien, tous les autres paquets qui ont été installés avec le {{prog|task-plasma5}} sont toujours en place, seulement maintenant ils sont marqués comme '''orphelins'''. Maintenant, si vous deviez exécuter {{cmd|urpme --auto-orphans}}, vous verrez des centaines de paquets orphelins, et une simple pression sur votre clavier effacerait votre installation de Plama dans son intégralité.
 
Maintenant, vous supprimez un seul de ces paquets parce que vous ne le voulez pas. Disons par exemple que c’est le lecteur de documents {{prog|okular}}. Supprimer {{prog|okular}} signifie qu’une des dépendances de {{prog|task-plasma5}} est manquante et donc le méta paquet {{prog|task-plasma5}} est également enlevé. C’est bien, tous les autres paquets qui ont été installés avec le {{prog|task-plasma5}} sont toujours en place, seulement maintenant ils sont marqués comme '''orphelins'''. Maintenant, si vous deviez exécuter {{cmd|urpme --auto-orphans}}, vous verrez des centaines de paquets orphelins, et une simple pression sur votre clavier effacerait votre installation de Plama dans son intégralité.
 
Beaucoup de débutants ont sérieusement endommagé leur installation parce qu’ils ont fait attention à la fenêtre contextuelle {{prog|rpmdrake}} après avoir supprimé un paquet concernant la suppression des orphelins. Personnellement, je préférerais que {{prog|rpmdrake}} cache l’existence de cette option {{cmd|urpme '''--auto-orphans'''}}.
 
  
 
=== Outils pour gérer les orphelins ===
 
=== Outils pour gérer les orphelins ===

Revision as of 06:45, 12 October 2020

Template:Bandeau multi-langues-fr


Résumé :
Suite aux nombreuses discussions autour de la commande urpme --auto-orphans, voici une page issue de ce [fil de discussion].


Quand je supprime un paquet, est-ce que les dépendances seront aussi supprimées ?

Si j’installe un paquet via urpmi nom_du_paquet et qu’il est indiqué que 9 dépendances seront installées, j’installe donc au total 10 paquets. Du coup, si je supprime ce même paquet via urpme, est-ce que cela va supprimer le paquet en question et ses 9 dépendances ?

Si ce n’est pas le cas, quelle est la meilleure commande à utiliser pour supprimer les 10 paquets ?

Réponse :

Non, il ne supprimera que le paquet que vous avez demandé, pas les dépendances. C’est pourquoi l’option urpme --auto-orphans a été voulue. Et cela fonctionne comme il faut si vous savez vraiment comment cela fonctionne, car il y a certains mécanismes que vous devez connaître et il est nécessaire d’y prêter attention de sorte que cela se comporte exactement comme vous avez demandé.

Par exemple : Vous commencez avec un système tout neuf, où urpme --auto-orphans ne renvoie aucun paquet orphelin car tous les paquets ont en fait été installés à votre demande, tous sans exception. Ensuite vous installez foo, cela installera bar et baz.


La fonction orphelin marque bar et baz comme non-explicitement demandés pour les mettre dans le fichier /var/lib/rpm/installed-through-deps.list. Ensuite, un peu plus tard, vous voulez supprimer foo. Mais bar et baz ne sont pas supprimés, car ils sont peut-être encore utiles, ce sont peut-être d’autres bibliothèques partagées. Maintenant, vous pouvez les supprimer en utilisant urpme --auto-orphans.

Vous pouvez marquer manuellement les paquets « un-orphaned » (c'est-à-dire les retirer de /var/lib/rpm/installed-through-deps.list) en indiquant à urpmi d’installer ce paquet, cela ne fera que le retirer de la liste des orphelins, comme vous avez demandé à urpmi de l’installer directement.

Voilà le cas idéal. Exécutez juste urpme --auto-orphans (mais NE PAS dire « yes » pour supprimer des paquets !!!) Pour connaître le nombre d’« orphelins » que vous avez actuellement. Si vous voulez les garder, vous pouvez simplement faire urpmi tous… Ensuite, il fonctionne comme vous l’avez demandé, et comme je l’ai décrit.

La seule autre façon, par exemple pour Thunderbird, serait de faire en tant que root un journalctl -a | grep -F thunderbird-fr et de chercher les paquets qui ont été installés avec celui que vous voulez retirer pour les supprimer manuellement aussi, mais c’est plus complexe…

Attention

Il y a de bonnes raisons d’être prudent avec urpme --auto-orphans.

Il est TRÈS facile de supprimer involontairement des paquets essentiels avec cette commande.

Considérons cet exemple. Vous avez le meta-paquetage task-plasma5 d’installé. Un méta-paquetage est un paquet vide qui ne contient aucun fichier, mais qui a beaucoup d’autres paquets comme dépendances. task-plasma5 a des centaines de paquetages sous forme de dépendances.

Maintenant, vous supprimez un seul de ces paquets parce que vous ne le voulez pas. Disons par exemple que c’est le lecteur de documents okular. Supprimer okular signifie qu’une des dépendances de task-plasma5 est manquante et donc le méta paquet task-plasma5 est également enlevé. C’est bien, tous les autres paquets qui ont été installés avec le task-plasma5 sont toujours en place, seulement maintenant ils sont marqués comme orphelins. Maintenant, si vous deviez exécuter urpme --auto-orphans, vous verrez des centaines de paquets orphelins, et une simple pression sur votre clavier effacerait votre installation de Plama dans son intégralité.

Outils pour gérer les orphelins

Depuis un certain temps, il existe un outil de gestion des orphelins. Il permet aux utilisateurs de désinstaller sélectivement des composants individuels de la liste des orphelins, marquer les éléments individuels non orphelins (la même chose se produit lorsque vous utilisez urpmi avec le nom d’un paquet installé, il est marqué comme installé manuellement, donc non orphelin).

L’outil a été créé par d’anciens membres de la communauté mandrivauser.de, maintenant de fiers Mageians :), qt4urpm se trouve dans le dépôt core_release. Le site du projet peut être consulté à l’adresse suivante http://sourceforge.net/projects/qt4urpm/

Marquer tous les orphelins comme non-orphelins

Pour marquer simplement tous les paquets orphelins comme étant installés manuellement, on peut utiliser par exemple

 urpmi $(urpmq --auto-orphans -f)

Contenu additionnel à propos d’Orphans

Dans la plupart des cas, la gestion des orphelins est davantage une préoccupation technique que pratique. Le genre de procédure dont vous pourriez avoir besoin si vous essayez de nombreux logiciels différents et que vous avez une mémoire limitée.

Bogues rapportés

Autre méthode pour purger des RPMs

Au-delà des orphelins, il existe d’autres méthodes pour nettoyer votre système.

Suppression des paquets les plus gros

La commande suivante énumérera les 10 plus gros paquets sur votre système. Si l’un d’entre eux ne vous est plus utile, vous pouvez utiliser urpme pour le supprimer et éventuellement, supprimer les paquets orphelins (voir ci-dessus).

 rpm -qa --qf '%{SIZE} %{NAME}\n' | sort -nr | head -n 10

Suppression des paquets qui ne sont pas inclus dans vos dépôts

Si vous avez mis à jour votre système (peut-être à plusieurs reprises) ou installé manuellement certains paquets, il se peut que vous souhaitiez également supprimer certains paquets. La commande ci-dessous listera tous les paquets qui ne sont pas dans les dépôts « Core Release » (pas besoin de spécifier les dépôts Mises à jour : tous les paquets dans « Updates » sont aussi dans « Release ») :

 rpm -qa | xargs urpmq --media « Core Release »,« Core 32bit Release » -r

N’hésitez pas à lister les dépôts que vous voulez dans un format séparé par des virgules.


Pour simplement afficher tous les paquets qui ne sont contenus dans aucun des dépôts configurés actuellement, saisissez :

 urpmq --not-available