我对以下输出有疑问:
[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=#
以下两条消息代表什么,为什么?我要问的消息:
psql: /usr/pgsql-11/lib/libpq.so.5: no version information available (required by psql)
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)
PS 我在 Fedora 30 上运行 PostgreSQL 11.8。
UPDATE1:
根据@LaurenzAlbe 的要求,rpm -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
更新2:
我已经运行了dnf remove postgresql postgresql-server
命令 -> 数据库仍然存在,我可以通过pgAdmin4和psql 访问它们:/usr/pgsql-11/lib/libpq.so.5: 没有可用的版本信息(psql 所需的消息不再显示. 但是,现在有新问题 -> 当我使用命令在终端中访问postgres shellsudo su - postgres
然后执行时psql some-database-name postgres
,我得到消息
bash:psql:找不到命令...
安装包'postgresql'以提供命令'psql'?[不适用]
我想这是要求我再次安装Fedora 软件包,我首先要摆脱它(不显示 psql:/usr/pgsql-11/lib/libpq.so.5:没有可用的版本信息(需要psql)消息)。
任何建议如何在不安装 Fedora 软件包但来自PostgreSQL 全球开发组的情况下解决这个问题?
PS顺便说一句,我已经通过使用PGDG包的这个链接安装了Postgres服务器(但是在我的机器上有些东西不能正常工作,我想Fedora30 OS已经提供我安装Fedora包,这显然是我所做的: ))。
您安装了混合包:一些来自 Fedora 发行版,一些来自 PostgreSQL 全球开发组。
这些不能很好地协同工作。特别是,您有
psql
来自 Fedora 的包PATH
,但libpq
来自 PGDG 的包在库路径上。这解释了你的问题 #2。
广告问题 #1:如果已安装库的库版本低于与软件链接的版本,则会打印该警告。
删除 Fedora 软件包以解决问题:
我希望把正确
psql
的放在你的PATH
; 如果没有,请重新安装postgresql11
软件包。在尝试并尝试了@Laurenz Albe 提出的建议后,我设法找到了解决方案。
执行我的问题中提到的步骤后的解决方案,再执行一个附加步骤,即为以下包运行
sudo dnf reinstall pacakage_name
(package_name
是下面提到的三个包之一)命令:之后一切正常。
更新
这个问题已经回答了,所以这个答案是为了补充。
我在 CentOS 8 上运行 postgres 版本 13 时发现了同样的问题。如前所述,libpq 的版本不匹配并且来自不同的存储库。
通过卸载库解决了这个问题
注意:使用“dnf”将尝试删除 postgresql 和 postgresql-server(在许多情况下可能没问题),我们需要重新安装它们。通过使用“rpm”,我们不会碰它们,所以我们不必重新安装。
最后安装正确的。
现在一切都匹配
查看版本之间的干扰:
这可能是由于模块与 pgdg 安装(参见底部的链接 1 和链接 2)。