Permissão negada em execução perl

1

perl 5.18.2 estava rodando bem no meu sistema Ubuntu 14.04 até que eu precisei de um pacote do CPAN que não existisse como um pacote do Ubuntu. Eu instalei como root e não funcionou, mas o processo de instalação parece ter mudado as permissões de alguma coisa. Agora, não consigo executar o Perl como um usuário normal.

Como usuário normal, "perl -v" funciona. Mas "perl -V" me dá isso:

$ perl -V

Can't locate Config.pm:   Permission denied.
BEGIN failed--compilation aborted.

Se eu rodar sob o sudo, então funciona:

$ sudo perl -V

...
@INC:
  /etc/perl
  /usr/local/lib/perl/5.18.2
  /usr/local/share/perl/5.18.2
  /usr/lib/perl5
  /usr/share/perl5
  /usr/lib/perl/5.18
  /usr/share/perl/5.18
  /usr/local/lib/site_perl
  .

De fato, o Config.pm existe em /usr/lib/perl/5.18 e suas permissões são legíveis por usuários normais. Então, algo mudou para a raiz e eu não sei o que tem.

Alguém já viu isso antes e sabe o que eu deveria estar procurando? Desesperado, eu mesmo desinstalei o perl e o reinstalei de volta. Não funcionou. Apesar de algo engraçado ... após a desinstalação, eu ainda tinha um executável / usr / bin / perl. Não tenho certeza se isso está relacionado ...

Qualquer ajuda seria apreciada!

Ray

    
por Ray 30.06.2014 / 13:08

2 respostas

1

De algum googling (veja aqui ) Eu entendo que se um dos diretórios no caminho @INC estiver inacessível , a procura por Config.pm (ou qualquer módulo) é abandonada. Portanto, verifique se algum dos diretórios não é legível por "todos".
Por incrível que pareça, um nome de diretório inexistente no caminho @INC não é problema.

    
por Jos 03.07.2014 / 10:59
1

Você pode tentar instalar local::lib . Mas você provavelmente terá que reinstalar alguns módulos Perl.

  1. sudo apt-get install cpanminus

  2. cpanm --local-lib=~/perl5 local::lib eval $(perl -I ~/perl5/lib/perl5/ -Mlocal::lib)

  3. echo "export PERL5LIB=\"$HOME/perl5/lib/perl5\"">>~/.bashrc && echo "export PERL_MB_OPT=\"--install_base '$HOME/perl5'\">>~/.bashrc && echo "export PERL_LOCAL_LIB_ROOT=$HOME/perl5">>~/.bashrc

Agora, abra um novo terminal (ou execute source ~/.bashrc ) e tente instalar algum módulo Perl.

Funciona para mim! A esperança também funciona para você! Caso contrário, isso significa que sua instalação do CPAN está quebrada. Neste caso, use o comando sudo dpkg --list | grep libcpan para listar todos os pacotes do cpan, tente atualizar pacotes em primeiro lugar.

Se ainda assim não funcionar, tente remover e reinstalar todos eles! Depois disso, instale local::lib repetindo as etapas acima.

    
por Andre Carneiro 03.08.2016 / 15:52