首页 > 解决方案 > Postgres:单独路径中的 PostGIS 扩展

问题描述

我使用的 Linux 机器安装了 SuSE 12.1 和 Postgres 9.4(as root)。我能够在用户区编译和安装 PostGIS 2.5 扩展。在这个安装下,我看到了 contrib 文件夹、一些 sql 文件和 .so 文件等。

我可以使用我的个人用户启动 Postgres。我怎样才能让 Postgres 知道引用所有与 PostGIS 扩展相关的文件/对象都可用的目录?

当我尝试创建扩展时,我收到以下错误:

ERROR:  could not open extension control file "/usr/share/postgresql94/extension/postgis.control": No such file or directory

当然,会出现一些错误,因为 Postgres 不知道我的 PostGIS 安装。但是后者没有这样的文件,postgis.control.

我猜解决方案是确保 Postgres 可以看到 .so 文件(可能已设置LD_LIBRARY_PATH?)或创建一个postgis.control包含所有相关详细信息等的文件。

任何帮助,包括简单地指向文档,将不胜感激。

我看到了一些类似的问题,但似乎没有人在一个单独的目录中解决我的扩展问题 - PostGIS。他们假设root访问。

标签: postgresqlpostgis

解决方案


像每个扩展一样,PostGIS 必须安装在 PostgreSQL 扩展子目录(在 下share)中。

配置 PostGIS 后,它会在pg_config上查找PATH,或者您可以明确指定--with-pgconfig选项到configure.

构建 PostGIS 后,make install会自动将所有文件放在适当的位置。

您不是很具体是如何构建 PostGIS 的,但您一定是在某处偏离了正确的路径。如果您分享一些细节,我们或许能够找出问题所在。


重新阅读您的问题,我觉得您在 PostgreSQL 软件目录之外的某个地方安装了 PostGIS,因为您缺乏必要的root权限。那根本行不通,也没有解决方法。

您必须在具有写入权限的地方安装 PostgreSQL。


推荐阅读