2011-06-29 12 views
9

¿Es posible ejecutar varias instalaciones de Perl (en "contenedores") en una máquina?¿Cómo ejecutar múltiples instalaciones Perl en una máquina?

La razón es que tengo diferentes aplicaciones web del lado del servidor basadas en Perl y deseo programar actualizaciones de forma independiente. Por ejemplo, las actualizaciones de bugzilla me parecen muy invasivas, descargando actualizaciones de todo tipo o módulos y largas (aumentando así la posibilidad de comportamiento impredecible en otras aplicaciones que dependen de esos módulos, durante el tiempo que la actualización sigue siendo parcial).

Creo que debería ser posible ejecutar múltiples aplicaciones CGI Perl independientes del lado del servidor en un servidor, preferiría que no me dijeran que las separara en diferentes máquinas. Creo que es un desperdicio y no tengo ese recurso. de todas formas.

Respuesta

9
+0

+1 Gracias. Tendré que aceptar que necesitaré pasar algún tiempo investigando esto para ver cómo funciona. Pero antes de eso, probablemente acepte tu respuesta. Dejaré la pregunta abierta un poco más para ver si alguien más quiere contribuir. Espero que O'Reilly pueda actualizar su serie Perl con cómo usar esto, me encantan sus guías instructivas y legibles. – therobyouknow

+1

@Rob actualizado con enlaces para obtener más información. – Raoul

+0

http://www.perlbrew.pl/ - ++ JACKPOT ++ !!! ¡¡¡Gracias!!! Me encanta esta cita "Ya no es necesario ejecutar sudo para instalar los módulos de CPAN". ¡¡¡SÍ!!! No es necesario ser invasivo a nivel mundial instale los módulos afectando todo en todo su sistema. Verificare los otros enlaces. Gracias. Respuesta aceptada – therobyouknow

7

Es fácil de instalar y administrar múltiples perls. Simplemente instálalos en diferentes lugares y usa las herramientas de cada perl. Hablo de esto en The Effective Perler.

Algunas personas sugieren perlbrew sin darse cuenta de que realmente no le da ningún beneficio. Puede descargar un Perl, configurarlo e instalarlo, y cambiar los enlaces simbólicos para que uno de ellos sea el predeterminado. Aunque no hace nada mágico.

Sin embargo, la descarga y la instalación no son un problema. Nunca has necesitado root o sudo para hacer eso, y si lo haces, igual lo necesitarás para perlbrew. Siempre puede instalar en cualquier directorio donde tenga permiso. perlbrew no se da cuenta de eso en absoluto. Desde el directorio de origen, tiene dos comandos simples para ejecutar:

$./Configure -des -Dprefix=/where/you/want/to/install 
$ make install 

Para usted, esto podría significar Bugzilla obtiene su propio Perl:

$./Configure -des -Dprefix=/where/you/want/to/install/bugzilla-perl 
$ make install 

A partir de ahí, usted tiene un Perl completamente autónomo instalación. Cuando me importa lo que Perl que utilizo, Doy el programa de la ruta completa a la misma:

#!/where/you/want/to/install/bugzilla-perl/bin/perl 

Es mucho más fácil hacer estas instalaciones por las aplicaciones sin perlbrew, que quiere hacer todo lo que pueda para usted, incluyendo la decisión del nombre del directorio, que prefiere que usted no sepa en absoluto.

La principal ventaja de perlbrew no es la compilación y la instalación, sino que es la característica switch que le permite hacer uno por defecto. Sin embargo, probablemente no desee esa función porque quiere Bugzilla, programas CGI, etc., usando solo el perl que quiere que usen, no el valor predeterminado que haya especificado por última vez.

Cuando se desea actualizar el Bugzilla-perl, sólo tiene que utilizar es herramientas, que ya se han ajustado las líneas shebang para encontrar el Perl derecha:

$ /where/you/want/to/install/bugzilla-perl/bin/cpan ... 

No me gustan todas esas rutas largas, aunque , por eso hago links to them all. Entonces sólo se les puede llamar con cualquier esquema de nombres decido, lo que podría ser:

$ bugzilla-cpan ... 

Nunca hay una pregunta acerca de qué herramienta o la versión que estoy usando.

+0

+1 gracias brian d foy. Veo lo que dices, lo pensaré y volveré. ¿Está su libro disponible en formato pdf? – therobyouknow

Cuestiones relacionadas