Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 正在创建Postgis扩展名:";错误:无法打开扩展名控制文件";_Postgresql_Macos_Postgis - Fatal编程技术网

Postgresql 正在创建Postgis扩展名:";错误:无法打开扩展名控制文件";

Postgresql 正在创建Postgis扩展名:";错误:无法打开扩展名控制文件";,postgresql,macos,postgis,Postgresql,Macos,Postgis,当我运行createextensionpostgis时,我遇到以下错误 错误:无法打开扩展控制文件“/Library/PostgreSQL/9.6/share/PostgreSQL/extension/postgis.control”:没有这样的文件或目录 我使用的是在OS X El Capitan上使用自制软件安装的Postgres 9.6.3和PostGIS 2.3.2 mdfind-name postgis.control显示: PostGIS extension modules inst

当我运行
createextensionpostgis时,我遇到以下错误

错误:无法打开扩展控制文件“/Library/PostgreSQL/9.6/share/PostgreSQL/extension/postgis.control”:没有这样的文件或目录

我使用的是在OS X El Capitan上使用自制软件安装的Postgres 9.6.3和PostGIS 2.3.2

mdfind-name postgis.control
显示:

PostGIS extension modules installed to:
/usr/local/share/postgresql/extension
/usr/local/ceral/postgis/2.3.2/share/postgresql/extension/postgis.control

brew信息postgis
显示:

PostGIS extension modules installed to:
/usr/local/share/postgresql/extension
当我启动Postgres控制台时,我看到:

psql (9.6.3, server 9.6.1)
我读了一个类似的问题,并尝试使用上面答案中给出的命令重新加载postgresql,但我仍然看到
psql(9.6.3,Server9.6.1)
。另外,我认为我的问题是不同的,因为它在
/Library
中查找扩展控制文件,而不是
/usr/local/cillar


任何帮助都将不胜感激。

我在详细信息方面也遇到了类似的问题。当您的Postgres控制台中提到服务器时,这意味着您正在引用旧的代码库。停止该服务器并使用以下命令启动正确的服务器

$ brew services list
这将为您提供正在运行的数据库服务器的列表

$ brew services stop postgresql@<older-version>
$ brew services start postgresql
$brew服务停止postgresql@
$brew服务启动postgresql

当您尝试安装postgis时,它会作为依赖项安装最新版本的postgresql。 所以如果你安装了postgres@V(其中V是用户期望的版本)

brew安装postgresql@V

稍后运行此命令

brew安装postgis

它将安装Postgre10.1或任何最新版本。 所以在那之后如果你跑

创建扩展postgis

在postgresql@V它将尝试检查其扩展目录,但在扩展目录中找不到postgis.control,因为此postgis安装在与之一起安装的postgresql版本的扩展文件夹中

要解决此问题,您必须创建一个符号链接,从给定的postgis安装到所需的postgresql@V

这个例子postgresql@9.6

ln -s  /usr/local/share/postgresql/extension/postgis* /usr/local/Cellar/postgresql@9.6/9.6.6/share/postgresql@9.6/extension/
ln -s /usr/local/lib/postgresql/postgis-2.3.so /usr/local/Cellar/postgresql@9.6/9.6.6/lib/postgis-2.3
ln -s /usr/local/lib/postgresql/rtpostgis-2.3.so /usr/local/Cellar/postgresql@9.6/9.6.6/lib/
在运行这些命令之前,请检查系统中的postgresql版本和文件路径


谢谢你的帮助。

也许会对你有所帮助。@michel.milezzi这正是我尝试过的,但它无法创建扩展。好吧@Fiona那么最后什么对你有用呢?@abbood最后在这里安装了相同的软件,哈哈哈,当默认的自制Postgres版本是13时,这似乎是一条死胡同,您尝试安装早期版本的postgis:“错误:为PostgreSQL 13.0构建的postgis无法加载到PostgreSQL 12.7中”