manager - perl modules
Desinstalar todos los módulos perl instalados por cpan. (6)
Ayer quise probar algún software y en la documentación que decía, para instalarlo solo necesitaba escribir
cpan -i Software
Nunca usé cpan, solo sé que es el gestor de paquetes perl. (¿Es ...?) Sin embargo, resultó que necesitaba muchas dependencias y, por estúpido que sea, acabo de instalarlas todas. (Primero, tuve que configurar cpan que me hizo muchas preguntas) En pocas palabras, solo quiero eliminar todo de nuevo. Busqué en Google un poco, y parece que cpan no tiene una rutina de desinstalación, especialmente para todos los paquetes a la vez. ¿Puedo simplemente eliminar algún directorio o tendré problemas?
Cambiaré la respuesta de Flimm para usar cpanm y, opcionalmente, desinstalaré cpanm al final del script:
#!/usr/bin/env bash
for module in $(perldoc -u perllocal | grep -F ''C<Module> L<'' | sed ''s/^.*L</(.*/)|.*>$//1/'' | sort | uniq) ; do
if [[ "$module" =~ "App::cpanminus" ]]; then
continue
fi
echo "Uninstalling $module..."
yes | cpanm --uninstall "$module"
done
cpanm --uninstall App::cpanminus
Creo que la mejor opción es desinstalar Perl e instalarlo de nuevo.
No estoy seguro de eliminar "todo". Pero para eliminar un solo módulo, puede usar App::pmuninstall
con su único script pm-uninstall
para desinstalar módulos. Es posible que luego pueda escribir algún tipo de script para eliminar recursivamente los deps.
Puede desinstalar módulos individuales con cpanplus (se envía con Perl) de la siguiente manera:
cpanp uninstall SQL::Abstract
Puede ver todos los módulos instalados con el script cpan de esta manera:
perldoc perllocal
Poniendo los dos juntos:
for module in $(perldoc -u perllocal | grep -F ''C<Module> L<'' | sed ''s/^.*L</(.*/)|.*>$//1/'') ; do
cpanp uninstall "$module"
done
Si ya no puede usar cpan porque hay módulos incompatibles en su ruta, puede eliminar todos los módulos instalados a mano. Por ejemplo, actualicé de Fedora 22 a Fedora 23 y la versión de Perl cambió. Todos los módulos instalados previamente a través de cpanm en /usr/local/lib64/perl5
ya no funcionaban y me impidieron usar cpanm.
$ cpanm --uninstall Apache::DBI
Attempt to reload Scalar/Util.pm aborted.
Compilation failed in require at /usr/share/perl5/vendor_perl/File/Temp.pm line 18.
...
Podría resolver esto moviendo ese directorio:
$ mv /usr/local/lib64/perl5 /root/usr-local-lib64-perl5
El nombre de ese directorio puede variar en su sistema.
Cuidado: si un módulo instaló archivos fuera de ese directorio, por ejemplo, los archivos de la biblioteca del sistema, estos archivos permanecerán allí.
cpan
comando cpan
no es realmente un gestor de paquetes como apt-get
. Es más una herramienta que se descarga e instala desde CPAN (el sitio o uno de sus servidores espejo). Una vez que ha finalizado esta tarea, no recuerda mucho sobre lo que se hizo anteriormente, al menos no lo suficiente como para eliminar los módulos previamente instalados, al menos no de forma fiable, limpia o segura. ( Actualización: Después de ver App::pmuninstall
, puede usarse para manejar dependencias, pero lo hace conectándose a fuentes externas (leer: web), que las computan por separado, lo cual está bien, pero me atengo a la declaración anterior que CPAN.pm no hace esto)
Solía preocuparme por eliminar módulos, pero ahora me doy cuenta de que la mayoría de los módulos Perl ocupan tan poco espacio que simplemente no me preocupa tener algunos módulos adicionales instalados que nunca usarás. Entonces, a menos que esté en una computadora con un disco REALMENTE pequeño, simplemente lo dejaría.
En Windows o si está utilizando un Perl que no es del sistema en Linux / Mac, simplemente puede eliminar Perl y reinstalarlo. No recomendaría esto si está utilizando el sistema instalado Perl en Linux / Mac, sin embargo, ya que podría interrumpir su sistema operativo haciendo esto (podría estar bien si fue cuidadoso, ¡pero no vale la pena ahorrar unos pocos Mb!).
En el futuro, puede instalar fácilmente una versión local de Perl usando perlbrew , hay tutoriales en toda la web si los documentos no son suficientes (deberían serlo). Esto también tiene la ventaja de permitirle jugar con las versiones más nuevas y mejores de Perl, que probablemente su sistema aún no incluya. Luego, si instala una montaña de basura, o incluso la rompe haciendo una locura, elimine esa versión y reinstale / instale una versión diferente.
Otra buena herramienta es cpanminus (o cpanm para abreviar), que es una herramienta de cpan más nueva y fácil de usar. Todos los niños geniales lo están usando.