将 Fedora Server 升级到 37,Postgres 升级无效:错误:无法访问文件“$libdir/postgis-3”

将 Fedora Server 升级到 37,Postgres 升级无效:错误:无法访问文件“$libdir/postgis-3”

在所有其他东西都显示工作正常(YAY!)之后,Postgres却拒绝启动(不要被名字所迷惑 - Postgres 的包装是为了PostgreSQL赞扬 Paul Aoki在 1995 年第一个包装版本中将QUEL查询语言处理器转换为使用SQLWAY - 除了包装/品牌之外的所有东西都使用了这个名字Postgres)。

启动失败并不意外,但软件包可以预料到升级会出现这种情况,因为所有升级的安装都可能需要这样做,并为我们运行适当的升级脚本;该脚本可以这样运行:

postgresql-setup --upgrade --upgrade-from postgresql

不幸的是,它失败了。

我沿着错误线索前进——Postgres用户主目录中的日志文件,由所述命令吐出的中间日志指向stdout,指向Postgis安装中使用的一个问题。

最相关的错误信息说:

ERROR:  could not access file "$libdir/postgis-3"

不幸的是,它没有说它$libdir应该在哪里,同样不幸的是,我也不知道它在哪里!我还没有找到任何包含名称的目录postgis

我以为Postgis它没有升级或者可能没有安装,但通过对已安装软件包的简单检查,我猜想这是错误的:它被称为postgis-3.2.2-1.fc37.x86_64

由于错误消息抱怨没有找到某个部分postgis-3,但postgis安装了版本 3 让我感到惊讶。

我还没有修复。有什么想法吗?对于Postgres使用 的用户来说,这肯定是一个常见问题Postgis

答案1

后地理信息系统是作为包安装的扩展。您必须安装适合您的 postgresql 主版本和 postgis 扩展版本的包。例如;postgis32_15postgis31_14

$libdir或者任何其他预定义(大部分是编译时附带的)配置都可以学习pg_config客户端应用程序。你可以基本学习库目录通过运行以下命令。

pg_config --pkglibdir

如果你找不到pg_config那么最有可能的是查询语言命令是($bindir)。

答案2

postgis-upgrade在 Fedora 37 上,如果您尚未安装该软件包,则会在数据库升级期间收到此错误消息。

因此,启用 postgis 的数据库的完整升级过程如下:

systemctl start postgresql.service
# => start fails fails and some hints are logged
dnf install postgresql-upgrade postgis-upgrade
postgresql-setup --upgrade
systemctl start postgresql.service
sudo -u postgres psql -f /var/lib/pgsql/update_extensions.sql
sudo -u postgres reindexdb yourdb

一般来说,最好检查一下升级日志(和标准/var/lib/pgsql/data/log/postgresql*.log),看看是否有针对您的具体数据库的额外提示。

相关内容