如何指定运行哪个版本的 PostgreSQL 客户端 (psql)?

如何指定运行哪个版本的 PostgreSQL 客户端 (psql)?

我的情况是这样的:我的 CentOS 系统上安装了两个版本的 PostgreSQL,这两个版本有两个不同的psql交互终端。

一个位于/usr/bin/psql,并在我跑步时启动psql -U username

另一个较新的位于/usr/pgsql-9.1/bin/psql

psql我希望当我从命令行运行时默认启动较新的版本。如何才能做到这一点?

答案1

或者,为了避免符号链接并避免更改您的$PATH,您可以将命令添加到哈希表中:

hash -p /usr/pgsql-9.1/bin/psql psql

这会将您的命令放入命令哈希表中,并且它将在任何其他命令之前执行(事实上,不会执行路径搜索)。

如果您使用之前调用的命令psql,那么它已经位于哈希表中,并且它将是搜索命令时的第一个命中。在这种情况下,请先删除旧条目,方法是输入

hash -d psql

然后发出上面的命令。您可以在.bashrc您想要的地方获取它。

答案2

编辑你的PATH这样/usr/pgsql-9.1/bin/(较新的)就出现在 之前/usr/bin/

一种不太对包管理器安全的安全替代方案是移动/删除/重命名psqlin/usr/bin/并创建一个符号链接/usr/bin/到新的符号链接(未经测试):

> cd /usr/bin
# move the old one however you like
> ln -s /usr/pgsql-9.1/bin/psql .

相关内容