¿Cómo reinstalar Mac OS X integrado en Perl en Mountain Lion?

8

Actualicé a Mountain Lion hace 4 días y luego me di cuenta de que mis scripts de Perl ya no funcionaban. Así que instalé ActivePerl 5.14 (la versión más reciente) porque pensé que se había eliminado Perl. Después de instalar ActivePerl aunque mis programas aún no funcionaban:

Warning message:
running command 'perl calc.pl' had status 2 
Can't locate Excel/Writer/XLSX.pm in @INC (@INC contains:    
/Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 
/Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 
/Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level 
/System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-
2level /System/Library/Perl/Extras/5.12 .) at test.pl line 3.
BEGIN failed--compilation aborted at calc.pl line 3.

En el terminal cuando escribo perl -v, muestra que usa el ActivePerl recién instalado. Utilicé sudo clan - > instale Excel :: Writer :: XLSX para instalar el módulo faltante. Sin embargo, no lo instala para 5.12 sino para ActivePerl 5.14.

El propio Mac OS X Perl se instalará aquí:

bash-3.2$ ls /Library/Perl/
5.10    5.12    Updates
bash-3.2$ ls /System/Library/Perl/
5.10    5.12    Extras  lib
bash-3.2$

También hay una versión aquí:

bash-3.2$ ls /opt/local/lib/perl5/
5.12.4      site_perl   vendor_perl

Pensé que lo mejor es eliminar el ActivePerl ejecutando su desinstalador. Hice eso y también eliminé el 5.12.4, así como el directorio site_perl en / opt / local / lib / perl5.

Luego quise reinstalar el módulo XLSX :: Writer usando cpan. Pensé que luego se instala en el antiguo directorio de Perl. Sin embargo, ejecutar cpan ahora genera el siguiente error:

bash-3.2$ sudo cpan
Can't locate strict.pm in @INC (@INC contains:    
/opt/local/lib/perl5/site_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/site_perl/5.12.4 
/opt/local/lib/perl5/vendor_perl/5.12.4/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.4 /opt/local/lib/perl5/5.12.4/darwin-multi-
2level /opt/local/lib/perl5/5.12.4 /opt/local/lib/perl5/site_perl 
/opt/local/lib/perl5/vendor_perl/5.12.3/darwin-multi-2level 
/opt/local/lib/perl5/vendor_perl/5.12.3 /opt/local/lib/perl5/vendor_perl .) at 
/opt/local/bin/cpan line 5.
BEGIN failed--compilation aborted at /opt/local/bin/cpan line 5.

No sé qué hacer ahora. Creo que lo mejor que puedo hacer es probablemente reinstalar el Perl de Mac OS X, ¿cómo hacerlo?

    
pregunta user26392 31.07.2012 - 12:11

2 respuestas

5

Encontré en otro sitio web el siguiente comando

$ sudo perl -MCPAN -e 'CPAN :: Shell- > notest (install = > CPAN :: Shell- > r)'

Esto actualizó todos mis módulos de Perl y todo volvió a la normalidad. No estoy seguro de por qué o qué, pero no importa que esté funcionando ahora.

    
respondido por el Matthew Weiss 01.08.2012 - 17:19
0

Por diversos y diversos motivos, la actualización del sistema operativo requiere una para actualizar / reinstalar MacPorts por separado. Los desarrolladores han creado una muy bonita página Migration que detalla el proceso necesario para que el entorno de los puertos vuelva a funcionar después de actualizar el sistema operativo. .

Resumido, los pasos que debe seguir son:

  1. Descargue e instale el nuevo Xcode.
  2. Asegúrese de que las herramientas de línea de comandos (gcc, make, etc.) estén instaladas. Desde dentro de la aplicación Xcode, vaya a Preferencias- > Descargas e instálelas.
  3. Descargue el instalador de MacPorts de su elección para la versión de su sistema operativo.
  4. instálalo.
  5. Abra su terminal de elección.
  6. Ejecuta el comando port -qv installed > myports.txt . Esto toma una copia de todos los puertos instalados.
  7. Desinstalar todos los puertos: sudo port -f uninstall installed
  8. Ordena tu área de juego: sudo port clean all
  9. Ir a través del archivo myports.txt y reinstalar los paquetes que realmente desea.

Realmente aceleré mi proceso de reinstalación al editar el archivo myports.txt , de modo que contenía los nombres (y solo los nombres) de los paquetes que quería con un paquete por línea, y ejecutando el siguiente comando

cat myports.txt | xargs -n1 port install

Lo que esto hace es pasar por ese archivo y ejecutar el comando port install line para cada línea en el archivo. Es un uso inútil del gato, pero a quién le importa, es más fácil de leer.

    
respondido por el Scott Pack 31.07.2012 - 15:48

Lea otras preguntas en las etiquetas