strawberry para instalar gratis descargar active windows perl upgrade perl-module

para - ¿Cómo puedo actualizar Perl en Windows sin perder módulos?



padre perl download (7)

En el trabajo estoy usando Perl 5.8.0 en Windows.

Cuando puse por primera vez Perl, fui a CPAN, descargué todas las fuentes, hice algunos cambios (en el archivo .MAK? Para admitir subprocesos, o cosas por el estilo), e hice nmake / nmake test / nmake install. Luego, poco a poco, descargué módulos individuales de CPAN y realicé el baile nmake.

Por lo tanto, me gustaría actualizar a una versión más reciente, pero la nueva no debe romper ninguna secuencia de comandos existente. En particular, un montón de módulos de "uso" que he instalado deben instalarse en la nueva versión.

¿Cuál es la manera más confiable (y más fácil) de actualizar mi versión actual, asegurándome de que todo lo que he hecho con el baile nmake seguirá estando allí después de la actualización?


Puede instalar una segunda versión de Perl en una ubicación diferente. Tendrá que volver a instalar cualquier módulo no principal en la nueva versión. En general, las diferentes versiones de Perl no son compatibles con binarios, lo que podría ser un problema si tiene alguna biblioteca específica del programa que utilice componentes XS. Los módulos Pure Perl no deberían verse afectados.


Si permanece dentro de la pista 5.8, todos los módulos instalados que contengan extensiones XS (binarias) continuarán funcionando, ya que la compatibilidad binaria está garantizada dentro de la misma serie 5.8. Si se movió a 5.10, entonces debería recompilar cualquier módulo que contenga componentes XS.

Todo lo que necesita hacer es asegurarse de que la compilación nueva enumere los directorios de inclusión anteriores en su matriz @INC (que se usa para buscar módulos).

Por lo que parece, creo que estás en Windows, en cuyo caso las rutas @INC actuales se pueden ver con

perl -le "print for @INC"

Asegúrese de orientar su nueva versión de Perl a otro directorio. Coexistirá felizmente con la versión anterior, y esto le permitirá elegir qué instalación de Perl se utilizará; solo se trata de ordenar su RUTA. Tan pronto como se inicia un intérprete de Perl, sabe dónde buscar el resto de sus módulos.

Strawberry Perl es probablemente la mejor distribución en Windows en estos días para hacer tu propia.


Creo que la respuesta a esto implica la virtualización de algún tipo:

  1. Configure una copia exacta de su máquina en vivo actual. Actualice Perl, utilizando las mismas ubicaciones y estructuras de directorios que está utilizando en este momento.
  2. Revise sus scripts probándolos en la nueva imagen.
  3. Una vez que estés contento, activa el interruptor.

El pensamiento detrás de esto es que probablemente haya todo tipo de sutiles dependencias y suposiciones en las que no has pensado. Si bien es poco probable, la última versión de un módulo en particular (posiblemente incluso un módulo central, aunque es aún más improbable) podría tener una diferencia sutil en comparación con la que estaba usando. A menos que hayas revisado exhaustivamente toda la base de código, es muy posible que haya un módulo en particular que solo se necesita bajo ciertas circunstancias.

Puede intentar detectar esto creando una lista de todas sus secuencias de comandos, una lista que debería tener de todos modos, debido a que todo el código está bajo control de versiones ( está usando control de versiones, por ejemplo, Subversion , ¿sí?) E iterando it, ejecutando perl -c en cada script. por ejemplo, este script . Ese tipo de prueba automatizada es invaluable: puede configurarlo para funcionar, irse a tomar un café o lo que sea, y volver para comprobar si todo funcionó. Las primeras veces probablemente encontrará un módulo oscuro que había olvidado, lo cual está bien: el objetivo de automatizar esto es no tener que hacer el trabajo pesado de verificar cada script.


Cuando lo hice instalé el más nuevo en un directorio separado. Hay un poco de confusión añadida con dos versiones, pero definitivamente ayuda a asegurarse de que todo esté funcionando primero, y proporciona una manera rápida de volver al antiguo en caso de apuro. También configuré Apache para que ejecutara dos servicios por separado, de modo que podía jugar con el nuevo Perl en un solo servicio sin tocar el de producción del viejo Perl.

Probablemente sea mucho más prudente, en retrospectiva, instalarlo en una computadora separada y hacer las pruebas allí. Registre cada cambio de configuración que necesite realizar.

No estoy seguro de cómo construirlo usted mismo: siempre utilicé binarios preempaquetados para Windows.

No estoy seguro de entender exactamente lo que estás preguntando. ¿Tiene una lista de cambios que realizó en el archivo MAKE 5.8? ¿O la pregunta es cómo obtener una lista así? ¿También está preguntando cómo averiguar qué paquetes sobre la instalación base ha obtenido de CPAN? ¿También está preguntando cómo probar que sus cambios personalizados no romperán esos paquetes si los vuelve a obtener de CPAN?


¿Por qué no usa ActivePerl y su herramienta "ppm" para (re) instalar módulos?


Como otros señalaron, comience por instalar el nuevo perl en un lugar separado. Tengo varios perls instalados, cada uno completamente separado de todos los demás.

Para hacerlo, deberá configurar y compilar las fuentes usted mismo. Cuando ejecuta configure , tendrá la oportunidad de especificar el instalador. Di instrucciones detalladas sobre esto en "Compilación de mi propio Perl" en la edición de primavera de 2008 de The Perl Review . También hay un elemento en la programación Perl efectiva que le muestra cómo hacerlo.

Ahora, regrese a su distribución original y ejecute cpan -a para crear un archivo de autobundle. Este es un documento de Pod que enumera todas las cosas adicionales que ha instalado, y CPAN.pm entiende cómo usarlo para reinstalar todo.

Para instalar cosas en el nuevo Perl, use la ruta de Perl para iniciar CPAN.pm e instalar el archivo de autobúsculo que creó. CPAN.pm obtendrá las rutas de instalación correctas desde la configuración de ese perl.

Mira la salida para asegurarte de que las cosas vayan bien. Este proceso no instalará las mismas versiones de los módulos, sino las últimas versiones.

En cuanto a Strawberry Perl , hay una versión "portátil" que puede instalar en algún lugar además de la ubicación predeterminada. De esta forma, podría tener el nuevo perl en medios extraíbles. Puede probarlo en cualquier lugar sin perturbar la instalación local. Aunque no creo que esté listo para un uso general. La herramienta Berrybrew puede ayudarte a administrar eso.

Buena suerte, :)