我正在尝试为一个项目设置 Postgres。在说明中它说要运行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.
只需运行它而不使用$ sudo su - postgres
strict.pm 就可以完美运行,但是当我将用户切换到 postgres 时(这是进入 Postgres 进行身份验证所必需的),它会失败!欢迎任何黑客解决方法,我只需要能够进入 Postgres 并创建我的用户,这样我就可以在我的项目中的 Diesel 中使用它。
先感谢您!
答案1
在我的例子中,原因是 PERL5LIB 指向另一个用户的 HOME 目录:
postgres@delly:~$ echo $PERL5LIB
/home/sveta/build/mysql-sandbox/share/perl/5.22.1:
将其设置为空字符串后,psql 开始工作:
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=#