¿Cómo deshago una instalación accidental de todos los módulos Perl?

8

Estaba intentando actualizar mis módulos Perl a través de CPAN, pero no proporcioné un nombre de expresión regular / módulo para actualizar perl -MCPAN -e 'upgrade':; Solo puedo asumir lo peor (que parece ser compatible con la salida de perldoc perllocal), es decir, todos los módulos Perl de CPAN se están instalando.

¿Cómo puedo deshacer este desastre? Supongo que puedo eliminar /usr/local/share/perl, pero ¿cuáles son las implicaciones de eso?

Editar: todavía tengo un 95% de espacio libre en mi disco duro, por lo que no es una gran preocupación. Simplemente no quiero un montón de desorden innecesario. Estoy considerando rmese directorio, haciendo dpkg --purge perly rehaciendo el apt-getproceso de instalación y CPAN. ¿Pero es realmente necesario, o puedo simplemente eliminar los módulos innecesarios /usr/local/share/perl?

paulrehkugler
fuente
Algunas personas sienten que realmente no es una buena idea eliminar directamente los archivos (y carpetas) del sistema. Tal vez sea mejor usar cosas como apt-getSynaptic para que el sistema elimine completamente y actualice las bases de datos necesarias.
44
@ vasa1 Los módulos Perl instalados bajo CPAN no se rastrean de esa manera. El directorio donde residen los módulos probablemente deba eliminarse. O uno debe eliminarlos manualmente a través de CPAN y es una cr * pshoot si obedecerán una directiva de desinstalación, o incluso un make uninstallcomando. Es un sistema de gestión de paquetes completamente diferente, desafortunadamente. stackoverflow.com/questions/2626449/…
Kevin Bowen
@maggotbrain, gracias! No lo sabia. (El único uso que Perl para pequeñas cosas viene con el sistema operativo.)

Respuestas:

5

Mirando esto un poco más de cerca, no creo que necesite o deba eliminar ningún directorio o archivo en su sistema.

Ejecutar el comando perl -MCPAN -e 'upgrade'desde la línea de comando no instalará módulos adicionales en su sistema.

Será sólo se intentará actualizar los módulos instalados, a través del sistema de gestión de paquetes CPAN, y no a través de Synaptic .

Esto es similar a ejecutar el comando 'r' y luego ejecutar el comando de actualización en el cpan[1]>indicador. Ver aquí .

CPAN y Synaptic son dos sistemas de gestión de paquetes separados y distintos.

Esto no instalará todos los módulos Perl posibles de CPAN. Tampoco modificará el paquete de sistema existente dB. Entonces, definitivamente puedes revertir esto de manera segura.

Sin embargo, esto sigue siendo potencialmente riesgoso si una aplicación o su sistema dependen de una versión particular de un módulo Perl.

Si ha interrumpido el proceso de actualización, es muy probable que haya evitado dañar su sistema.

Opciones de recuperación:

Desde una línea de comandos, inicie cpany ejecute el comando r para ver la lista de módulos instalados y las actualizaciones disponibles. Por ejemplo, aquí está la salida abreviada de mi 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
....

Tome el Eval::Closuremódulo, para este ejemplo. Digamos que dejas que se perl -MCPAN -e 'upgrade'complete el comando y ahora tienes instalada la versión 0.08.

Mirando Synaptic, en este caso, mostrará que la última versión en el repositorio seguirá siendo 0.06 (0.06-1, específicamente, en mi caso).

Puede volver a la versión de su sistema ejecutando el siguiente comando:

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

Si ha instalado algún módulo de Perl manualmente y desea revertirlo a una versión anterior, deberá descargarlo nuevamente (ya sea desde source.cpan.org o en otro lugar) y volver a instalarlo manualmente.

Para resumir: la actualización de los módulos Perl dentro de CPAN no debería afectar el repositorio de su sistema.

La mejor de las suertes. No entres en pánico.

Kevin Bowen
fuente
Excelente y minuciosa respuesta! "No entres en pánico" es la frase clave aquí. Vi muchos resultados y leí sobre el uso de argumentos para especificar el módulo, así que saqué conclusiones demasiado rápido. Yo estaba sorprendido de encontrar que he usado casi ningún espacio en disco duro, pero todavía vi algunos módulos que no reconocí (probablemente debido a las dependencias). ¡Es bueno saber que esto no requiere trabajo para mí!
paulrehkugler
0

Recomendaría hacer: apt-get remove <installed-packages> && apt-get autoremove(para eliminar dependencias) && apt-get purge <installed-packages>(para eliminar los archivos de configuración restantes), entonces puede eliminar las carpetas que no necesita, pero ya debería estar hecho para usted :)

Stefan
fuente
2
El OP hizo esto a través de CPAN. Una purga no va a ayudar ya que estos módulos no están bajo administración de paquetes.
Kevin Bowen