1.在线安装postgis(yum安装)
1. 查找安装包
yum search postgis
2.进行安装
yum install -y postgis
3.向数据库中添加扩展
// 开启pgsql的插件
postgres=# create extension postgis;
postgres=# create extension postgis_topology;
postgres=# create extension fuzzystrmatch;
postgres=# create extension address_standardizer;
postgres=# create extension address_standardizer_data_us;
postgres=# create extension postgis_tiger_geocoder;
2. 离线安装
参考链接:
blog.csdn.net/massddss/ar…
1、进入到gisfile文件夹:cd /var/gisfile
把postgis相关包文件上传进来
2、先安装bzip,不然会报以下错误
进入/var/gisfile文件夹:cd /var/gisfile
安装命令:rpm -ivh bzip2-1.0.6-13.el7.x86_64.rpm
3、(上面已经装过可以省略)安装gcc,g++编译工具,不然安装报以下错误
configure: error: no acceptable C compiler found in $PATH
进入/var/gisfile文件夹:cd /var/gisfile
解压gccpackages.tar.gz到opt文件夹:tar -zxvf gccpackages.tar.gz -C /opt/
进入opt文件夹:cd /opt/gccpackages
执行安装命令:rpm -Uvh *.rpm --nodeps --force
4、安装gdal扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf gdal-2.0.0.tar.gz -C /opt
进入到解压后目录:cd /opt/gdal-2.0.0
将gdal安装到/usr/local/gdal-2.0.0目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/gdal-2.0.0
编译:make
安装:make install
5、安装geos扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -jxf geos-3.6.3.tar.bz2 -C /opt
进入到解压后目录:cd /opt/geos-3.6.3/
将geos安装到/usr/local/geos-3.6.3目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/geos-3.6.3
编译:make
安装:make install
6、安装libxml2扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf libxml2-2.9.1.tar.gz -C /opt
进入到解压后目录:cd /opt/libxml2-2.9.1/
将libxml2安装到/usr/local/libxml2-2.7.2目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/libxml2-2.9.1 --with-python=no
编译:make
安装:make install
7、安装proj扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf proj-5.2.0.tar.gz -C /opt
进入到解压后目录:cd /opt/proj-5.2.0
将proj安装到/usr/local/proj-5.2.0目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/proj-5.2.0
编译:make
安装:make install
8、安装json-c扩展
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar xzf json-c-json-c-0.13.1-20180305.tar.gz -C /opt
进入到解压后目录:cd /opt/json-c-json-c-0.13.1-20180305
将json-0.12安装到/usr/local/json-0.12目录下 注: (这个目录不要和上传目录一样,否则会报错):./configure --prefix=/usr/local/json-0.12
编译:make
安装:make install
9、安装postgis
需要安装perl依赖
进入/var/gisfile文件夹:cd /var/gisfile
解文件perl-5.32.1.tar.gz:tar xzf perl-5.32.1.tar.gz
进入到解压后文件夹:cd /var/gisfile/perl-5.32.1
执行命令:./Configure -des -Dprefix=/usr/local/perl
依次执行命令:make make test make install
查看是否安装成功:perl –v
安装postgis
进入/var/gisfile文件夹:cd /var/gisfile
解压文件:tar -zxvf postgis-2.5.1.tar.gz -C /opt
进入到解压后目录:cd /opt/postgis-2.5.1
分行复制,不要复制 \ 不然执行会报错,复制到linux中手动加上\ ,\后面不要有空格
执行命令:
./configure --prefix=/usr/local/postgis \
--with-pgconfig=/usr/local/postgresql/bin/pg_config \
--with-xml2config=/usr/local/libxml2-2.9.1/bin/xml2-config \
--with-geosconfig=/usr/local/geos-3.6.3/bin/geos-config \
--with-gdalconfig=/usr/local/gdal-2.0.0/bin/gdal-config \
--with-projdir=/usr/local/proj-5.2.0
如果出现:configure: error: could not find GDAL错误
执行命令:vi /etc/ld.so.conf
在里面添加:
/usr/local/lib
/usr/local/postgresql/lib
然后在执行上面的步骤
编译:make
安装:make install
10、 安装postgis拓展
切换到postgres用户:su postgres
执行:psql
创建数据库:create database postgis;
切换到postgis数据库:\c postgis
执行命令:create extension postgis;
如果报错:ERROR: could not load library "/usr/local/postgresql/lib/postgis-2.5.so": libgeos_c.so.1: 无法打开共享对象文件: 没有那个文件或目录
执行命令(最后面的是错误标红的文件):ldd /usr/local/postgresql/lib/postgis-2.5.so
缺少so文件,直接把/usr/local对应的安装文件里面复制到postgresql的lib文件夹下
执行命令:
执行命令:cp /usr/local/geos-3.6.3/lib/libgeos_c.so.1 /usr/local/postgresql/lib/
执行命令:cp /usr/local/proj-5.2.0/lib/libproj.so.13 /usr/local/postgresql/lib/
执行命令:cp /usr/local/libxml2-2.9.1/lib/libxml2.so.2 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/postgis-2.5.so
再切换到postgis数据库执行:create extension postgis;
报错:could not load library "/usr/local/postgresql/lib/rtpostgis-2.5.so": libgdal.so.20: 无法打开共享对象文件: 没有那个文件或目录
执行命令(最后面的是错误标红的文件):ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
执行命令:cp /usr/local/gdal-2.0.0/lib/libgdal.so.20 /usr/local/postgresql/lib/
再次执行:ldd /usr/local/postgresql/lib/rtpostgis-2.5.so
如果创建拓展报错:ERROR: could not load library "/usr/local/postgresql/lib/rtpostgis-2.0.so":libpq.so.5: cannot open shared object file: No such file or directory
把postgresql安装包里libpq.so.5的添加到64位系统中:
ln -s /usr/local/postgresql-9.5.7/src/interfaces/libpq/libpq.so.5 /usr/lib64/libpq.so.5
再次切换到postgis数据库执行:create extension postgis;
为了更好的使用postgis功能,决定把所有的扩展都装了:create extension postgis_topology;
测试postgis是否成功,打开navicat打开postgis数据库
执行sql:select st_buffer(st_geometryfromtext ('POINT (0 0)',0),100 )
如果有结果说明已完成!