首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Manjaro更新后,PostGIS无法工作

在Manjaro更新后,PostGIS无法工作
EN

Stack Overflow用户
提问于 2021-04-11 16:46:37
回答 1查看 208关注 0票数 0

最近,我在我的Manjaro-系统上运行了一个完整的更新,之后,当我试图运行一个用于启动并自动保存Postgres的小脚本时,我在shell中得到了以下错误。

pg_dump: pg_dump:查询失败:错误:未能加载库"/usr/lib/postgresql/postgis-3.so":/usr/lib/postgresql/postgis-3.so:未定义符号: list_make1_impl

pg_dump: error: query是:

代码语言:javascript
复制
SELECT
a.attnum,
a.attname,
a.atttypmod,
a.attstattarget,
a.attstorage,
t.typstorage,
a.attnotnull,
a.atthasdef,
a.attisdropped,
a.attlen,
a.attalign,
a.attislocal,
pg_catalog.format_type(t.oid, a.atttypmod) AS atttypname,
a.attgenerated,
CASE WHEN a.atthasmissing AND NOT a.attisdropped THEN a.attmissingval ELSE null END AS attmissingval,
a.attidentity,
pg_catalog.array_to_string(ARRAY(SELECT pg_catalog.quote_ident(option_name) || ' ' || pg_catalog.quote_literal(option_value) FROM pg_catalog.pg_options_to_table(attfdwoptions) ORDER BY option_name), E',
    ') AS attfdwoptions,
CASE WHEN a.attcollation <> t.typcollation THEN a.attcollation ELSE 0 END AS attcollation,
array_to_string(a.attoptions, ', ') AS attoptions
FROM pg_catalog.pg_attribute a LEFT JOIN pg_catalog.pg_type t ON a.atttypid = t.oid
WHERE a.attrelid = '18597'::pg_catalog.oid AND a.attnum > 0::pg_catalog.int2
ORDER BY a.attnum

而且,当我在pgAdmin中启动数据库时,我可以打开所有的表,但保存地理列的表除外,后者需要PostGIS。它将显示以下错误:

错误:无法加载库/usr/lib/postgresql/postgis-3.so: /usr/lib/postgresql/postgis-3.所以:未定义符号: list_make1_impl SQL状态: 58P01

很明显包裹里有东西搞砸了。根据this thread的说法,它可能与这个软件包被安装了好几次有关。但是,我手动重新安装proj,从正式的Repo以及从8月每次使用不同的版本,每次清理旧版本。错误仍然存在。

当前的版本设置是:

代码语言:javascript
复制
QGIS: Version 3.16.5
Postgres: Version 12.6-1
PostGIS: Version 3.0.3-1
proj: Version 6.3.2-1
Manjaro: KDE-Plasma 5.21.3
Kernel: 4.19.183-1-Manjaro

有人有办法解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-06 19:39:04

多亏了本地Linux用户组,我找到了解决这个问题的方法。事实证明,PostGIS是在后台更新的,新版本不再与PostgreSQL 12.6相对应。由于PostGIS已经安装,所以它没有显示这一点,而是显示了上面的错误消息。

为了检查PostGIS是否仍然与PostgreSQL兼容,我创建了一个新的数据库,然后尝试添加PostGIS扩展。我收到了下面的信息,把事情弄清楚了:

代码语言:javascript
复制
test=# CREATE EXTENSION postgis;
ERROR: could not open extension control file "/usr/share/postgresql/extensionpost.control": No such file or directory
test=# CREATE EXTENSION postgis;
ERROR: PostGIS built for PostgreSQL 13.0 cannot be loaded in PostgreSQL 12.6

因此,我更新了PostgreSQL,设置了一个新的数据库集群,并在我的自动pg_dump中的最后一个.sql上使用了pg_restore来重新创建数据库。现在它又像以前一样起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67047668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档