安装PostGIS-2.1.8

版本:

proj-4.8.0.tar.gz

geos-3.4.2.tar.bz2

gdal-2.0.1.tar.gz

PostGIS-2.1.82.1.8


前提条件:

安装PostGIS之前必须先安装proj,geos,gdal.


安装proj4

[root@Darren2 tools]# wget http://download.osgeo.org/proj/proj-4.8.0.tar.gz

[root@Darren2 tools]# tar xf proj-4.8.0.tar.gz

[root@Darren2 tools]# cd proj-4.8.0

[root@Darren2 proj-4.8.0]# ./configure --prefix=/usr/local/pgsql/plugin/proj

[root@Darren2 proj-4.8.0]# make && make install

Waiting for about 1min


#配置和加载动态链接库:

[root@Darren2 proj-4.8.0]# vim /etc/ld.so.conf.d/proj-4.8.0.conf

/usr/local/pgsql/plugin/proj/lib

[root@Darren2 proj-4.8.0]# ldconfig


安装geos

[root@Darren2 tools]# wget http://download.osgeo.org/geos/geos-3.4.2.tar.bz2

[root@Darren2 tools]# bzip2 -d geos-3.4.2.tar.bz2

[root@Darren2 tools]# tar xf geos-3.4.2.tar

[root@Darren2 geos-3.4.2]# ./configure --prefix=/usr/local/pgsql/plugin/geos

......

Swig: false

Python bindings: false

Ruby bindings: false

PHP bindings: false

#这些可忽略


[root@Darren2 geos-3.4.2]# make && make install

Waiting for about 5min


#配置和加载动态链接库:

[root@Darren2 geos-3.4.2]# vim /etc/ld.so.conf.d/geos-3.4.2.conf

/usr/local/pgsql/plugin/geos/lib

[root@Darren2 geos-3.4.2]# ldconfig


安装gdal

[root@Darren2 tools]# wget http://download.osgeo.org/gdal/2.0.1/gdal-2.0.1.tar.gz

[root@Darren2 tools]# tar xf gdal-2.0.1.tar.gz

[root@Darren2 tools]# cd gdal-2.0.1

[root@Darren2 gdal-2.0.1]# ./configure --prefix=/usr/local/pgsql/plugin/gdal

[root@Darren2 gdal-2.0.1]#make && make install

Waiting for about 15min


#配置和加载动态链接库:

[root@Darren2 gdal-2.0.1]# vim /etc/ld.so.conf.d/gdal-2.0.1.conf

/usr/local/pgsql/plugin/gdal/lib

[root@Darren2 gdal-2.0.1]# ldconfig


安装PostGIS

[root@Darren2 tools]# wget http://download.osgeo.org/postgis/source/postgis-2.1.8.tar.gz

[root@Darren2 tools]# tar xf postgis-2.1.8.tar.gz

./configure --help参数:

  --prefix=PREFIX         install architecture-independent files in PREFIX [/usr/local]

  --with-pgconfig=FILE    specify an alternative pg_config file

  --with-geosconfig=FILE  specify an alternative geos-config file

  --with-projdir=PATH     specify the PROJ.4 installation directory

  --without-raster        Disable the raster extension


[root@Darren2 postgis-2.1.8]# ./configure --prefix=/usr/local/pgsql/plugin/postgis \

--with-pgconfig=/usr/local/pgsql/bin/pg_config \

--with-geosconfig=/usr/local/pgsql/plugin/geos/bin/geos-config \

--with-gdalconfig=/usr/local/pgsql/plugin/gdal/bin/gdal-config \

--with-projdir=/usr/local/pgsql/plugin/proj

.........

PostGIS is now configured for x86_64-unknown-linux-gnu

 -------------- Compiler Info -------------

  C compiler:           gcc -g -O2

  C++ compiler:         g++ -g -O2

  SQL preprocessor:     /usr/bin/cpp -w -traditional-cpp -P

 -------------- Dependencies --------------

  GEOS config:          /opt/geos-3.4.2/bin/geos-config

  GEOS version:         3.4.2

  GDAL config:          /usr/local/bin/gdal-config

  GDAL version:         2.0.1

  PostgreSQL config:    /usr/local/pgsql/bin/pg_config

  PostgreSQL version:   PostgreSQL 9.6.3

  PROJ4 version:        48

  Libxml2 config:       /usr/bin/xml2-config

  Libxml2 version:      2.7.6

  JSON-C support:       no

  PostGIS debug level:  0

  Perl:                 /usr/bin/perl

 --------------- Extensions ---------------

  PostGIS Raster:       enabled

  PostGIS Topology:     enabled

  SFCGAL support:       disabled

 -------- Documentation Generation --------

  xsltproc:             

  xsl style sheets:     

  dblatex:             

  convert:             

  mathml2.dtd:          http://www.w3.org/Math/DTD/mathml2/mathml2.dtd


#编译

[root@Darren2 postgis-2.1.8]# make

......

PostGIS was built successfully. Ready to install.

[root@Darren2 postgis-2.1.8]# make install

......

make[2]: Leaving directory `/home/tools/postgis-2.1.8/extensions/postgis_topology'

make[1]: Leaving directory `/home/tools/postgis-2.1.8/extensions'

Wait for about 1min


检查PostGIS是否安装成功

Darren2:postgres:/usr/local/pgsql:>psql

postgres=# select * from pg_available_extensions where name like 'postgis%';

          name          | default_version | installed_version |                               comment                               

------------------------+-----------------+-------------------+---------------------------------------------------------------------

 postgis                | 2.1.8           |                   | PostGIS geometry, geography, and raster spatial types and functions

 postgis_tiger_geocoder | 2.1.8           |                   | PostGIS tiger geocoder and reverse geocoder

 postgis_topology       | 2.1.8           |                   | PostGIS topology spatial types and functions

postgres=# create extension postgis;

postgres=# create extension postgis_topology;

postgres=# create extension fuzzystrmatch;

postgres=# create extension postgis_tiger_geocoder;

postgres=# \dx

                                            List of installed extensions

          Name          | Version |   Schema   |                             Description                             

------------------------+---------+------------+---------------------------------------------------------------------

fuzzystrmatch          | 1.1     | public     | determine similarities and distance between strings

plpgsql                | 1.0     | pg_catalog | PL/pgSQL procedural language

postgis                | 2.1.8   | public     | PostGIS geometry, geography, and raster spatial types and functions

postgis_tiger_geocoder | 2.1.8   | tiger      | PostGIS tiger geocoder and reverse geocoder

postgis_topology       | 2.1.8   | topology   | PostGIS topology spatial types and functions


Error

(1)

[root@Darren2 postgis-2.1.8]# ./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-geosconfig=/opt/geos-3.4.2/bin/geos-config --with-projdir=/opt/proj-4.8.0/ --without-sfcgal

......

checking for xml2-config... no

configure: error: could not find xml2-config from libxml2 within the current path. You may need to try re-running configure with a --with-xml2config parameter.

解决方法:

查看是否存在xml2-config文件,结果不存在

[root@Darren2 postgis-2.1.8]# find / -name "xml2-config"

查看是否已经安装了libxml2和libxml2-devel

[root@Darren2 postgis-2.1.8]# rpm -qa |grep  libxml2

libxml2-2.7.6-14.el6.x86_64

libxml2-python-2.7.6-14.el6.x86_64

安装libxml2-devel:

[root@Darren2 postgis-2.1.8]# yum install libxml2-devel -y

[root@Darren2 postgis-2.1.8]# rpm -qa |grep  libxml2

libxml2-2.7.6-21.el6_8.1.x86_64

libxml2-python-2.7.6-21.el6_8.1.x86_64

libxml2-devel-2.7.6-21.el6_8.1.x86_64

可以看到此时已经有xml2-config文件

[root@Darren2 postgis-2.1.8]# find / -name "xml2-config"

/usr/bin/xml2-config

最后再执行上面的编译命令可成功。


(2)创建extension时报错

postgres=# create extension postgis;

ERROR:  could not load library "/usr/local/pgsql/lib/rtpostgis-2.1.so": libgdal.so.20: cannot open shared object file: No such file or directory

[root@Darren2 postgis-2.1.8]# ls -ltr /usr/local/pgsql/lib/rtpostgis-2.1.so

-rwxr-xr-x. 1 root root 1435637 Jul 12 05:44 /usr/local/pgsql/lib/rtpostgis-2.1.so

[root@Darren2 postgis-2.1.8]# ls -ltr /usr/local/pgsql/lib/libgdal.so.20

ls: cannot access /usr/local/pgsql/lib/libgdal.so.20: No such file or directory

[root@Darren2 postgis-2.1.8]# find / -name 'libgdal.so.20'

/usr/local/lib/libgdal.so.20

/home/tools/gdal-2.0.1/.libs/libgdal.so.20

[root@Darren2 postgis-2.1.8]# cp /usr/local/lib/libgdal.so.20 /usr/local/pgsql/lib/


上一篇:Redshift drop有依赖关系的表


下一篇:下载功能实现和HttpServletResponse对象的方法