[Cascavel-pm] instalação de módulos locais

Luis Motta Campos luismottacampos em yahoo.co.uk
Quarta Outubro 1 22:48:34 PDT 2008


Elvio Barbalho wrote:
> Senhores boa tarde estou com dificuldades de instalar um módulo localmente.

Como você está instalando o módulo localmente? O teu log é grande, 
confuso e não mostra as variáveis de ambiente que você tinha setadas na 
hora da instalação.

> Abaixo foi como instalei o módulo aparentemente ele foi instalado ok.

Eu odeio "aparentemente". Você não rodou os testes do módulo -- 
indispensável quando faz instalação manual de pacotes.

> tr053040@ /home/tr053040/elvio/PERL_LIB/Class-Date-1.1.9 :>perl Makefile.PL
> PREFIX=/home/tr053040/elvio/PERL_LIB
> Checking if your kit is complete...
> Looks good
> Writing Makefile for Class::Date
> 
> 
> tr053040@ /home/tr053040/elvio/PERL_LIB/Class-Date-1.1.9 :>make install
> cp Date.pod blib/lib/Class/Date.pod
> cp Date.pm blib/lib/Class/Date.pm
> cp Date/Const.pm blib/lib/Class/Date/Const.pm
> /usr/bin/perl /usr/local/perl_ora/lib/5.10.0/ExtUtils/xsubpp  -typemap
> /usr/local/perl_ora/lib/5.10.0/ExtUtils/typemap  Date.xs > Date.xsc && mv
> Date.xsc Date.c
> Please specify prototyping behavior for Date.xs (see perlxs manual)
> gcc -c   -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
> -D_FILE_OFFSET_BITS=64 -O   -DVERSION=\"1.1.9\" -DXS_VERSION=\"1.1.9\" -fPIC
> "-I/usr/local/perl_ora/lib/5.10.0/sun4-solaris/CORE"   Date.c
> Running Mkbootstrap for Class::Date ()
> chmod 644 Date.bs
> rm -f blib/arch/auto/Class/Date/Date.so
> gcc  -G -L/usr/local/lib Date.o  -o blib/arch/auto/Class/Date/Date.so   \
>                 \
> 
> chmod 755 blib/arch/auto/Class/Date/Date.so
> cp Date.bs blib/arch/auto/Class/Date/Date.bs
> chmod 644 blib/arch/auto/Class/Date/Date.bs
> Manifying blib/man3/Class::Date.3
> Files found in blib/arch: installing files in blib/lib into architecture
> dependent library tree
> Installing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/auto/Class/Date/Date.so
> Installing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/auto/Class/Date/Date.bs
> Installing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/Class/Date.pod
> Installing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/Class/Date.pm
> Installing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/Class/Date/Const.pm
> Installing /home/tr053040/elvio/PERL_LIB/man/man3/Class::Date.3
> Writing
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/auto/Class/Date/.packlist
> Appending installation info to
> /home/tr053040/elvio/PERL_LIB/lib/5.10.0/sun4-solaris/perllocal.pod

Lugarzinho confuso, este em que você resolveu instalar os teus módulos. 
Você tem certeza de que quer eles aí? Eu recomendo colocar os módulos em 
algum lugar que você consiga se lembrar depois, como

/home/tr053040/elvio/Perl/

Assumo que você leu o help do Makefile.PL e sabe fazer isso sozinho. 
"perldoc ExtUtils::MakeMaker" pode ajudar.

> Entretanto quando vou tentar usar o módulo a seguinte mensagem e retornada
> 
> tr053040@ /home/tr053040 :>perl -e "use Class::Date"
> Can't locate Class/Date.pm in @INC (@INC contains:
> /home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/Class/Date/Const.pm
> /usr/local/perl_ora/lib/5.10.0/sun4-solaris /usr/local/perl_ora/lib/5.10.0
> /usr/local/perl_ora/lib/site_perl/5.10.0/sun4-solaris
> /usr/local/perl_ora/lib/site_perl/5.10.0 .) at -e line 1.
> BEGIN failed--compilation aborted at -e line 1.
> 
> Alguém poderia me dar uma luz?????????

Fácil. O teu @INC está errado. Você precisa prestar atenção quando setar 
variáveis de ambiente. O Russo quase acertou quando apontou você para o 
problema, mas ele escolheu o diretório errado. Seta PERL5LIB para

/home/tr053040/elvio/PERL_LIB/lib/site_perl/5.10.0/sun4-solaris/

e o teu problema já era.

> Obs: A máquina aonde estou tentando instar o módulo não tem acesso a
> internet!!!!!!!!!!

Isso não ajuda nada, e eu recomendo seguir as recomendações do resto do 
pessoal: use local::lib e minicpan, pelo menos. E tente ter uma réplica 
do repositório em algum lugar que você possa usar. Lembre-se: Perl não 
vem com baterias incluídas, você precisa do CPAN para aproveitar o 
máximo do potencial da linguagem.

Como uma antiga namorada me disse, muitos, muitos anos atrás: "o poder 
de um programador é exponencialmente proporcional à quantidade de 
bibliotecas que ele tem à disposição." (Emilene Morais)

Putamplexos.
-- 
Luis Motta Campos is a software engineer,
Perl Programmer, foodie and photographer.


Mais detalhes sobre a lista de discussão Cascavel-pm