Postgresql:无法访问文件«$ libdir / postgis-2.1»没有这样的文件或目录

时间:2016-04-06 07:43:11

标签: postgresql migration postgis

我想这是一个已知问题,但由于我使用的脚本删除了我的postgresql-9.4-postgis-2.1,我现在无法摆脱Debian下的这个SQL错误。

  

无法访问文件«$ libdir / postgis-2.1»没有这样的文件或目录

我做了以下事情:

- Remove new unwanted postgresql-9.5-postgis-2.2 package installed
- Reinstalling postgresql-9.4-postgis-2.1, postgresql-9.4-postgis-scripts and postgis
- Using SQL: ALTER EXTENSION postgis UPDATE TO '2.1.4' --under postgres user
- Using SQL: ALTER EXTENSION postgis_topology UPDATE TO '2.1.4' --under postgres user

SELECT * FROM pg_available_extensions;返回

[...]
postgis 2.1.4   2.1.4   PostGIS geometry, geography, and raster spatial types and functions.

但在访问使用几何类型的表这样的对象时仍然是这条消息。

有什么想法吗?

3 个答案:

答案 0 :(得分:6)

最后“解决”编译从源 postgis 2.2.2(也需要gdal,proj4和geos)然后发布

的问题
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;

因为DROP EXTENSION postgis;告诉我postgis不再存在了。

最后:

ALTER EXTENSION postgis UPDATE TO '2.2.2';
ALTER EXTENSION postgis_topology UPDATE TO '2.2.2';

再次访问PostgreSQL 9.4中的我的geom数据和函数。似乎从源代码编译正确更新了postgresql的变量路径并安装了不再存在的/usr/lib/postgresql/9.4/lib/postgis-2.2.so(对于postgis-2.1.so也是如此),即使是(重新)从apt-get安装。

希望这会有所帮助。

答案 1 :(得分:1)

首次运行(作为postgres管理员)

ALTER EXTENSION postgis UPDATE;

如果成功返回,请检查您的版本

SELECT PostGIS_Full_Version();

但是,如果服务器返回它找不到扩展名postgis,则运行

CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
ALTER EXTENSION postgis UPDATE;

再次通过运行检查

SELECT PostGIS_Full_Version();

答案 2 :(得分:0)

如果您正在使用ubuntu

使用以下命令输入postgres交互式shell

  • sudo -u postgres psql

  • \ c database_name;

  • ALTER EXTENSION postgis更新为“ 2.4.4”;

  • 选择PostGIS_Full_Version();