No Fedora, o programa Perl não consegue encontrar a biblioteca Time :: Piece

1

Eu tenho um programa Perl chamado /usr/bin/octbatch rodando como um script no Fedora 17 Linux.

Quando eu executo este comando:

/usr/bin/octbatch

Eu recebo o erro:

Can't locate Time/Piece.pm in @INC (@INC contains: 
/usr/local/lib64/perl5 /usr/local/share/perl5 
/usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl 
/usr/lib64/perl5 /usr/share/perl5) at /usr/bin/octbatch line 6.
BEGIN failed--compilation aborted at /usr/bin/octbatch line 6.

Aqui estão as linhas relevantes do script Perl:

#!/usr/bin/perl -wT

$ENV{PATH} = "/bin:/usr/bin:/usr/local/bin";
use strict;
use POSIX qw(setsid :sys_wait_h);

use Time::Piece;
use Time::Local;

Eu tenho que instalar o Piece.pm, então o perl pode encontrá-lo. Eu já instalei com este comando (usando os padrões):

/usr/bin/perl -MCPAN -e install Time::Piece

Eu tenho o arquivo Piece.pm em /home/el/perl5/lib/perl5/x86_64-linux-thread-multi/ no entanto, quando eu executar o comando octbatch, recebo o mesmo erro acima. Como se nem pudesse encontrá-lo.

Aqui está minha variável PERL5LIB:

el@defiant ~/gnuoctbluehost/single_stock_analysis $ env | grep PERL5

PERL5LIB=/home/el/perl5/lib/perl5/x86_64-linux-thread-multi:/home/el/perl5/lib/perl5

E o Piece.pm está localizado em / home / el / perl5 / lib / perl5 / x86_64-linux-thread-multi

Então, minha pergunta é: Por que não está encontrando meu arquivo Piece.pm? E quais são as maneiras que eu posso obter a variável @ INC para incluí-lo. Ou como faço o perl ver isso?

Eric Leschinski
fonte

Respostas:

2

Fedora 17 inclui o Time :: Piece

Use o comando: yum install perl-Time-Piece

Você pode descobrir isso com a pesquisa do google: fedora 17 Time-Piece e aperte o primeiro link.

Pesquise para incluir manualmente o caminho e a biblioteca:

Certifique-se de que a seguinte linha é anterior use Time::Piece; mas depois #!/usr/bin/perl -wT.

use lib "/home/el/perl5/lib/perl5/x86_64-linux-thread-multi";

Que diz ao meu programa perl onde procurar por Time :: Piece. Então o programa funciona.

Eric Leschinski
fonte