¿Cómo puedo controlar la versión de Perl utilizada al enviar trabajos de cuadrícula?
Estoy trabajando con SGE (Sun Grid Engine) para enviar trabajos a una cuadrícula. Yo tambien usoperlbrew
para administrar mis versiones instaladas de Perl. Escribí algunos cortossh
scripts que uso para ejecutar un script perl que requiere una versión específica de Perl (5.12.2), que se parece a esto:
#!/bin/bash
#$-S /bin/bash
source /home/dave/.bash_profile
/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2
/home/dave/scripts/proc_12.pl --in=/home/dave/in/in.store --dir=/home/dave/in/dir2 --params=/home/dave/in/params.p
Ahora, cuando envío un solo trabajo, todo funciona bien, pero cuando envío muchos, empiezo a recibirperlbrew
mensajes de error relacionados, como:
ln: creating symbolic link `current' to `perl-5.12.2': File exists
ln: creating symbolic link `/home/dave/perl5/perlbrew/bin/cpan' to `/home/dave/perl5/perlbrew/perls/current/bin/cpan': File exists
ln: creating symbolic link `/home/dave/perl5/perlbrew/bin/cpan2dist' to `/home/dave/perl5/perlbrew/perls/current/bin/cpan2dist': File exists
ln: cannot remove `/home/dave/perl5/perlbrew/bin/cpanp': No such file or directory
ln: cannot remove `/home/dave/perl5/perlbrew/bin/enc2xs': No such file or directory
ln: cannot remove `/home/dave/perl5/perlbrew/bin/find2perl': No such file or directory
Entonces supongo que/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2
La línea está causando los problemas.
¿Que puedo hacer?
¿Cómo puedo hacer que mi script se ejecute usando perl-5.12.2 (el valor predeterminado es 5.8.8)?