CentOS7安装pgAgent遇Boost依赖及CMake版本兼容问题求助
解决CentOS 7编译pgAgent-4.0.0时的CMake版本兼容问题
这些错误的核心原因是CentOS 7默认自带的CMake版本过低(通常是2.8.x),而pgAgent-4.0.0的构建脚本依赖了CMake 3.12及以上版本才支持的特性——比如CMP0057策略、string(APPEND)语法、IN_LIST条件判断等。下面是具体的解决步骤:
步骤1:卸载系统旧版CMake
先移除系统自带的低版本CMake,避免冲突:
sudo yum remove cmake -y
步骤2:安装兼容的新版CMake
这里提供两种可靠的安装方式,选其一即可:
方式一:通过EPEL源安装cmake3(推荐,快速便捷)
CentOS 7的EPEL源提供了满足版本要求的cmake3包:
- 先启用EPEL源:
sudo yum install epel-release -y - 安装cmake3:
sudo yum install cmake3 -y - 为了方便使用,给cmake3创建软链接(可选,这样可以直接用
cmake命令):sudo ln -s /usr/bin/cmake3 /usr/bin/cmake - 验证版本,确认是3.x以上:
cmake --version
方式二:编译安装最新稳定版CMake(适合需要特定版本的场景)
如果需要更晚版本的CMake,可以手动编译:
- 安装编译依赖:
sudo yum install gcc gcc-c++ make wget -y - 下载CMake源码包(以3.26.4稳定版为例):
wget https://cmake.org/files/v3.26/cmake-3.26.4.tar.gz - 解压并进入源码目录:
tar zxf cmake-3.26.4.tar.gz && cd cmake-3.26.4 - 编译安装:
./bootstrap && make && sudo make install - 验证版本:
cmake --version
步骤3:重新编译pgAgent
回到pgAgent源码目录,先清理之前生成的CMake缓存文件,避免残留配置干扰:
rm -rf CMakeFiles CMakeCache.txt
然后重新执行你的cmake命令:
cmake -D PG_CONFIG_PATH:FILEPATH=/usr/pgsql/bin/pg_config -D STATIC_BUILD:BOOL=off .
最后完成编译安装:
make && sudo make install
额外注意事项
- 如果后续出现Boost相关的缺失错误,可以安装Boost开发包:
sudo yum install boost-devel -y - 确保
/usr/pgsql/bin路径正确,或者替换为你的PostgreSQL实际安装路径下的pg_config可执行文件路径。
内容的提问来源于stack exchange,提问作者user2266543




