Comment annuler une installation accidentelle de tous les modules Perl?

8

Je tentais de mettre à jour mes modules Perl par CPAN, mais je ne l' ai pas fournir un regex / nom du module de mise à niveau: perl -MCPAN -e 'upgrade'; Je ne peux que supposer le pire (qui semble être pris en charge par la sortie de perldoc perllocal), c'est-à-dire que tous les modules Perl du CPAN sont en cours d'installation.

Comment puis-je défaire ce gâchis? Je suppose que je peux supprimer /usr/local/share/perl, mais quelles sont les implications de cela?

Edit: J'ai encore 95% d'espace libre sur mon disque dur, donc ce n'est pas un gros problème. Je ne veux juste pas beaucoup d'encombrement inutile. J'envisage rmd'utiliser ce répertoire, de faire dpkg --purge perlet de refaire le apt-getprocessus d'installation et CPAN. Mais est-ce vraiment nécessaire, ou puis-je simplement supprimer les modules inutiles /usr/local/share/perl?

paulrehkugler
la source
Certaines personnes pensent que ce n'est vraiment pas une bonne idée de supprimer directement les fichiers système (et dossiers). Il vaut peut-être mieux utiliser des choses comme apt-getou Synaptic pour que le système supprime complètement et met à jour les bases de données requises.
4
Les modules @ vasa1 Perl installés sous CPAN ne sont pas suivis de cette façon. Le répertoire où résident les modules doit probablement être supprimé. Ou on doit les supprimer manuellement via CPAN et c'est un cr * pshoot s'ils obéissent à une directive de désinstallation, ou même à une make uninstallcommande. C'est un système de gestion de paquets complètement différent, malheureusement. stackoverflow.com/questions/2626449/…
Kevin Bowen
@maggotbrain, merci! Je ne le savais pas. (Le seul Perl que j'utilise pour les petites choses est livré avec le système d'exploitation.)

Réponses:

5

En y regardant de plus près, je ne pense pas que vous ayez besoin ou devez supprimer des répertoires ou des fichiers sur votre système.

L'exécution de la commande à perl -MCPAN -e 'upgrade'partir de la ligne de commande n'installera pas de modules supplémentaires sur votre système.

Il tentera uniquement de mettre à niveau les modules installés, via le système de gestion des packages CPAN, et non via Synaptic .

Cela revient à exécuter la commande «r», puis à exécuter la commande de mise à niveau à l' cpan[1]>invite. Voyez ici .

CPAN et Synaptic sont deux systèmes de gestion de packages séparés et distincts.

Cela n'installera pas tous les modules Perl possibles à partir de CPAN. Il ne modifiera pas non plus le système actuel dB. Donc, vous pouvez certainement revenir en arrière en toute sécurité.

Cependant, cela reste potentiellement risqué si une application ou votre système dépend d'une version particulière d'un module Perl.

Si vous avez interrompu le processus de mise à niveau, il est probable que vous ayez évité d'endommager votre système.

Options de récupération:

À partir d'une ligne de commande, démarrez cpanet exécutez la commande r pour afficher la liste des modules installés et des mises à niveau disponibles. Par exemple, voici la sortie abrégée de mon cpan:

cpan[7]> r

Package namespace         installed    latest  in CPAN file
App::Cpan                    1.5701      1.61  BDFOY/App-Cpan-1.61.tar.gz
DBD::mysql                    4.020     4.022  CAPTTOFU/DBD-mysql-4.022.tar.gz
DBI                           1.616     1.623  TIMB/DBI-1.623.tar.gz
DB_File                       1.821     1.827  PMQS/DB_File-1.827.tar.gz
Error                       0.17010   0.17019  SHLOMIF/Error-0.17019.tar.gz
Eval::Closure                  0.06      0.08  DOY/Eval-Closure-0.08.tar.gz
....

Prenez le Eval::Closuremodule, pour cet exemple. Disons que vous laissez la perl -MCPAN -e 'upgrade'commande se terminer et que la version 0.08 est maintenant installée.

En regardant Synaptic, dans ce cas, cela montrera que la dernière version dans le référentiel sera toujours 0.06 (0.06-1, spécifiquement, dans mon cas).

Vous pouvez revenir à la version de votre système en exécutant la commande suivante:

sudo apt-get install --reinstall libeval-closure-perl

Si vous avez installé manuellement des modules Perl et que vous souhaitez les restaurer dans une version précédente, vous devrez les télécharger à nouveau (à partir de source.cpan.org ou ailleurs) et les réinstaller manuellement.

Pour résumer: la mise à niveau des modules Perl dans CPAN ne devrait pas affecter votre référentiel système.

Bonne chance. Pas de panique.

Kevin Bowen
la source
Excellente et complète réponse! "Ne paniquez pas" est la phrase clé ici. J'ai vu beaucoup de résultats et j'ai lu comment utiliser des arguments pour spécifier le module, j'ai donc sauté trop vite aux conclusions. J'ai été surpris de constater que j'utilisais à peine n'importe quel espace HD, mais j'ai quand même vu certains modules que je ne reconnaissais pas (probablement à cause de dépendances). Bon à savoir cela ne nécessite aucun travail pour moi!
paulrehkugler
0

Je recommanderais de faire: apt-get remove <installed-packages> && apt-get autoremove(pour supprimer les dépendances) && apt-get purge <installed-packages>(pour supprimer les fichiers de configuration qui sont restitués), alors vous pouvez supprimer les dossiers dont vous n'avez pas besoin, mais cela devrait déjà être fait pour vous :)

Stefan
la source
2
Le PO l'a fait par l'entremise du CPAN. Une purge ne va pas aider puisque ces modules ne sont pas sous gestion des packages.
Kevin Bowen