CentOS7 PostGreSQL 11編譯PostGIS 3.0
目前使用PostGreSQL 11.1 + PostGIS 2.5,打算更新到PG 12,發現PG12不支援PostGIS 2.5,需要更新到PostGIS3.0。考慮到後期資料遷移,是以決定先把現有環境的PostGIS從2.5更新到3.0.1。經過一番折騰,最終更新成功,記錄下更新過程。
PostGIS 3.0.1依賴PROJ、DGAL、GEOS、JSON-C,這裡除了JSON-C使用了CentOS自帶的,其餘的一股腦兒都下載下傳了最新版:
- proj 7.0.0
- geos 3.8.1
- gdal 3.0.4
編譯安裝proj 7.0.0
proj 7.0.0需要sqlite 3.11及以上版本,而系統自帶的是3.7.17版本,需要更新,從sqlite的官網下載下傳最新的3310101版,這個直接configure、make、make install即可。
proj 7.0.0稍微麻煩點兒,需要指定最安裝的sqlite的編譯環境:
SQLITE3_CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib /usr/local/lib/libsqlite3.so" ./configure
make
make install
編譯安裝geos3.8.1
./configure
make
make install
編譯安裝gdal 3.0.4
./configure --with-proj=/usr/local
make
make install
編譯安裝PostGIS 3.0.1
PROJ_CFLAGS="-I/usr/local/include/" PROJ_LIBS="-lproj -lsqlite3 -L/usr/local/lib /usr/local/lib/libproj.so" SQLITE3_CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib /usr/local/lib/libsqlite3.so /usr/local/lib/libproj.so" ./configure --with-pgconfig=/usr/local/pgsql11/bin/pg_config
make
make install
這個最麻煩,PostGIS依賴PROJ,PROJ依賴sqlite,是以編譯參數比較多。到此,已經成功編譯PostGIS3.0.1。