最佳搭配:https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
我将扩展放在pg的安装目录下 home/postgres/pgsql/other_lib/包名
1、Proj前置安装【Sqlite有版本要求】
注意:请确保sqlite3 版本大于3.11,如果高于此版本跳过
sqlite-autoconf-3390200.tar
1、源码解压并且进入目录【不要删除后面扩展插件会用到,如果删除还要重新./configure】
2、./configure --prefix=/usr/local
3、make && make install
4、mv /usr/bin/sqlite3 /usr/bin/sqlite3_old【不要以前的】
5、ls -l /usr/local/lib/*sqlite*
6、ls -l /usr/local/include/*sqlite*
7、ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
8、echo "/usr/local/bin" > /etc/ld.so.conf.d/sqlite3.conf 【加载新安装的】
9、echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf 【加载新安装的】
10、export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/" 【配置】
11、ldconfig【重新加载】
2、Proj安装
Proj投影库用于在PostGIS中提供坐标投影支持。
【sqlite3、libtiff、libcurl-devel 这些包不确定】
1、解压安装 proj-8.0.0.tar.gz文件
2、tar -zxvf proj-8.0.0.tar.gz
3、cd proj-8.0.0
4、./configure --prefix=/home/postgres/pgsql/other_lib/proj8 --without-curl
5、make && make install
3、geos前置安装【cmake有版本要求】
cmake-3.23.3-linux-x86_64.tar.gz
- tar -zxvf cmake-3.23.3-linux-x86_64.tar.gz
- Cd cmake-3.23.3-linux-x86_64
- ln -s bin/cmake /usr/bin/cmake 创建软链接
- cmake -version 测试
- geos正式安装
Geos几何图形库,用于支持PostGIS中的几何信息处理,分析等功能,野可以直接认为geos是一个几何算法库
- tar -jxvf geos-3.10.2.tar.bz2
- cd geos-3.10.2
- ./configure --prefix=/home/postgres/pgsql/other_lib/geos3
- make && make install
- libxml前置安装
1、在线yum -y install python-devel
2、离线 python-devel-2.7.5.rpm
3、yum update python
4、yum -y update
5、yum -y install yum-utils
6、yum -y groupinstall development
7、yum update python 【可能python版本尤其问题请更新】
6、libxml安装
当前用于某些导入功能(st_geomfromGML和st_geomFromKML)
- tar -zxvf libxml2-2.9.12.tar.gz
- cd libxml2-2.9.12
- ./configure --prefix=/home/postgres/pgsql/other_lib/libxml2
- make && make install
- Json-c安装-旧版本 【14之前】
当前用于通过功能ST_GeomFromGeoJson导入GeoJson数据
- tar -zxvf json-c-0.13.1-20180305.tar.gz
- cd json-c-json-c-0.13.1-20180305/
- ./configure --prefix=/home/postgres/pgsql/other_lib/json-c
- make && make install
- Json-c安装-新版本【待续】
- Gdal安装
用于PostGIS对栅格数据的支持
注意:这里对proj有版本要求【本机自带、后期安装】,导致不识别,所以编译请指定你上面安装的proj的安装路径
- tar -zxvf gdal-3.5.0rc1.tar.gz
- cd gdal-3.5.0
- ./configure --prefix=/home/postgres/pgsql/other_lib/gdal --with-proj=/home/postgres/pgsql/other_lib/proj8 此处指定proj安装路
- make && make install
- postgis 安装
- 配置etc/ld.so.conf 指向前面安装目录下的lib
include /home/postgres/pgsql/lib
include /home/postgres/pgsql/other_lib/gdal/lib
include /home/postgres/pgsql/other_lib/geos3/lib64
include /home/postgres/pgsql/other_lib/json-c/lib
include /home/postgres/pgsql/other_lib/libxml2/lib
include /home/postgres/pgsql/other_lib/proj8/lib
echo "/home/postgres/pgsql/lib" > /etc/ld.so.conf.d/postgresql.conf
echo "/home/postgres/pgsql/other_lib/gdal/lib">/etc/ld.so.conf.d/gdal.conf
echo "/home/postgres/pgsql/other_lib/proj8/lib" > /etc/ld.so.conf.d/proj.conf
echo "/home/postgres/pgsql/other_lib/geos3/lib64" > /etc/ld.so.conf.d/geos.conf
echo "/home/postgres/pgsql/other_lib/libxml2/lib" > /etc/ld.so.conf.d/libxml2.conf
echo "/home/postgres/pgsql/other_lib/json-c/lib" >/etc/ld.so.conf.d/json-c.conf
- ldconfig
- tar -zxvf postgis-3.2.1.tar.gz
- ./configure --with-pgconfig=/home/postgres/pgsql/bin/pg_config --with-geosconfig=/home/postgres/pgsql/other_lib/geos3/bin/geos-config --with-gdalconfig=/home/postgres/pgsql/other_lib/gdal/bin/gdal-config --with-projdir=/home/postgres/pgsql/other_lib/proj8 --with-jsondir=/home/postgres/pgsql/other_lib/json-c --with-xml2config=/home/postgres/pgsql/other_lib/libxml2/bin/xml2-config --without-protobuf 忽略这个配置如果不忽略会报错
- Cd /home/postgres/pgsql/bin
- 执行 ./psql
- 开始执行扩展语句
A、CREATE EXTENSION postgis;
B、CREATE EXTENSION fuzzystrmatch;
注意:这里可能会出现错误 类似fuzzystrmatch 找不到
请进入postgresql 源码下
/home/postgres/postgres+gis相关14/postgresql-14.2/contrib/fuzzystrmatch
执行 make && make install
若果源码被删除请重新解压并./configure
C、CREATE EXTENSION postgis_tiger_geocoder;
D、CREATE EXTENSION address_standardizer;
E、CREATE EXTENSION postgis_topology;
注意:proj、json-c 指向的都是生成的安装目录,其余的都是bin下的配置文件
注意:新建数据库 要执行上面五条语句才能导入shap
11、protobuf安装 未完成验证
1、wget https://github.com/protocolbuffers/protobuf/releases/download/v2.6.1/protobuf-2.6.1.tar.gz
2、tar zxvf protobuf-2.6.1.tar.gz
3、cd protobuf-2.6.1
4、./configure --prefix=/usr/local/protobuf
5、make && make install
export PATH=/usr/local/protobuf/bin:$PATH