关于postgresql:如何使用Homebrew将Postgis安装到Postgres @9.6的Keg安装中?

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安装?但是用了后来的啤酒配方


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

安装Postgres

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

1
brew install postgres

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;


安装Pex后,PostgreSQL的包管理器允许我为[email protected]的keg版本安装Postgis,并使用CREATE EXTENSION postgis;

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


你好< 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 pg96pgc init postgis23-pg96等初始化下载的组件…
  • 要检查您的守护进程是否正确运行,请键入pgc status
  • 启动所选类型的版本守护程序,例如pgc start pg95
  • 要停止您选择的版本守护程序,请键入pgc stop pg95
  • 安装还附带了一个pgadmin3的LTS版本,它可以与所有版本(而不是pgadmin3的BREW版本)一起工作,这非常方便
  • 更多选项请输入pgc help
  • 让大象跳舞^^

    希望这有帮助。

    辛辣的。