我在rhel上安装了2个不同的主要版本的postgres 9和10。
尝试更新psql包后的最新情况: 服务器版本为10.7时,我在rhel 7.6上安装了psql 9.2.24。 我的yum仓库有较早的问题,它已损坏,后来,我在here中提到的以下命令的帮助下将其恢复/修复(您可以初步了解我的问题是损坏的yum仓库)< / p>
echo 7 > /etc/yum/vars/releasever
我在here检查了我的更新替代品 并且它正确地引用了10.7目录下的psql,但是在连接到现有数据库时仍然看到psql旧版本号。
以下是我更新psql软件包所遵循的步骤:
postgresql10 x86_64 10.7-2PGDG.rhel7 pgdg10 1.6M
请注意,在上述更新期间/之前/之后,我尚未重启任何正在运行的实例,并且以某种方式认为它与以下事实有关:在我重启(停止现有实例并重新启动它们)之前正在运行psql / db的实例,psql的更改将不会开始反映出来,但这只是我的假设。有人可以帮忙我在此升级过程中理解/发现的错误吗。
除上述内容外,在psql / postgres方面没有任何更改/升级。我仍然有两种postgres安装:9和10。
答案 0 :(得分:1)
几个月前我做了此修复,但我忘了。 here处有相似之处,且有更好的答案,因此,所有学分都可以在此回答张贴者。但是,这是我为解决该问题所做的事情:-
which psql
,向我展示了/usr/bin
处的psql之一。它已经存在了9个月,所以肯定没有在我的问题中提到的yum postgres...
安装步骤中安装任何东西,这使我意识到新的软件包安装不会立即覆盖它。update-alternatives --config pgsql-psql
,但收到与上述SO答案相同的错误:
/usr/bin/psql exists and it is not a symlink
ln
命令不会覆盖现有链接,需要手动将其删除。我想删除符号链接,但最终将/ usr / bin的psql重命名为psql_org。
确实,我在此过程中发出了ln
命令。以上确实帮助修复了psql版本,但其他实用程序pg_basebackup和其他实用程序仍在指较旧的版本。我相信更好的方法是删除旧的postgresql安装。我试图用
列出现有的postgresql版本yum list installed | grep postgres
仅显示
postgresql10*
软件包在那里,我记得我已经删除了旧的postgres版本,
yum erase postgres...
,所以不确定要删除什么。
暂时,我已通过在/ usr / bin中重命名其他实用程序并更新其替代方法来进一步解决此问题。