EMBARGO

EMBARGO

Instalei o CentOS 6.3 (i386) recentemente.

Tem dois binários perl

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

Minha pergunta: É possível instalar alguma outra funcionalidade para esse aplicativo usando o módulo Perl e Perl em todo o sistema desse 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.pmestá disponível no /usr/local/appx/lib/5.8.8diretório.

Além disso, o configurescript não precisa ARG mapear nosso caminho binário appx perl ( /usr/local/appx/perl/bin/perl), ele escolhe automaticamente o perl de todo o sistema como padrão.

Responder1

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

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

No entanto, há um problema com esta abordagem. Porque $PERL5LIB éanexadopara @INC, isso fará com que o diretório 5.8.8 tenha precedência ao carregar vários módulos padrão. Isso não é desejável.

Portanto, uma ideia menos organizada, mas melhor, é apenas criar um link simbólico /usr/local/appx/lib/5.8.8/RRD.pm(e/ou o diretório RRD, se houver) para /usr/local/lib/perl5algum outro @INCdiretório padrão. 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 for, você deseja criar um link simbólico para ambos.

EMBARGO

Alguns módulos Perl incluem partes que são compiladas a partir de C e podem quebrar. Se RRD.pm não usar C, você não precisa se preocupar. Se isso acontecer, você deve copiá-lo em vez de criar um link simbólico e reconstruí-lo; para isso você precisa da fonte, que pode ou não estar lá :(

informação relacionada