“psql:/usr/pgsql-11/lib/libpq.so.5:没有可用的版本信息(psql需要)”实际上是什么意思?

Nik*_*laS 4 postgresql psql scripting bash

我对以下输出有疑问:

[nikola@192 ~] $ sudo su - postgres
[postgres@192 ~] $ psql dvdrental postgres
psql: /usr/pgsql-11/lib/libpq.so.5: no version information available (required by psql)
psql: /usr/pgsql-11/lib/libpq.so.5: no version information available (required by psql)
psql (11.7, server 11.8)
Type "help" for help.

dvdrental=# 
Run Code Online (Sandbox Code Playgroud)

以下两条消息代表什么,为什么?我正在询问的消息:

  1. psql: /usr/pgsql-11/lib/libpq.so.5: no version information available (required by psql)
  2. psql (11.7, server 11.8)-顺便说一句,这个psql --version命令我获得以下的输出: psql (PostgreSQL) 11.8必须安装才能执行的命令,比如PostgreSQL服务器版本11.7\dt\l)......并输出如下:
postgres=# select * FROM version();
                                                version                                                 
--------------------------------------------------------------------------------------------------------
 PostgreSQL 11.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2), 64-bit
(1 row)
Run Code Online (Sandbox Code Playgroud)

PS 我在 Fedora 30 上运行 PostgreSQL 11.8。

UPDATE1: 根据@LaurenzAlberpm -qa|grep postgres命令输出的要求是:

[nikola@192 ~] $ rpm -qa|grep postgres
postgresql-11.7-2.fc30.x86_64
postgresql11-11.8-1PGDG.f30.x86_64
postgresql11-libs-11.8-1PGDG.f30.x86_64
postgresql11-server-11.8-1PGDG.f30.x86_64
postgresql-server-11.7-2.fc30.x86_64
Run Code Online (Sandbox Code Playgroud)

更新2

我已经运行dnf remove postgresql postgresql-server命令 -> 数据库仍然存在,我可以通过pgAdmin4psql访问它们:/usr/pgsql-11/lib/libpq.so.5:没有可用的版本信息(不再显示psql 所需的信息) . 但是,现在有新问题 -> 当我使用命令在终端中访问postgres shellsudo su - postgres然后执行psql some-database-name postgres我得到消息

bash: psql: command not found...
安装包“postgresql”以提供命令“psql”?[年/年]

我认为这是要求我再次安装Fedora 软件包,我试图摆脱它的第一个位置(不显示 psql:/usr/pgsql-11/lib/libpq.so.5:没有可用的版本信息(需要psql)消息)。

任何建议如何在不安装 Fedora 软件包但来自PostgreSQL 全球开发组的情况下解决此问题?

PS顺便说一句,我已经通过使用 PGDG 包的这个链接安装了 Postgres 服务器(但是我的机器上有些东西不能正常工作,我想我已经被 Fedora30 操作系统提供来安装 Fedora 包,这显然是我所做的: ) )。

Lau*_*lbe 6

您安装了混合包:一些来自 Fedora 发行版,一些来自 PostgreSQL Global Development 组。

这些不能很好地协同工作。特别是,你有psql来自 Fedora 的包PATH,但是libpq来自 PGDG 的包是在库路径上。

这解释了你的问题#2。

广告问题 #1:如果已安装库的库版本低于与软件链接的版本,则会打印该警告。

删除 Fedora 软件包以解决问题:

dnf remove postgresql postgresql-server
Run Code Online (Sandbox Code Playgroud)

我希望把正确的psql放在你的PATH; 如果没有,请重新安装postgresql11软件包。