Apple pide perdón por romper Perl en Mac OS X 10.5 Leopard

24/03/2009 por Redacción

signal-trabajando_file.pngApple ha pedido disculpas por la ruptura de Perl con la última actualización de seguridad y ha dicho que va a distribuir una solución e un una futura actualización. En un post en los foros de soporte de Apple, el Programador Senior de Apple Edward Moy pidió perdón por los "problemas no previstos que ha causado la actualización de seguridad 2009-001". El problema se detectó el 18 de febero de este año, cuando Tatsuhiko Miyagawa descubrió en su Bitácora: Un par de amigos míos en IRC me han dicho esto, y ya que estoy usando 10.4.11 no lo he podido verificar, pero la más reciente actualización Mac OS X Security 2009-001 rompe tu Perl si Estás usando Mac OS X 10.5 (Leopard) Y estás usando Perl que viene con Mac OS X y has actualizado varios módulos núcleo con CPAN en el pasado.

En otras palabras, no rompe el tuyo si nunca has usado CPAN con Perl, usas Mac OS X 10.4 Tiger, o has compilado tu Perl tu mismo, o estás usando otro Perl como MacPorts.

Una vez que tu Perl se rompe, obtendrás errores como este:

% perl -MIO

IO object version 1.22 does not match bootstrap parameter 1.23

at /System/Library/Perl/5.8.8/darwin-thread-multi-2level/XSLoader.pm

line 94.

Compilation failed in require.

BEGIN failed--compilation aborted.

Esto es porque el la Actualización de seguridad actualiza IO.bundle con la versión 1.22 pero tu IO.pm ha sido actualizado con al más reciente 1.23 en CPAN shell.

La solución es actualizar IO.pm a 1.23, pero ya que IO.pm está roto, ni siquiera puedes ejecutar CPAN sobre la terminal para arreglarlo. Necesitas ir a CPAN y descargar IO-1.2301.tar.gz, descomprimirlo y ejecutar

perl Makefule.PL; make; sudo make install

Para solucionar el problema. Probablemente necesites hacer lo mismo con Scalar::Util y Storable.

Esta es una razón más por la que no deberías usar Perl cuando viene de vendedores o usar cosas como local::lib para mantener los módulos de sistema limpios.

Solución al problema previa la próxima actualización de Apple

Parece que si usaste CPAN para mejorar tu instalación por defecto de Perl, entonces la actualización Security Update 2009-001 "mata" a Perl, de manera que tus scripts no se ejecutarán. Hay una discusión sobre esto en el los foros de soporte de Apple.

El arreglo mencionado en ese hilo funcionó para un usuario y es lo siguiente, todo hecho en la Terminal:

$ mkdir -p /SourceCache

$ cd /SourceCache

$ curl -O http://cpan.mirror.solnet.ch/authors/id/G/GB/GBARR/IO-1.2301.tar.gz

$ tar xzf IO-1.2301.tar.gz

$ cd IO-1.2301

$ perl Makefile.PL

$ make

$ make install

Haz notar que para algunos de los comandos anteriores, necesitas estar identificado como root, o ejecutarlo usando sudo.

Fuente: Mac OS X Hints

0

Comentarios

No se ha enviado aún ningún comentario. ¡Tú puedes ser el primero en comentarlo!

Escribe un comentario

Regístrate o identifícate para poder comentar