无法在 su 中运行 strict.pm 进行 perl 安装

无法在 su 中运行 strict.pm 进行 perl 安装

我正在尝试为一个项目设置 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 - postgresstrict.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=# 

相关内容