Perl virtual environments?

4

Histórico (não leitura obrigatória)

Comecei meu trabalho atual como estagiário de desenvolvimento web. O cara que estava me ensinando deixou a meio e eu basicamente fui deixado para trás no riacho com apenas um paddle do Google, já que quase não há documentação sobre como executar qualquer um dos servidores. Em vez de desenvolver, agora principalmente mantenho o software nos servidores, incluindo a Intranet da empresa.

Situação

Estou acostumado a trabalhar com Python, mas atualmente temos uma Intranet de Desenvolvimento que está desativada e parece ser executada ou pelo menos iniciada por scripts Perl. O servidor está executando o Solaris 10.

Estou tentando executar um arquivo .pl, mas o sistema reclama que não é possível encontrar LWP/Simple.pm

LWP/Simple.pm está lá, mas está sob uma versão Perl diferente.

perl / lib / site_perl / 5.6.1 / LWP / Simple.pm

Mas a versão atual é:

@INC :

/usr/perl5/5.8.4/lib/sun4-solaris-64int
/usr/perl5/5.8.4/lib
/usr/perl5/site_perl/5.8.4/sun4-solaris-64int
/usr/perl5/site_perl/5.8.4
/usr/perl5/site_perl
/usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int
/usr/perl5/vendor_perl/5.8.4
/usr/perl5/vendor_perl

bash-3.00 # perl -V

Resumo do meu perl5 (revisão 5 versão 8 subversão 4)

Estou muito relutante em instalar algo novo, já que isso DEVE ter sido iniciado antes, então tudo deve estar no lugar. Eu só preciso entender como tudo isso funciona. É @INC como LD_LIBRARY_PATH ?

Como você mudaria a versão atual? Existe algo para o Perl que é como virtualenv ?

Eu tive a chance de declarar a versão Perl, mas isso dá a mesma mensagem de erro:

perl/bin/perl5.6.1 bin/emwd.pl

O erro real é:

Can't locate LWP/Simple.pm in @INC (@INC contains: /ade_autofs/ade/perl/bin/Solaris/Opt/lib/5.6.1/sun4-solaris /ade_autofs/ade/perl/bin/Solaris/Opt/lib/5.6.1 /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl/5.6.1/sun4-solaris /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl/5.6.1 /ade_autofs/ade/perl/bin/Solaris/Opt/lib/site_perl .) at bin/emwd.pl line 173. BEGIN failed--compilation aborted at bin/emwd.pl line 173.

Parece certo, mas não tenho certeza se devo alterar @INC

    
por JackalopeZero 27.07.2012 / 16:02

2 respostas

2

Duas prováveis coisas aqui:

1) há um perl em um caminho diferente? Talvez seja executado a mão de lá.

2) o seu LD_LIBRARY_PATH equivalente é PERL5LIB . Verifique ao redor e veja se há algo definindo isso.

depois que você descobrir isso, é hora de começar a fazer um melhor remo :) Há muitas opções, incluindo construir uma árvore de bibliotecas completa em um caminho e usar PERL5ENV , ou até mesmo construir seu próprio perl autônomo + bibliotecas e invocando isso em todos os seus scripts.

Ah sim - Solaris! Eu suspeito que ele esteja rodando not-your-system-perl. Verifique por /opt/csw/bin/perl ou similar. Fazemos isso em nosso único host Solaris - chamamos o csw perl de coisas que queremos executar e deixamos o sistema perl sozinho.

    
por 27.07.2012 / 16:42
0

How would you switch the current version? Is there something for Perl which is like virtualenv?

Sim, Perlbrew é um virtualenv equivalente para Perl.

    
por 12.08.2016 / 14:35