当我跑步时
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
包可能会有帮助。