Como posso controlar a versão Perl usada ao enviar trabalhos de grade?
Estou trabalhando com o SGE (Sun Grid Engine) para enviar trabalhos para uma grade. Eu também usoperlbrew
para gerenciar minhas versões Perl instaladas. Eu escrevi um pequenosh
scripts que eu uso para executar um script perl que requer uma versão específica do Perl (5.12.2), que se parece com isso:
#!/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
Agora, quando envio um único trabalho, tudo funciona bem, mas quando envio muitos, começo a receberperlbrew
mensagens de erro relacionadas, 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
Então eu acho que o/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2
linha está causando os problemas.
O que eu posso fazer?
Como posso executar meu script usando o perl-5.12.2 (o padrão é 5.8.8)?