如何更正 psql 版本和 postgresql 版本的不匹配?

fat*_*amo 9 postgresql

一路上我已经结束了与版本不匹配行的地方postgresql-9.4psql这是9.3版本,尽管9.4版安装的事实。我想我需要更正$PATH变量,但我不知道在哪里可以找到它。我查看了我的/etc/.bashrc文件,但看不到任何指向正确方向的内容。

当我这样做时sudo find / -name psql,结果是:

/usr/bin/psql
/usr/share/bash-completion/completions/psql
/usr/pgsql-9.4/bin/psql
Run Code Online (Sandbox Code Playgroud)

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 
Run Code Online (Sandbox Code Playgroud)

Ale*_*org 7

正如克雷格林格回答的那样 - 通常你应该使用:

sudo update-alternatives --config pgsql-psql
Run Code Online (Sandbox Code Playgroud)

不过,有时您会收到这样的消息:

failed to link /usr/bin/psql -> /etc/alternatives/pgsql-psql: /usr/bin/psql exists and it is not a symlink
Run Code Online (Sandbox Code Playgroud)

如果是这样 - 尝试:

ln -s /usr/pgsql-[PUT YOUR VERSION HERE(ex. 9.6)]/bin/psql /usr/local/bin/psql
Run Code Online (Sandbox Code Playgroud)

  • 这正是我在 Centos 7 上寻找的解决方案,其中基本存储库将 psql 二进制文件直接安装到 `/usr/bin/psql` 中,因此 [yum install of postgres 10](https://www.postgresql. org/download/linux/redhat/) 抛出“无法链接”错误(和其他 10 个二进制文件) (3认同)

Cra*_*ger 4

使用替代机制。在费多拉上:

sudo update-alternatives --config pgsql-psql
Run Code Online (Sandbox Code Playgroud)