我使用的Linux机器安装了SuSE 12.1,并安装了Postgres 9.4(如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
访问权限。
答案 0 :(得分:1)
像每个扩展一样,PostGIS必须安装在PostgreSQL扩展子目录(在share
下)。
配置PostGIS后,它将在pg_config
上查找PATH
,或者您可以将--with-pgconfig
选项明确指定为configure
。
构建了PostGIS后,make install
会自动将所有文件放置在正确的位置。
您对PostGIS的构建方式不是很明确,但是您必须偏离正确的路径。如果您分享一些细节,我们也许可以找出问题所在。
重新阅读您的问题,我感到您已将PostGIS安装在PostgreSQL软件目录之外的某个位置,因为您缺少必要的root
特权。那根本行不通,也没有解决方法。
您必须将PostgreSQL安装在您具有写权限的位置。