How to install Postgis to a Keg installation of [email protected] using Homebrew?
我通过自制安装了[email protected]和Postgis。但是,通过homebrew安装postgis将在10安装最新版本的postgresql作为依赖项,并将postgresql固定在9.6.5阻止通过homebrew安装postgis。
执行'create extension postgis;'返回:
ERROR: could not open extension control file"/usr/local/Cellar/[email protected]/9.6.5/share/[email protected]/extension/postgis.control": No such file or directory
我还尝试卸载PostgreSQL(第10页),并编辑Postgis公式以依赖[email protected]而不是PostgreSQL。
这类似于如何使用自制将PostGIS安装到[email protected]的KEG安装?但是用了后来的啤酒配方
- "6个小时前问过"——看到这个我真的大笑起来。我也有同样的问题,积极地研究它。(是的,我知道这不是一个有帮助的评论…)
- 另一个可怜的灵魂也有同样的问题。抱歉,我发邮件后才看到你的。另一种可能的方法可以在这里描述,但我仍然犹豫尝试。
经过多次组合,我终于做到了。简而言之,解决方案是安装原始包postgres的旧版本,切换到它,然后安装旧版本的postgis。
安装Postgres
1/安装当前版本的postgres(说10.1)
2/使用旧公式安装旧版本的Postgres。在tap repo(/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/上使用github或git log可以找到正确的链接。
1
| brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgresql.rb |
这将安装9.6.5版(10.x系列之前的最后一个版本)。
3/切换到它,使链接默认为Postgres 9.6
1
| brew switch postgres 9.6.5 |
安装后地理信息系统
4/安装旧版本的PostGIS(2.3)。这是使用相同的sha版本的公式,因此所有内容都正确链接(使用当前的postgis将需要postgresql 10,因此在初始化扩展时,它最终会导致版本不匹配)。
1
| brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgis.rb |
使用它们
5/如果需要,初始化数据库
1
| initdb /usr/LOCAL/var/postgres |
6/创建和使用数据库
1 2 3
| createdb mydb
psql mydb
mydb=# CREATE EXTENSION postgis; |
- 我不得不在第二步和第三步之间离开。
- 谢谢@antwan,大力帮助。我认为在某种程度上/某种程度上,自制啤酒有一个9.6.8版本,但我认为这与基于[email protected]的安装有关,而这(其他人也发现)不适用于brew switch postgresql 9.6.8。把这句话留给我未来的自己,一旦我回来。
- 似乎安装10.1也会以新格式初始化数据库。因此,我不得不在切换到9.6之后移除/usr/local/var/postgres并创建initdb,以使其正常工作(由您自己承担风险)。如果您在那里有东西,您将丢失所有数据)
安装Pex后,PostgreSQL的包管理器允许我为[email protected]的keg版本安装Postgis,并使用CREATE EXTENSION postgis;。
这不是一个自制的解决方案,但经过大量的搜索,它最终允许我使用PostGIS。
- 工作出色。对于未来的搜索者来说,一个警告是:不要费心尝试brew安装pex,它有同样的问题,它将为您安装PostgreSQL 10(至少现在)。
- 为我工作。谢谢
你好< P>我遇到了同样的问题:PGSQL版本的多个实现,包括遗留版本。所以经过一点研究,我想分享我的解决方案。
问题:
我正在与10.11 El Capitan合作开发MacBook Pro 2013。我是地理信息系统的开发人员和广泛的自制用户。出于兼容性的原因,我没有固定PostgreSQL包。因此,该包与其他包一起更新到了PostgreSQL版本10.5。这导致我无法使用PostgreSQL 9.4版。最聪明的解决方案是使用brew switch postgresql 9.4.19。除了在从osgeo/osgeo4mac编译postgis 2.5.0时,它会破坏(寻找)postgresql二进制文件夹来安装symlinked(或not)扩展。这里又是另一个兼容性问题。可以对自制文件进行一些修补,并手动传输文件。这是不好的建议…包管理器(自制)需要保持一个连贯的生态系统来提供一个稳定的工作空间。
建议的解决方案:
请到Bigsql下载所选版本的dmg
在文件系统中安装所需的软件
在安装文件夹中,您可以找到一个名为pg9xx的目录,该目录是版本号(例如,PG95 for PostgreSQL 9.5等等……
在这个文件夹中,您可以找到一个名为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,您将得到已安装软件包的列表。你会看到你下载的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。
安装还附带了一个pgadmin3的LTS版本,它可以与所有版本(而不是pgadmin3的BREW版本)一起工作,这非常方便
更多选项请输入pgc help
让大象跳舞^^
希望这有帮助。
辛辣的。