2015-12-02 59 views
0

沿线的某处我已经结束了postgresql-9.4psql之间的版本不匹配,尽管版本9.4已安装,但版本仍然是9.3版本。 我想我需要更正$PATH变量,但我不知道在哪里可以找到它。我查看了我的/etc/.bashrc文件,看不到任何指向正确方向的内容。如何纠正psql版本和postgresql版本的不匹配?

当我做sudo find/-name psql结果是:

/usr/bin/psql 
/usr/share/bash-completion/completions/psql 
/usr/pgsql-9.4/bin/psql 

yum list installed | grep postgres产生如下:

postgresql.x86_64    9.3.9-1.fc21       @updates 
postgresql-contrib.x86_64  9.3.9-1.fc21       @updates 
postgresql-devel.x86_64   9.3.9-1.fc21       @updates 
postgresql-libs.x86_64   9.3.9-1.fc21       @updates 
postgresql-server.x86_64   9.3.9-1.fc21       @updates 
postgresql94.x86_64    9.4.5-1PGDG.f21      @pgdg94 
postgresql94-libs.x86_64   9.4.5-1PGDG.f21      @pgdg94 
postgresql94-server.x86_64  9.4.5-1PGDG.f21      @pgdg94 

回答

1

使用的替代机制。在Fedora上:

sudo update-alternatives --config pgsql-psql 
+0

在使用您的建议时,使用了Rodrigo Hjort的建议后,命令读取正确,并且只有一个选项:'/ usr/pgsql-9.4/bin/psql'。但运行'psql'的响应是启动到版本9.3! – fatherdamo

+0

@fatherdamo啊。问题是9.3软件包不使用替代品,他们是Fedora的股票。你还需要他们吗? –

+0

不,我认为他们是在我试图让postgresql工作时安装的。我删除了'postgresql.x86_64',它也删除了'p * sql-contrib + devel + server'并完全删除了'postgresql-libs.x86_64'。然后'psql'命令根本没有启动。 'update-alternatives --config'按我的想法读取,但没有'/ usr/bin/psql'的列表。所以我删除了'postgresql94'并重新安装,返回一些9.3软件包,'psql'命令启动到9.3!奇怪的。 – fatherdamo

1

你很明显使用CentOS或RHEL。

在这种情况下,你可能:1)调用PSQL的完整路径,或2)通过如root执行以下命令替换当前PSQL在备选方案:

update-alternatives --install /usr/bin/psql pgsql-psql /usr/pgsql-9.4/bin/psql 1 

尖端:每当查找文件或目录时,请使用updatedblocate而不是find。 :D

+0

感谢您的回复,是的,我在Fedora 21上。 它看起来应该可以工作,但是当我在命令行键入'psql'时,我仍然在psql版本9.3中启动。 我猜'/ usr/bin/psql'是我的bin文件中名为'pgsql-psql'的符号链接,它应该执行'/ usr/pgsql-9.4/bin/psql'? 后一个命令正确启动到psql版本9.4,'alternatives'似乎正确命名,为什么'psql'不工作? – fatherdamo

+0

尝试运行'which psql'以找出'psql'指向的位置。如果它是一个符号链接,请按照该链接进行操作,直到发现最终的二进制文件被调用。 –