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。