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

Ubuntu24.04中PostgreSQL启用pgvector遇vector.control文件缺失错误

解决Ubuntu 24.04下PostgreSQL+pgvector扩展文件缺失问题

问题根源

错误提示找不到/usr/share/postgresql/14/extension/vector.control,且pg_available_extensions列表中没有pgvector,核心原因是pgvector未安装到当前正在使用的PostgreSQL版本对应的目录中。Ubuntu 24.04默认预装的PostgreSQL版本是16,若你安装的pgvector适配的是16版本,但运行的数据库实例是14版本,就会触发该错误。

修复步骤

1. 确认当前PostgreSQL版本

先明确你实际使用的PostgreSQL版本:

psql --version

或进入数据库后执行:

SELECT version();

2. 重装对应版本的pgvector

如果你的PostgreSQL是16版本(Ubuntu24.04默认),按以下操作执行:

  • 卸载可能装错的版本(例如适配14的pgvector):
sudo apt remove --purge postgresql-14-pgvector
  • 添加pgvector官方源(未添加过的话):
sudo apt install curl ca-certificates
curl https://packages.timescale.com/repos/apt/ubuntu/timescale.pgp | sudo gpg --dearmor -o /usr/share/keyrings/timescale-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/timescale-keyring.gpg] https://packages.timescale.com/pgvector/ubuntu/ jammy main" | sudo tee /etc/apt/sources.list.d/pgvector.list
sudo apt update
  • 安装适配当前PostgreSQL版本的pgvector,以16版本为例:
sudo apt install postgresql-16-pgvector

3. 验证安装结果

进入数据库执行:

SELECT * FROM pg_available_extensions WHERE name = 'vector';

能查询到结果说明安装正确,再执行创建扩展的命令:

CREATE EXTENSION IF NOT EXISTS vector;

此时应无报错。

4. 检查Jupyter的数据库连接配置

若机器上同时安装了多个PostgreSQL版本,需确保Jupyter代码连接的是已安装pgvector的版本。不同版本默认端口不同(例如14版本默认5432,16版本可能为5433),可修改连接代码指定端口:

conn = await psycopg.AsyncConnection.connect(
    dbname='pgvector_example', 
    autocommit=True,
    port=5433  # 替换为对应版本的实际端口
)

额外排查项

  • 若你是通过源码编译安装pgvector,编译时需指定对应PostgreSQL的配置路径,例如:
make PG_CONFIG=/usr/lib/postgresql/16/bin/pg_config
sudo make install PG_CONFIG=/usr/lib/postgresql/16/bin/pg_config
  • 安装完成后重启PostgreSQL服务:
sudo systemctl restart postgresql

内容的提问来源于stack exchange,提问作者Ayush J.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 13:55:04