天天看點

pgAgent編譯總結

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環境中也需要參考該過程,然後手動拷貝相關檔案至指定目錄下

pgAgent編譯總結

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”

pgAgent編譯總結

然後依次點選Configure-->Generate-->Open Project,在VS中完成編譯,然後拷貝相關檔案即可使用pgagent。

pgAgent編譯總結