¿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 (versión más nueva) porque pensé que perl había sido eliminado. Después de instalar ActivePerl, aunque mis programas todavía 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. Usé sudo clan -> instalar Excel :: Writer :: XLSX para instalar el módulo que falta. Sin embargo, no lo instala para 5.12 sino para ActivePerl 5.14.

Aquí se instala el propio Mac OS X Perl:

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 ActivePerl ejecutando su desinstalador. Lo hice y también eliminé 5.12.4 y el directorio site_perl en / opt / local / lib / perl5.

Luego, quería reinstalar el módulo XLSX :: Writer usando cpan. Pensé que luego se instala en el antiguo directorio de Perl. Sin embargo, ejecutar cpan ahora da como resultado 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é que hacer ahora. Creo que lo mejor que puedo hacer es probablemente reinstalar el propio Perl de Mac OS X, ¿cómo hacerlo?

usuario26392
fuente
¿Tienes macports instalado? adivinando desde / opt / local / bin
user151019
sí. Acabo de reinstalar xcode y las herramientas de línea de comandos del desarrollador, pero sigue siendo el mismo ... Podría reinstalar todo mi sistema y restaurar algunas de mis cosas a través de la máquina del tiempo. No me gustaría tener un sistema limpio de todos modos ...
user26392
Debe decidir qué perl usar: Apple, macports o activestate y luego asegurarse de que solo aparezca uno en @INC: díganos cuál podemos ayudar
User151019
bueno, quiero usar manzanas perl pero para poder usarlo también necesito instalar el módulo XLSX.pm para esa versión de perl. Sin embargo, debido a la eliminación de algunas carpetas, ya no puedo iniciar cpan ... ¿qué crees que es mejor hacer?
user26392
¿Qué directorios eliminó?
user151019

Respuestas:

6

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 perl y todo volvió a la normalidad. No estoy seguro de por qué o qué, pero no me importa que esté funcionando ahora.

Matthew Weiss
fuente
Aquí hay una fuente de ese comando
BryanH
0

Por diversas razones, la actualización del sistema operativo requiere una para actualizar / reinstalar MacPorts por separado. Los desarrolladores han creado una página de migración bastante agradable que detalla el proceso necesario para que su entorno de puertos vuelva a funcionar después de actualizar el sistema operativo.

En resumen, los pasos que debe seguir son:

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

De hecho, aceleré mi proceso de reinstalación editando el myports.txtarchivo, de modo que contenía los nombres (y solo los nombres) de los paquetes que quería con un paquete por línea, y ejecuté el siguiente comando

cat myports.txt | xargs -n1 port install

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

Scott Pack
fuente