Wie kann ich die Perl-Version steuern, die beim Senden von Grid-Jobs verwendet wird?
Ich arbeite mit SGE (Sun Grid Engine) zusammen, um Jobs an ein Grid zu senden. Ich benutze auchperlbrew
, um meine installierten Perl-Versionen zu verwalten. Ich schrieb ein kurzessh
-Skripte, mit denen ich ein Perl-Skript ausführe, für das eine bestimmte Perl-Version (5.12.2) erforderlich ist, die ungefähr so aussieht:
#!/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
Nun, wenn ich einen einzelnen Job abschicke, funktioniert alles gut, aber wenn ich viele abschicke, bekomme ichperlbrew
bezogene Fehlermeldungen, wie:
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
So denke ich das/home/dave/perl5/perlbrew/bin/perlbrew switch perl-5.12.2
line verursacht die Probleme.
Was kann ich tun
Wie kann ich mein Skript mit Perl-5.12.2 ausführen lassen (der Standard ist 5.8.8)?