não pode ser executado strict.pm dentro do su para a instalação do perl

0

Estou tentando configurar o Postgres para um projeto. Nas instruções diz para executar psql :

$ psql
Can't locate strict.pm:   /usr/local/lib/x86_64-linux-gnu/perl/5.22.1/strict.pm: Permission denied at /usr/bin/psql line 19.
BEGIN failed--compilation aborted at /usr/bin/psql line 19.

Apenas executá-lo sem $ sudo su - postgres , strict.pm funciona perfeitamente, mas quando eu alterno o usuário para o postgres, que é necessário para autenticação no Postgres, ele falha! Qualquer solução de hacky é bem-vinda, eu só preciso entrar no Postgres e criar meu usuário, para que eu possa usá-lo no Diesel dentro do meu projeto.

Obrigado antecipadamente!

    
por Chaz Bassett 14.02.2017 / 04:12

1 resposta

0

No meu caso, a razão era PERL5LIB, apontando para o diretório HOME de outro usuário:

postgres@delly:~$ echo $PERL5LIB
/home/sveta/build/mysql-sandbox/share/perl/5.22.1:

Depois de configurá-lo para uma string vazia, o psql começou a trabalhar:

postgres@delly:~$ psql
Can't locate strict.pm:   /home/sveta/build/mysql-sandbox/share/perl/5.22.1/strict.pm: Permission denied at /usr/bin/psql line 19.
BEGIN failed--compilation aborted at /usr/bin/psql line 19.
postgres@delly:~$ echo $PERL5LIB
/home/sveta/build/mysql-sandbox/share/perl/5.22.1:
postgres@delly:~$ export PERL5LIB=
postgres@delly:~$ echo $PERL5LIB

postgres@delly:~$ psql
psql (9.5.10)
Type "help" for help.

postgres=# 
    
por svetasmirnova 06.02.2018 / 12:47