2010-10-08 25 views
5

Estoy usando perlbrew en este momento para administrar múltiples versiones de perl, pero perlbrew es global. Si hago perlbrew switch perl-5.10.1 en cualquier shell, todas las shells y scripts ahora usarán la versión 5.10.1 de perl. No hay aislamiento ¿Hay alguna forma de hacer que los switches perlbrew sean locales a un shell, o hay una herramienta similar capaz de cambiar localmente el Perl activo?¿Existe un equivalente no global de perlbrew?

+0

Ver también [¿Cómo debo instalar más de una versión de Perl?] (Http://stackoverflow.com/questions/1289564/how-should-i-install-more-han-one-version-of-perl) y [http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397](¿Cómo gestionas los módulos Perl cuando usas ¿un administrador de paquetes?) – Ether

+0

Consulte esta pregunta/respuesta SO relacionada: http://stackoverflow.com/questions/3776390/how-can-i-control-the-perl-version-used-when-submitting-grid-jobs/ 3776538 # 3776538 – draegtun

Respuesta

4

En las versiones más recientes de Perlbrew, puede hacer perlbrew use perl-5.12.3 o lo que sea y usará esa versión de Perl, pero solo en la sesión de shell actual. Otras sesiones no se verán afectadas.

+0

Tendré que probar esto. Parece exactamente lo que quiero. –

5

Simplemente no utilice perlbrew. Todo lo que hace es cambiar los enlaces simbólicos por ti. Se supone que debe ahorrarte trabajo, pero cuando no lo es, ya no hay una razón para usarlo.

Hablo de cómo lo hago en Make links to per-version tools en The Effective Perler. Siempre sé qué perl utilizo porque nunca tengo que recordar cuál cambié para que dure, y no molesto a nadie más esperando una versión particular detrás de un enlace simbólico. Todavía puede usar perlbrew para instalar perls, pero tampoco le ahorrará mucho trabajo allí.

+0

[También discutido aquí] (http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397) en más detalle. – Ether

+1

Sé que siempre puedo instalar Perl 5.10.1 como 'perl5.10.1' en mi ruta y luego especificar versiones explícitamente, pero supongo que el comportamiento que estoy buscando es que' perl' ejecute una determinada versión predeterminada de perl . Entonces, si ejecuto 'perlbrew switch' en un shell, entonces' perl' en ese shell se refiere a la nueva versión, pero todos los demás shells y programas continúan ejecutando el perl predeterminado. Y lo mismo para el resto del entorno perl: módulos, ejecutables, páginas de manual/perldocs. Supongo que tendré que aprender a usar el paquete Furlani Modules al que se vincula tu artículo para obtener lo que quiero. –

+1

Sugiero simplemente redefinir lo que quieres. Es menos trabajo. :) –

Cuestiones relacionadas