首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Homebrew将Postgis安装到Postgres@9.6的Keg安装?

如何使用Homebrew将Postgis安装到Postgres@9.6的Keg安装?
EN

Stack Overflow用户
提问于 2017-11-02 23:43:16
回答 3查看 5.3K关注 0票数 13

我已经通过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?类似,但使用的是后来的keg公式

EN

回答 3

Stack Overflow用户

发布于 2018-01-04 21:28:41

经过多次组合,我终于做到了。简而言之,解决方案是安装原始软件包postgres的旧版本,切换到它,然后安装旧版本的postgis

安装postgres

1/安装当前版本的postgres (10.1 )

代码语言:javascript
复制
brew install postgres

2/使用旧的公式安装旧版本的postgres。可以在磁带存储库(/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/)上使用githubgit log找到正确的链接。

代码语言:javascript
复制
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgresql.rb

这将安装版本9.6.5 ( 10.x系列之前的最后一个版本)。

3/切换到它,因此链接默认为postgres 9.6

代码语言:javascript
复制
brew switch postgres 9.6.5

安装postgis

4/安装旧版本的postgis (2.3)。这是使用相同的sha版本的公式,所以一切都是正确链接的(使用当前的postgis将期望postgresql 10,因此在初始化扩展时将导致版本不匹配)。

代码语言:javascript
复制
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgis.rb

使用它们

5/如果需要,初始化DB

代码语言:javascript
复制
initdb /usr/local/var/postgres

6/创建和使用数据库

代码语言:javascript
复制
createdb mydb
psql mydb
mydb=# CREATE EXTENSION postgis;
票数 10
EN

Stack Overflow用户

发布于 2017-11-03 22:46:47

通过安装PostgreSQL包管理器PEX,我可以为PostgreSQL9.6的keg版本安装Postgis并使用CREATE EXTENSION postgis;

这不是一个自制的解决方案,但经过大量的搜索,它最终允许我使用Postgis。

票数 7
EN

Stack Overflow用户

发布于 2021-05-21 15:27:51

我遇到了类似的问题,对我起作用的是遵循https://github.com/CloverHealth/homebrew-tap的说明,它在精神上类似于@Antwan的解决方案,但需要更多的清理步骤,而且它的版本也稍晚一些:postgresql9.6.10和postgis2.5。

我的步骤与CloverHealth略有不同:我的brew版本不再支持brew switch postgresql 9.6.10,我先尝试了brew link postgresql@9.6.10,然后尝试了brew link postgresql@9.6,但两个版本都提供了

代码语言:javascript
复制
Error: no such keg

尝试brew search postgresql时,cloverhealth配方旁边显示了一个绿色的小复选标记,因此我尝试了brew link cloverhealth/tap/postgresql,并得到

代码语言:javascript
复制
Warning: Already linked: /usr/local/Cellar/postgresql/9.6.10

所以,好吧,它已经被链接了。除此之外,我的步骤与CloverHealth页面中描述的步骤相同,现在我可以重新启动并运行了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47079305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档