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

Mac OSX下Homebrew安装的PostgreSQL 10.2中SPI扩展无法创建问题求助

解决Homebrew安装的PostgreSQL 10.2中SPI相关扩展缺失的问题

嘿,我来帮你捋清楚这个问题!你遇到的报错本质是根本不存在一个叫spi的单独扩展——SPI(Server Programming Interface)是PostgreSQL提供的一组服务器编程接口,它支撑了很多具体的contrib扩展,但本身并不是一个可以用CREATE EXTENSION spi;直接安装的扩展包。下面是具体的解决步骤:

1. 先明确你实际需要的SPI相关扩展

首先打开PostgreSQL客户端,执行这条命令查看所有可用的扩展:

SELECT * FROM pg_available_extensions;

你会看到一堆扩展,比如plpgsql(默认已启用,是最基础的SPI应用)、dblink(跨数据库连接)、pg_stat_statements(SQL统计)、pgcrypto(加密功能)等,这些都是依赖SPI接口实现的扩展。找到你真正需要的那个扩展名称,再进行安装。

2. 确保Homebrew安装的PostgreSQL包含contrib扩展

Homebrew的PostgreSQL包默认已经包含了大部分contrib扩展,但偶尔可能因为安装异常导致缺失。可以按以下步骤修复:

  • 先停止PostgreSQL服务:
    brew services stop postgresql@10
    
  • 重新安装PostgreSQL 10.2(会自动带上contrib扩展):
    brew reinstall postgresql@10
    
  • 重启服务:
    brew services start postgresql@10
    

之后再去/usr/local/share/postgresql/extension/目录,应该就能看到你需要的扩展对应的.control文件了。

3. 手动编译单个contrib扩展(如果以上方法无效)

如果某个特定的SPI相关扩展还是缺失,你可以手动从源码编译安装:

  1. 下载PostgreSQL 10.2的源码包(去PostgreSQL官方版本归档页面找对应版本的压缩包,解压到本地)
  2. 进入源码的contrib目录,找到你需要的扩展文件夹(比如dblink)
  3. 执行编译命令(注意替换pg_config的路径为你Homebrew安装的PostgreSQL 10的路径):
    make PG_CONFIG=/usr/local/opt/postgresql@10/bin/pg_config
    
  4. 安装编译好的扩展:
    make install
    
  5. 回到PostgreSQL客户端,执行创建扩展的命令(以dblink为例):
    CREATE EXTENSION dblink;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:14:55