From Mageia wiki
Jump to: navigation, search
Drakconf multiflag.png
Autres langues

Deutsch ; English ; Français ;


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

Dragon.png
Ici sont des dragons!

URPMI et DNF utilisent des méthodes différentes pour suivre les orphelins.

Si jamais vous utilisez les deux, vous ne devez jamais utiliser la fonctionnalité automatique de l’un ou l’autre pour retirer les orphelins !


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.

Une 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…

Suppression avec dépendances

Exemple : urpme --auto-orphans task-x11 supprimera x11 et les dépendances.

Référence : * https://bugs.mageia.org/show_bug.cgi?id=3163#c7urpmi devrait simplifier la suppression des métapaquets et de leurs dépendances, à l’instar de l’option de purge de apt.

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

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

Résolu

  • mga#920 Le message « urpme --auto-orphans » ne doit pas être affiché lors de l’utilisation de rpmdrake
  • mga#12567 – Spécifications des objectifs concernant le mécanisme des orphelins urpmi
  • mga#14594 (duplicate : mga#11287) – Évitez de montrer un message sur les orphelins lorsque vous utilisez rpmdrake / mgaapplet / drakrpm-update

à envisager

  • mga#3947 – la détection des orphelins doit enregistrer les fichiers demandés, non installés par les dépendances
  • mga#8123 – Ajouté « orphaned » comme vue sélective du rpmdrake

Autre méthode pour purger des RPMs

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

Suppression de la régionnalisation et du support matériel non utilisés

Notre outil remove-unused-packages est ce que l’outil d’installation autonome effectue. Utilisez su - pour devenir root. Utilisez toujours su avec le tiret ! Ou configurez et utilisez sudo.

Sur un système installé, vous pouvez le démarrer manuellement dans un terminal en tant que root. S’il n'y a rien à désinstaller, la ligne de commande se terminera sans commentaire.

Pour voir ce qu’il est sur le point de désinstaller, cliquez sur le bouton Avancé. Si vous pensez que c’est trop : soit vous abandonnez, soit vous laissez faire et vous réinstallez ce dont vous avez besoin par la suite. Exemple : Personnellement, je réinstalle urpmi locales-en autocorr-en hunspell-en hyphen-en mythes-en – Because that makes English spell check work for example when I write this…

USB autonome Persistent

Surtout pour un Média ISO autonome avec persistance, et aussi une installation conventionnelle sur clé USB, il est agréable de se débarrasser des paquets inutilisés pour gagner de l’espace sur la partition persistante, et d’économiser du temps et de la bande passante.

(Les paquets ne seront pas retirés de la partition en lecture seule créée sous forme d’image si le fichier ISO est actif – mais pour le système de paquets, ils sembleront retirés, donc pas de mises à jour qui seraient autrement stockées dans la partition persistante)

Ainsi, sur un système autonome USB persistant, avant de le mettre à jour, supprimez les paramètres linguistes inutilisés comme ceci : Ouvrez un terminal, devenez root en entrant su - (le tiret est important !), et ensuite écrire remove-unused-packages. Une fenêtre de dialogue vous sera présentée. Pour utiliser la clé USB sur la plupart des ordinateurs il faut généralement « désélectionner » la suppression du support matériel, puis cliquer sur OK.

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

Vous pourriez avoir besoin de certains d’entre eux

Vous pouvez avoir des paquets installés qui ne veulent vraiment pas être désinstallés, comme

  • Pilotes d’imprimantes récupérés auprès du fabricant.
  • Un beau programme que vous avez trouvé