我的情况是这样的:我的 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/
。
一种不太对包管理器安全的安全替代方案是移动/删除/重命名psql
in/usr/bin/
并创建一个符号链接/usr/bin/
到新的符号链接(未经测试):
> cd /usr/bin
# move the old one however you like
> ln -s /usr/pgsql-9.1/bin/psql .