1. 程式人生 > >安裝PostGIS-2.1.8

安裝PostGIS-2.1.8

安裝 postgis

版本:

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/


本文出自 “10979687” 博客,請務必保留此出處http://10989687.blog.51cto.com/10979687/1974741

安裝PostGIS-2.1.8