Estoy ejecutando CentOS 5.4, que solo tiene la versión 5.8 de Perl disponible de forma predeterminada, y tengo un programa que requiere Perl 5.10, así que compilé Perl 5.10 en CentOS. ¿Cómo especifico con qué perl quiero ejecutar el programa porque el comando perl usa 5.8 de forma predeterminada?Cómo especificar qué versión de Perl usar en CentOS
Respuesta
La primera línea del archivo de programa debe hacer referencia al binario perl que desea utilizar: p.
#!/usr/bin/perl
También es posible que desee cambiar la variable PATH para que el directorio de su Perl 5.10 binario en el se aparece antes del directorio de binarios 5.8. p.
export PATH=/path/to/perl/5.10:$PATH
configure la variable de entorno PATH para que apunte a su nuevo ejecutable perl. Por ejemplo
export PATH=/newpath/perl:$PATH
me gusta hacer enlaces simbólicos a mis diferentes ejecutables de Perl en /usr/local/bin
:
$ [sudo] ln -s /path/to/perl5.10.1.exe /usr/local/bin/perl510
$ [sudo] ln -s /path/to/perl5.13.8.exe /usr/local/bin/perl513
$ ... etc. ...
$ # and just for completeness
$ ln -s /usr/bin/perl /usr/local/bin/perl58
y luego simplemente invocar:
$ perl510 script_to_use_with_v5.10.pl
hay una herramienta llamada alternativas que era diseñado para tratar con eficacia exactamente este tipo de problema. Básicamente, le ofrece una forma fácil de cambiar entre diferentes versiones de aplicaciones mediante la manipulación de enlaces simbólicos, como p. Ej. tus directorios bin
Di "alternativas hombre" en un terminal (o alternativas de instalación yum, si no lo tienes instalado).
Agrego mi voz para recomendar no meterme con el perl del sistema.
Nadie mencionó App::perlbrew todavía. Le permite tener varias versiones de Perl y cambiar entre ellas fácilmente. Esto puede hacerse manualmente, por supuesto, pero es mucho más fácil tener esta herramienta para hacerlo por usted; Del Pod-
# Install some Perls
perlbrew install perl-5.12.2
perlbrew install perl-5.8.1
perlbrew install perl-5.13.6
# See what were installed
perlbrew list
# Switch perl in the $PATH
perlbrew switch perl-5.12.2
perl -v
# Switch to another version
perlbrew switch perl-5.8.1
perl -v
# Switch to a certain perl executable not managed by perlbrew.
perlbrew switch /usr/bin/perl
# Or turn it off completely. Useful when you messed up too deep.
perlbrew off
# Use 'switch' command to turn it back on.
perlbrew switch perl-5.12.2
Usar perlbrew para enganchar en 5.10 no funcionará bien con Apache, especialmente si está usando mod_perl.Puede ejecutar una secuencia de comandos lanzada por Apache a través de perlbrew, pero no es muy eficiente. El método más eficiente será a través de mod_perl hooks, pero luego perlbrew no va a ayudar. Hacer una instalación paralela de 5.10 será mejor y actualizar Apache/mod_perl para usar la instalación 5.10 v. El sistema 5.8. –
Por cierto, el paquete perlbrew está disponible para su instalación desde el repositorio para CentOS 5.x EPEL Traté de instalar solo este rpm inicialmente pero tiene varias dependencias, así que opté por agregar el repositorio EPEL a mi lista de repositorios yum en mi caja.
solución tiene dos partes ... primera edición myscript.pl cual quiere versión específica
old
#!/usr/bin/perl
new
#!/usr/bin/env perl
anteriormente tiene ningún impacto sobre las ejecuciones normales de la secuencia de comandos ... cuando se desea por encima de myscript.pl utilizar una perl versión específica crear un guión envoltorio que contiene
export PATH=/cool/new/version/perl:$PATH
# now execute script on following line
/path/to/myscript.pl
de esta manera otras invocaciones de la secuencia de comandos permanecen sin cambios y sólo tiene que utilizar por defecto, mientras que perl script de envoltorio lanzador ejecuta mismo guión myscript.pl con la versión de perl elegido
- 1. Instalar Perl-JSON en CentOS
- 2. ¿Qué versión de Perl debería usar en Windows?
- 3. Cadena de versión Perl: ¿por qué usar EVAL EXPR?
- 4. Cómo especificar la versión .NET al usar la opción/CLR
- 5. ¿Cómo especificar en la secuencia de comandos que solo se use una versión específica de perl?
- 6. ¿Cómo puedo saber qué versión de Java está usando Tomcat6?
- 7. ¿Qué versión de hadoop usar?
- 8. Django en CentOS
- 9. ¿Cómo especificar la versión de la biblioteca para usar en tiempo de enlace?
- 10. Cómo especificar qué analizador de stax para usar
- 11. ¿Qué usar como versión inicial?
- 12. Cómo especificar rangos de versión en install_requires (setuptools, distribuir)
- 13. ¿Cómo especificar una versión de dependencia específica en nuspec?
- 14. ¿Cómo especificar una versión única de SNAPSHOT en Gradle?
- 15. ¿Qué versión de openssl debería usar?
- 16. Compilar para CentOS en Ubuntu
- 17. ¿Cómo se especifica una versión del paquete en Perl?
- 18. ¿Cómo usar tenedor() en Perl?
- 19. ¿Qué esquema de numeración de versión usar?
- 20. Cómo instalar software en CentOS
- 21. ¿Qué estructura web de Perl debería usar?
- 22. ¿Cómo puedo forzar a PHP a usar la versión libiconv de iconv en lugar de la versión glibc instalada en CentOS?
- 23. Maven versión plugin: especificar el compilador Java versión
- 24. Cómo usar $ ay $ b en Perl subrutina
- 25. Problemas para instalar Git en CentOS
- 26. ¿Qué debo usar en lugar de printf en Perl?
- 27. Perl: ¿Qué características exactas admite 'usar 5.014'?
- 28. ¿Qué significa "~~" en Perl?
- 29. ¿Cómo puedo averiguar qué versión de Perl estaba disponible en versiones anteriores de Mac OS X?
- 30. ¿Cómo instalar php-mongo en CentOS 5.3?
Tenga cuidado de no vencer a su proveedor/Perl distribuido por distro con una versión más nueva. A veces, las herramientas del sistema se escriben para la versión con la que vinieron y puede causar problemas de dependencia. – Nathan