我已经通过Homebrew安装了Postgresql@9.6和Postgis . 但是,通过Homebrew安装Postgis会将最新版本的Postgresql安装在10作为依赖,并将Postgresql固定在9.6.5阻止通过Homebrew安装Postgis .
执行'CREATE EXTENSION postgis;'收益:
ERROR: could not open extension control file "/usr/local/Cellar/postgresql@9.6/9.6.5/share/postgresql@9.6/extension/postgis.control": No such file or directory
我也尝试卸载Postgresql(10)并编辑Postgis公式以依赖Postgres@9.6而不是Postgresql .
这类似于How to install Postgis to a Keg installation of Postgres@9.5 using Homebrew?,但后来的桶配方
3 回答
经过多次组合,我设法做到了 . 简而言之,解决方案是安装旧版本的原始软件包
postgres
,切换到它,然后安装旧版本的postgis
.安装postgres
1 /安装当前版本的
postgres
(10.1说话)2 /使用旧公式安装旧版本的postgres . 可以使用Tap repo(
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/
)上的github或git log
找到正确的链接 .这将安装版本9.6.5(10.x系列之前的最后一个版本) .
3 /切换到它所以链接默认为postgres 9.6
安装postgis
4 /安装旧版postgis(2.3) . 这是使用公式的相同sha版本,所以一切都正确链接(使用当前的postgis将期望postgresql 10,因此它将在初始化扩展时最终导致版本不匹配) .
使用它们
5 /如果需要,初始化DB
6 /创建和使用您的数据库
安装PEX,Postgresql的包管理器允许我为Postgresql@9.6的桶版安装Postgis并使用
CREATE EXTENSION postgis;
这不是一个Homebrew解决方案,但经过大量搜索,它最终允许我使用Postgis .
你好
我遇到了pgsql版本的多个实现的相同问题,包括遗留版本 . 经过一番研究后,我想分享一下我的解决方案 .
Problem:
我正在与10.11 el capitan一起开发macbook pro 2013 . 我是GIS开发人员和自制软件的广泛用户 . 出于兼容性原因,我没有固定postgresql包 . 因此,包已经更新到postgresql版本10.5与其他包 . 这导致我无法使用postgresql版本9.4 . 最聪明的解决方案是使用
brew switch postgresql 9.4.19
. 除了从osgeo/osgeo4mac
编译postgis 2.5.0时,它会defautls(查找)postgresql二进制文件夹以安装符号链接(或不符号)扩展 . 这又是另一个兼容性问题 . 人们可以用自制文件修补一下并手动传输文件 . 这是错误的建议......包管理员(自制软件包)需要保持一个连贯的生态系统,以提供稳定的工作空间 .Proposed Solution:
到这里BigSQL并下载所选版本的dmg
在您的文件系统中安装所需的软件
在安装文件夹中,您将找到名为
pg9x
的目录; x是版本号(例如postgresql 9.5的pg95等等......在此文件夹中,您将找到名为
pg9x.env
的文件使用
source /your/path/pg9x/pg9x.env
行将此文件提供给.profile
在主安装文件夹中,例如
/your/path/pg9x/
,你将找到一个名为pgc
的python脚本,用alias pgc="your/path/pgc"
将其别名改为你的.profile
保存
.profile
并在命令提示符下使用source .profile
刷新环境变量仍在命令提示符下,输入
pgc list
,你'll get a list of installed packages. You' ll看到你下载的postgesql版本安装另一个版本的postgresql,比如9.6,输入
pgc install pg96
为pg95类型
pgc install postgis22-pg95
安装postgis为pg96类型
pgc install postgis23-pg96
安装postgis现在,安装完成后,您需要使用
pgc init pg96
或pgc init postgis23-pg96
等初始化下载的组件...检查你的守护进程是否正常运行输入
pgc status
启动您选择类型的版本守护程序,例如
pgc start pg95
停止您选择的版本守护进程类型
pgc stop pg95
安装还附带了一个ptsadmin3的LTS版本,适用于所有版本(不是brew版本的pgadmin3),这很方便
键入
pgc help
以获取更多选项让大象跳舞^^
希望这可以帮助 .
辣 .