web-dev-qa-db-fra.com

Comment annuler une installation accidentelle de tous les modules Perl?

J'essayais de mettre à niveau mes modules Perl via CPAN, mais je n'ai pas fourni de nom de regex/module à mettre à niveau: Perl -MCPAN -e 'upgrade'; Je ne peux que supposer que le pire (qui semble être pris en charge par la sortie de perldoc perllocal), c’est-à-dire que tous les modules Perl de CPAN sont en cours d’installation.

Comment puis-je réparer ce gâchis? Je suppose que je peux enlever /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 tout simplement pas beaucoup d'encombrement inutile. J'envisage de rm 'accéder à ce répertoire, faire dpkg --purge Perl et refaire le processus d'installation de apt-get et de CPAN. Mais est-ce vraiment nécessaire ou puis-je simplement supprimer les modules inutiles de /usr/local/share/Perl?

8
paulrehkugler

En regardant cela de plus près, je ne pense pas que vous deviez ou devriez supprimer les répertoires ou les fichiers de votre système.

L'exécution de la commande Perl -MCPAN -e 'upgrade' à partir de la ligne de commande ne permettra pas d'installer des modules supplémentaires sur votre système.

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

Ceci est similaire à l'exécution de la commande 'r' puis à l'exécution de la commande de mise à niveau à l'invite cpan[1]>. Voir ici .

CPAN et Synaptic sont deux systèmes de gestion de colis distincts et distincts.

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

Toutefois, cela présente toujours un risque 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 fort probable que vous ayez évité de nuire à votre système.

Options de récupération:

À partir d'une ligne de commande, démarrez cpan et 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 module Eval::Closure, pour cet exemple. Disons que vous laissez la commande Perl -MCPAN -e 'upgrade' se terminer et que vous avez maintenant la version 0.08 installée.

En regardant Synaptic, dans ce cas, cela montrera que la dernière version du référentiel sera toujours 0.06 (0.06-1, plus précisément 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 manuellement installé des modules Perl et souhaitez les restaurer, vous devez les télécharger à nouveau (à partir de source.cpan.org ou ailleurs), puis les réinstaller manuellement.

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

Bonne chance. Ne paniquez pas.

5
Kevin Bowen

Je recommande 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 restants), vous pouvez alors supprimer les dossiers dont vous n'avez pas besoin, mais cela devrait déjà être fait pour vous :)

0
Stefan