Problema de dependência de Perl

1

Eu instalei o CentOS 6.3 (i386) recentemente.

Tem dois binarios perl

/usr/bin/perl (v5.10.1)
/usr/local/appx/perl/bin/perl (v5.8.8)

A minha pergunta: é possível instalar alguma outra funcionalidade a essa aplicação usando perl & módulo do perl daquele appx?

Como abaixo:

./configue -prefix=/usrl/local/app_xyz -perl_lib_path=/usr/local/appx/perl/lib/5.8.8/

Eu tentei o acima, recebi o seguinte erro:

RRD Perl Module -----------------**Not Found**

Mas esse módulo perl RRDs.pm está disponível no diretório /usr/local/appx/lib/5.8.8 .

Além disso, o script configure não tem ARG para mapear nosso caminho binário appx perl ( /usr/local/appx/perl/bin/perl ), ele seleciona automaticamente o perl do sistema como padrão.

    
por HamTheAstroChimp 29.04.2013 / 13:32

1 resposta

1

Perl 5 versões secundárias são retrocompatíveis, então um módulo 5.8.8 deve funcionar com um 5.10.1 perl (mas há uma exceção, veja CAVEAT abaixo). O caminho de inclusão ( @INC ) é configurado quando o perl é construído, mas @INC pode ser modificado por programas individuais e, globalmente, o conteúdo da variável de ambiente $ PERL5LIB é prefixado.

export PERL5LIB=/usr/local/appx/lib/5.8.8

No entanto, há um problema com essa abordagem. Como $ PERL5LIB é prefixado para @INC , isso fará com que o diretório 5.8.8 tenha precedência quando carregando vários módulos padrão. Isso não é desejável.

Portanto, uma idéia menos organizada, mas, em última instância, melhor é apenas ligar simbolicamente /usr/local/appx/lib/5.8.8/RRD.pm (e / ou o diretório RRD, se houver) em /usr/local/lib/perl5 ou algum outro diretório padrão @INC . Você pode ver aqueles com:

perl -e 'print "$_\n" foreach @INC'

Observe que pode haver um diretório RRD.pm de nível superior e um diretório RRD paralelo; se assim você quiser symlink ambos.

CAVEAT

Alguns módulos perl incluem partes que são compiladas de C, e estas podem quebrar. Se RRD.pm não usa C, então você não precisa se preocupar. Em caso afirmativo, você deve copiá-lo em vez de ligá-lo e reconstruí-lo; para isso você precisa da fonte, que pode ou não estar lá: (

    
por 29.04.2013 / 14:30