You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决macOS M2上PostgreSQL 13无法找到postgis.control文件的问题?

解决PostgreSQL@13无法找到PostGIS扩展文件的问题

问题背景

在macOS 13.5.2(Apple M2)环境下,通过brew安装postgresql@13和postgis后,执行create extension postgis;或用pgAdmin4恢复数据库时,出现以下错误:

ERROR: could not open extension control file "/opt/homebrew/opt/postgresql@13/share/postgresql@13/extension/postgis.control": No such file or directory

环境信息

  • which psql输出:/opt/homebrew/opt/postgresql@13/bin/psql
  • which pg_config输出:/opt/homebrew/opt/postgresql@13/bin/pg_config
  • postgis版本:3.3.4_1
  • postgresql@13版本:13.12

问题原因

brew默认安装的PostGIS 3.3.4适配最新版PostgreSQL(如14+),与postgresql@13版本不兼容,导致PostgreSQL无法在自身扩展目录中找到PostGIS的控制文件。

解决方案

方案一:创建软链接(快速临时解决)

  • 查看PostGIS扩展文件位置:
    ls $(brew --prefix postgis)/share/postgresql/extension/
    
  • 将PostGIS扩展文件软链接到postgresql@13的扩展目录:
    ln -s $(brew --prefix postgis)/share/postgresql/extension/postgis* /opt/homebrew/opt/postgresql@13/share/postgresql@13/extension/
    
  • 重启PostgreSQL服务:
    brew services restart postgresql@13
    
  • 验证扩展安装:
    psql -U postgres -c "create extension postgis;"
    

方案二:安装适配版本的PostGIS(规范解决)

  • 卸载当前PostGIS:
    brew uninstall postgis
    
  • 安装与postgresql@13兼容的PostGIS版本(PostGIS 3.2系列适配PostgreSQL 13):
    brew install postgis@3.2
    
    若brew无该版本公式,尝试从源码编译并指定依赖:
    brew install postgis --build-from-source --with-postgresql@13
    
  • 重启PostgreSQL服务:
    brew services restart postgresql@13
    
  • 验证扩展安装:
    psql -U postgres -c "create extension postgis;"
    

内容的提问来源于stack exchange,提问作者0x55b1E06FF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:55:07