首页 文章

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

提问于
浏览
5

我已经通过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 回答

  • 4

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

    安装postgres

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

    brew install postgres
    

    2 /使用旧公式安装旧版本的postgres . 可以使用Tap repo( /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/ )上的githubgit log 找到正确的链接 .

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgresql.rb
    

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

    3 /切换到它所以链接默认为postgres 9.6

    brew switch postgres 9.6.5
    

    安装postgis

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

    brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/d014fa223f77bee4b4097c5e80faa0954e28182f/Formula/postgis.rb
    

    使用它们

    5 /如果需要,初始化DB

    initdb /usr/local/var/postgres
    

    6 /创建和使用您的数据库

    createdb mydb
    psql mydb
    mydb=# CREATE EXTENSION postgis;
    
  • 3

    安装PEX,Postgresql的包管理器允许我为Postgresql@9.6的桶版安装Postgis并使用 CREATE EXTENSION postgis;

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

  • 1

    你好

    我遇到了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 pg96pgc init postgis23-pg96 等初始化下载的组件...

    • 检查你的守护进程是否正常运行输入 pgc status

    • 启动您选择类型的版本守护程序,例如 pgc start pg95

    • 停止您选择的版本守护进程类型 pgc stop pg95

    • 安装还附带了一个ptsadmin3的LTS版本,适用于所有版本(不是brew版本的pgadmin3),这很方便

    • 键入 pgc help 以获取更多选项

    让大象跳舞^^

    希望这可以帮助 .

    辣 .

相关问题