1.下载所需资源
i.官网下载postgreSQL数据库,最好是10以上版本:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
ii.官网下载最新版pgAgent源码,目前最新代码为4.0:https://ftp.postgresql.org/pub/pgadmin/pgagent/pgAgent-4.0.0-Source.tar.gz
iii.下载boost库,这里是1.59的版本,1.64的也试过,没问题,但是在Linux环境中,1.59的更为稳定一点,因此最好选择1.59的版本:https://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
iv.官网下载最新版本cmake:https://cmake.org/download/
2.编译环境
i.Linux环境:centos7以上
ii.Windows环境:win7以上
3.编译步骤
i.安装postgresql数据库(x64),安装完成后将bin目录添加至系统环境变量
ii.编译boost库
//第一步:执行bootstrap
bootstrap.sh //Linux
bootstrap.bat //win 如果执行失败,就在VS开发人员命令提示符窗口中执行
//第二步:编译,指定编译64位
./b2 link=static address-model=64 //linux
b2.exe link=static address-model=64 //win
iii.安装cmake
Windows直接下载msi文件直接进行安装即可:
https://cmake.org/files/v3.12/cmake-3.12.3-win64-x64.msi
Linux需要进行编译安装:
https://cmake.org/files/v3.12/cmake-3.12.3.tar.gz
tar -xvf cmake-3.12.3.tar.gz
cd cmake-3.12.3
./bootstrap
gmake && gmake install
iv.解压pgAgent源码,进入源码目录
//第一步:修改cmake目录下的FindBoost.cmake文件,在有效代码开始的前一行,设置boost库的路径
//-----
set(BOOST_ROOT "/root/boost_1_59_0") //linux
set(BOOST_ROOT "F:/boost_1_59_0") //win
//-----
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW) # if IN_LIST
接下来就可以开始编译pgAgent了,有两个方式
第一种:在命令行进行编译,首先在pgAgent源码目录下新建build目录,然后进入build目录
a.Linux系统:
执行:cmake ..
cmake如果提示找不到boost,就修改build目录下的CMakeCache.txt文件,将BOOST_STATIC_BUILD:BOOL的值由NO改为YES,然后再次执行cmake。
如果提示找不到pg_config,就把pg数据库的安装bin目录加入PATH中,再次执行cmake。
接下来执行:make,如果报错:undefined reference to symbol 'pthread_setspecific@@GLIBC_2.2.5,则找到link.txt文件,在文件最后边加上-pthread
make执行完成后执行:make install即可完成安装
注意:安装过程中会显示拷贝了哪些文件,根据这些信息可制作独立安装包,Windows环境中也需要参考该过程,然后手动拷贝相关文件至指定目录下
b.Windows系统:
//Windows系统需要先在build目录下新建CMakeCache.txt文件,内容如下:
BOOST_STATIC_BUILD:BOOL=YES
//然后再执行cmake
cmake ..
//如果cmake执行失败,可打开VS的命令提示符窗口执行
//如果安装了多个版本的VS,可以使用-G参数来指定VS的版本,例如:cmake .. -G "Visual Studio 14 2015"
//但是要注意的是,如果cmake的时候指定了VS的版本,那么编译的时候就要选择对应的VS或msbuild工具进行编译
cmake完成后,可以在命令行执行msbuild pgagent.sln进行编译,也可以在VS(2010以上)中打开pgagent.sln,然后进行编译(Release x64),编译完成后参考Linux中的安装过程,将相应文件拷贝至指定目录下,即可使用pgagent了。
第二种:使用cmake-gui进行编译
这种方式只在Windows中进行了尝试,如果先在Linux中使用cmake-gui,可在网上自行查找cmake-gui的安装方法,不难。
该方法不用再新建CMakeCache.txt文件,但是需要添加“Add Entry”
然后依次点击Configure-->Generate-->Open Project,在VS中完成编译,然后拷贝相关文件即可使用pgagent。