sudo:psql:未找到命令:无法修复

sudo:psql:未找到命令:无法修复

当我跑步时

sudo -u postgres psql

我明白了

sudo: psql: command not found

错误。我无法让它工作。

# locate psql
/etc/alternatives/psql.1.gz
/usr/bin/psql
/usr/lib/postgresql/9.5/bin/psql
/usr/lib/x86_64-linux-gnu/odbc/libodbcpsqlS.so
/var/lib/dpkg/alternatives/psql.1.gz
/var/lib/postgresql/.psql_history

# ln -s /usr/lib/postgresql/9.5/bin/psql /usr/bin/psql
ln: failed to create symbolic link '/usr/bin/psql': File exists

没用。不过 Postgresql 运行良好。

答案1

在 Ubuntu 上,/usr/bin/psql有一个指向 Perl 脚本的符号链接,该脚本找出如何找到要连接的默认 PostgreSQL 实例,然后使用必要的连接参数启动与该实例相对应的真正的 psql 二进制文件。

$ ls -l /usr/bin/perl
lrwxrwxrwx 1 root root 37 nov.  14 13:23 /usr/bin/psql -> ../share/postgresql-common/pg_wrapper

查看手册页了解pg_wrapper更多详情。

根据评论,链接的目标不知何故被破坏了。重新安装postgresql-client-common包可能会有帮助。

相关内容