重要提示 :本指南基于 PostgreSQL 16.1 和 OpenCloudOS 系统环境,已解决
pg_config路径问题
📌 前置条件
以下路径都需要替换为自己的包所在路径、以下以我的为例!
- 已安装 PostgreSQL 16.1 (路径:
/www/server/pgsql) - 确认
pg_config存在于/www/server/pgsql/bin/pg_config - 已安装 PostgreSQL 开发包(
postgresql16-devel)
✅ 安装步骤(详细流程)
步骤 1:确认 PostgreSQL 安装路径
bash
[root@VM-4-5-opencloudos ~]# ls -l /www/server/pgsql/bin/pg_config
# 输出的位置
-rwxr-xr-x 1 postgres postgres 42352 Dec 29 19:28 /www/server/pgsql/bin/pg_config

步骤 2:修复环境变量配置(关键!)
错误原因 :
PATH未正确包含 PostgreSQL bin 目录
如果没有环境变量的会有以下错误
bash
[root@VM-4-5-opencloudos pgvector]# make
make: pg_config: No such file or directory
make: Nothing to be done for 'all'.
修正 .bash_profile
bash
# 打开配置文件
vi ~/.bash_profile
替换为以下正确配置 (删除所有多余空格)
bash
export PG_HOME=/www/server/pgsql
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/www/server/pgsql/lib # 修正:移除空格
export PGDATA=/www/server/pgsql/data
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PG_HOME/bin
export PATH
alias psql='/www/server/pgsql/bin/psql'
重新加载配置
bash
source ~/.bash_profile
验证 PATH 配置
bash
echo $PATH | grep /www/server/pgsql/bin

检查 pg_config 是否可找到
bash
which pg_config

步骤 3:下载 pgvector 源码
bash
cd /tmp
git clone --branch v0.8.1 https://github.com/pgvector/pgvector.git
步骤 4:编译安装 pgvector
bash
# 编译安装(自动使用正确的 pg_config)
make
make install


步骤 5:验证安装
bash
# 连接数据库
psql -U postgres

⚠️ 常见问题解决
| 问题现象 | 解决方案 |
|---|---|
make: pg_config: No such file or directory |
1. 修正 .bash_profile(移除空格) 2. source ~/.bash_profile 3. 验证 which pg_config |
pgvector 安装后无法加载 |
1. 确保 PostgreSQL 服务重启 2. 检查 pg_hba.conf 是否允许本地连接 |
| 版本不匹配错误 | 1. 确认 PostgreSQL 和 pgvector 版本兼容 2. 使用与 PostgreSQL 版本匹配的 pgvector 版本(如 PostgreSQL 16 → pgvector 0.8.1+) |
🔧 配置文件参考(重要)
1. .bash_profile 修正后内容
bash
# PostgreSQL 环境配置
export PG_HOME=/www/server/pgsql
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/www/server/pgsql/lib
export PGDATA=/www/server/pgsql/data
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$PG_HOME/bin
export PATH
alias psql='/www/server/pgsql/bin/psql'
重要提醒 :安装后必须重启 PostgreSQL 服务,否则无法加载新扩展!
本指南已通过 OpenCloudOS 环境验证,可确保 pgvector 在 PostgreSQL 16.1 上成功安装。如遇问题,请优先检查 which pg_config 是否返回正确路径。