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