Linux 20.04下用PostgreSQL14编译Citus源码时,编译器仍指向已卸载的PG16报错
解决编译Citus时编译器仍指向已卸载的PostgreSQL 16目录问题
清理PostgreSQL 16残留文件
先彻底删除16版本的头文件目录,避免编译器误找:sudo rm -rf /usr/include/postgresql/16检查
pg_config的指向(这是编译PostgreSQL扩展的关键工具):which pg_config如果输出不是PostgreSQL 14的路径(通常为
/usr/lib/postgresql/14/bin/pg_config),直接删除旧的pg_config,并创建14版本的软链接:sudo rm -f /usr/bin/pg_config sudo ln -sf /usr/lib/postgresql/14/bin/pg_config /usr/bin/pg_config编译时强制指定PostgreSQL 14路径
编译Citus时,直接通过PG_CONFIG变量明确指定14版本的配置工具路径,绕过系统默认查找逻辑:./configure PG_CONFIG=/usr/lib/postgresql/14/bin/pg_config make make install修正PKG_CONFIG_PATH环境变量
检查并更新PKG_CONFIG_PATH,确保只包含PostgreSQL 14的配置路径:echo $PKG_CONFIG_PATH # 如果输出包含16的路径,执行以下命令替换 export PKG_CONFIG_PATH=/usr/lib/postgresql/14/lib/pkgconfig:$PKG_CONFIG_PATH清理编译缓存
如果之前尝试过编译,先清理旧的配置和编译缓存,避免残留影响:make clean rm -rf config.log config.status之后重新执行带
PG_CONFIG参数的configure和编译命令。
内容的提问来源于stack exchange,提问作者Abhi
相关产品推荐
相关产品推荐

