Postgres Postgis错误:库未加载:/usr/local/lib/libspatialite.5.dylib。

11
在浏览 Postgres-Rails 开发应用程序时,我遇到了一个页面错误,由于 PG 错误而出现了故障。认为我的当前 Git 分支的模式可能与数据库不同步,因此我尝试运行 rake db: reset。这导致出现错误(我现在无法再现),声称在 usr / local / Cellar / postgresql / 9.3.5 / share / postgresql 目录中找不到postgis.control文件(如果我没记错的话)。在看到我的 Postgres 9.3.4 版本对应目录中存在该控制文件后,我尝试了许多事情,但最终卸载了我的 postgres-9.3.4,然后使用brew卸载和重新安装PostGIS。然而,在每次尝试重置数据库都失败之后,错误消息变为:

  

ERROR:无法加载库“/usr/local/Cellar/postgresql/9.3.5/lib/rtpostgis-2.1.so”:dlopen(/usr/local/Cellar/postgresql/9.3.5/lib/rtpostgis-2.1.so,10):未加载库:/usr/local/lib/libspatialite.5.dylib

然后我尝试卸载Postgres并重新安装,但即使如此也无法解决问题。

(注意:我尝试在Postgres控制台中创建PostGIS扩展,但结果给出了与上述相同的错误)。


我觉得这可能不会有帮助,但您是否尝试过旧的方法直接加载Postgis函数,以防控制文件出现问题。类似psql -f /path/to/postgis.sql databasename这样的东西。 - John Powell
谢谢你的提示,但是不幸的是,强制运行postgis.sql脚本并不能阻止上述错误在我尝试运行rake db:reset时弹出。 - Krishna_Kulkarni
当我在psql中运行ALTER EXTENSION postgis UPDATE TO "2.1.3"时,我遇到了相同的问题。 - tee
1个回答

21

好的,问题已解决!

所以我不确定这是否与Postgres或PostGis直接相关。

在我的初始帖子中,我省略了随后的错误行,而实际上它们非常重要。它们是:

      Referenced from: /usr/local/lib/libgdal.1.dylib
      Reason: image not found

libgdal.1.dylib是GDAL(地理空间数据抽象库)中的文件。缺失的文件libspatialite.5.dylib来自SpatiaLite,这是一个扩展SQLite的库。在/usr/local/lib/目录下,我有另一个文件libspatialite.7.dylib,但没有libspatialite.5.lib文件。在/usr/local/opt和其他子目录中四处查找后,我发现我有两个版本的SpatiaLite,较早的版本使用libspatialite.5.dylib,较新的版本使用libspatialite.7.lib。

看起来我的GDAL与最新版本的spatialite不同步。我执行了

$ brew uninstall gdal
$ brew install gdal

问题得到了解决!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接