8 votos

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

Actualicé a Mountain Lion hace 4 días y entonces me di cuenta de que mis perl scripts ya no funcionaban. Así que instalé ActivePerl 5.14 (la versión más reciente) porque pensé que perl había sido eliminado. Sin embargo, después de instalar ActivePerl mis programas seguían sin funcionar:

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 utiliza el ActivePerl recién instalado. He utilizado sudo clan -> install Excel::Writer::XLSX para instalar el módulo que faltaba. Sin embargo, no lo instala para 5.12 sino para ActivePerl 5.14.

El propio Perl de Mac OS X parece estar instalado 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

He pensado que lo mejor es borrar el ActivePerl ejecutando su desinstalador. Lo hice y también eliminé la versión 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 entonces se instalaría en el antiguo directorio de perl. Sin embargo ejecutar cpan ahora resulta en 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 propio Perl de Mac OS X, ¿cómo hacerlo?

6voto

Lieven Cardoen Puntos 5233

He encontrado 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 ha vuelto a la normalidad. No estoy seguro de por qué o qué, pero no me importa que está trabajando ahora.

0voto

mlzboy Puntos 156

Por diversas razones, para actualizar el sistema operativo es necesario actualizar o reinstalar MacPorts por separado. Los desarrolladores han creado un Migración que detalla el proceso necesario para que tu entorno de puertos vuelva a funcionar después de actualizar el sistema operativo.

Resumidos, los pasos que debes seguir son:

  1. Descarga e instala el nuevo Xcode.
  2. Asegúrate de que las herramientas de línea de comandos (gcc, make, etc.) están instaladas. Desde la aplicación Xcode ve a Preferencias->Descargas e instálalas.
  3. Descargar el Instalador de MacPorts de su elección para la versión de su sistema operativo.
  4. Instálalo.
  5. Abra el terminal de su elección.
  6. Ejecute el comando port -qv installed > myports.txt . Esto agarra una copia de todos los puertos instalados.
  7. Desinstala todos los puertos: sudo port -f uninstall installed
  8. Ordena tu zona de juegos: sudo port clean all
  9. Revisar el archivo myports.txt y reinstala los paquetes que realmente quieras.

En realidad aceleré mi proceso de reinstalación editando el archivo myports.txt de forma que contuviera los nombres (y sólo 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 ir a través de ese archivo y ejecutar el comando port install line para cada línea del fichero. Es un uso inútil de cat, pero qué más da, es más fácil de leer.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X