Linux 平台PostGIS安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 平台PostGIS安装相关的知识,希望对你有一定的参考价值。

1.前提条件:

postgresql 9.6.1 已经通过源码方式安装完成并可成功运行。


2. other OS packets

OS: CentOS 6.4 X64

X64: libxml2-devel


3.geos-3.6.0


http://download.osgeo.org/geos/geos-3.6.0.tar.bz2


# tar xjvf geos-3.6.0.tar.bz2 

./configure

......

......

......

config.status: executing libtool commands

Swig: false

Python bindings: false

Ruby bindings: false

# make

......

......

make[3]: Leaving directory `/home/soft/geos-3.6.0/tests/geostest‘

Making all in thread

make[3]: Entering directory `/home/soft/geos-3.6.0/tests/thread‘

make[3]: Nothing to be done for `all‘.

make[3]: Leaving directory `/home/soft/geos-3.6.0/tests/thread‘

make[3]: Entering directory `/home/soft/geos-3.6.0/tests‘

make[3]: Nothing to be done for `all-am‘.

make[3]: Leaving directory `/home/soft/geos-3.6.0/tests‘

make[2]: Leaving directory `/home/soft/geos-3.6.0/tests‘

Making all in tools

make[2]: Entering directory `/home/soft/geos-3.6.0/tools‘

make[2]: Nothing to be done for `all‘.

make[2]: Leaving directory `/home/soft/geos-3.6.0/tools‘

make[2]: Entering directory `/home/soft/geos-3.6.0‘

make[2]: Nothing to be done for `all-am‘.

make[2]: Leaving directory `/home/soft/geos-3.6.0‘

make[1]: Leaving directory `/home/soft/geos-3.6.0‘

# make install

......

......

Making install in tools

make[2]: Entering directory `/home/soft/geos-3.6.0/tools‘

make[3]: Entering directory `/home/soft/geos-3.6.0/tools‘

 /bin/mkdir -p ‘/usr/local/bin‘

 /usr/bin/install -c geos-config ‘/usr/local/bin‘

make[3]: Nothing to be done for `install-data-am‘.

make[3]: Leaving directory `/home/soft/geos-3.6.0/tools‘

make[2]: Leaving directory `/home/soft/geos-3.6.0/tools‘

make[2]: Entering directory `/home/soft/geos-3.6.0‘

make[3]: Entering directory `/home/soft/geos-3.6.0‘

make[3]: Nothing to be done for `install-exec-am‘.

make[3]: Nothing to be done for `install-data-am‘.

make[3]: Leaving directory `/home/soft/geos-3.6.0‘

make[2]: Leaving directory `/home/soft/geos-3.6.0‘

make[1]: Leaving directory `/home/soft/geos-3.6.0‘


4.proj4


http://download.osgeo.org/proj/proj-4.9.3.tar.gz


# tar zxvf proj-4.9.3.tar.gz

# cd proj-4.9.3

# ./configure

# make

......

......

make[2]: Leaving directory `/home/soft/proj-4.9.3/jniwrap‘

make[1]: Leaving directory `/home/soft/proj-4.9.3/jniwrap‘

Making all in cmake

make[1]: Entering directory `/home/soft/proj-4.9.3/cmake‘

make[1]: Nothing to be done for `all‘.

make[1]: Leaving directory `/home/soft/proj-4.9.3/cmake‘

make[1]: Entering directory `/home/soft/proj-4.9.3‘

make[1]: Nothing to be done for `all-am‘.

make[1]: Leaving directory `/home/soft/proj-4.9.3‘

#

# make install

......

......

make[2]: Nothing to be done for `install-exec-am‘.

 /bin/mkdir -p ‘/usr/local/lib/pkgconfig‘

 /usr/bin/install -c -m 644 proj.pc ‘/usr/local/lib/pkgconfig‘

make[2]: Leaving directory `/home/soft/proj-4.9.3‘

make[1]: Leaving directory `/home/soft/proj-4.9.3‘





5.gdal


http://download.osgeo.org/gdal/2.1.2/gdal-2.1.2.tar.gz



export LD_LIBRARY_PATH=/opt/pgsql/9.6.1/lib

export PATH=/opt/pgsql/9.6.1/bin:$PATH

export MANPATH=/opt/pgsql/9.6.1/share/man:$MANPATH


# ./configure

......

......


GDAL is now configured for x86_64-pc-linux-gnu


  Installation directory:    /usr/local

  C compiler:                gcc -g -O2

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


  LIBTOOL support:           yes


  LIBZ support:              external

  LIBLZMA support:           no

  cryptopp support:          no

  GRASS support:             no

  CFITSIO support:           no

  PCRaster support:          internal

  LIBPNG support:            internal

  DDS support:               no

  GTA support:               no

  LIBTIFF support:           internal (BigTIFF=yes)

  LIBGEOTIFF support:        internal

  LIBJPEG support:           internal

  12 bit JPEG:               yes

  12 bit JPEG-in-TIFF:       yes

  LIBGIF support:            internal

  OGDI support:              no

  HDF4 support:              no

  HDF5 support:              no

  Kea support:               no

  NetCDF support:            no

  Kakadu support:            no

  JasPer support:            no

  OpenJPEG support:          no

  ECW support:               no

  MrSID support:             no

  MrSID/MG4 Lidar support:   no

  MSG support:               no

  GRIB support:              yes

  EPSILON support:           no

  WebP support:              no

  cURL support (wms/wcs/...):no

  PostgreSQL support:        yes

  MRF support:               yes

  mysql support:             no

  Ingres support:            no

  Xerces-C support:          no

  NAS support:               no

  Expat support:             no

  libxml2 support:           yes

  Google libkml support:     no

  ODBC support:              no

  PGeo support:              no

  FGDB support:              no

  MDB support:               no

  PCIDSK support:            internal

  OCI support:               no

  GEORASTER support:         no

  SDE support:               no

  Rasdaman support:          no

  DODS support:              no

  SQLite support:            no

  PCRE support:              yes

  SpatiaLite support:        no

  DWGdirect support          no

  INFORMIX DataBlade support:no

  GEOS support:              yes

  QHull support:             internal

  Poppler support:           no

  Podofo support:            no

  PDFium support:            no

  OpenCL support:            no

  Armadillo support:         no

  FreeXL support:            no

  SOSI support:              no

  MongoDB support:           no



  SWIG Bindings:             no


  Statically link PROJ.4:    no

  enable GNM building:       no

  enable pthread support:    yes

  enable POSIX iconv support:yes

  hide internal symbols:     no


# make

......

......

.so -lpq -lpthread -lrt -ldl -lpcre -lxml2 -lz  -Wl,-rpath -Wl,/usr/local/lib

make[1]: Leaving directory `/home/soft/gdal-2.1.2/apps‘

rm -f gdal.pc

echo ‘CONFIG_VERSION=‘`cat ./VERSION`‘‘ >> gdal.pc

echo ‘CONFIG_INST_PREFIX=/usr/local‘ >> gdal.pc

echo ‘CONFIG_INST_LIBS=-L/usr/local/lib -lgdal‘ >> gdal.pc

echo ‘CONFIG_INST_CFLAGS=-I/usr/local/include‘ >> gdal.pc

echo ‘CONFIG_INST_DATA=/usr/local/share/gdal/data‘ >> gdal.pc

cat gdal.pc.in >> gdal.pc

# make install

......

......

make[1]: Leaving directory `/home/soft/gdal-2.1.2/scripts‘

for f in LICENSE.TXT data/*.* ; do /home/soft/gdal-2.1.2/install-sh -c -m 0644 $f /usr/local/share/gdal ; done

/bin/sh /home/soft/gdal-2.1.2/libtool --mode=finish --silent /usr/local/lib

/home/soft/gdal-2.1.2/install-sh -d /usr/local/lib/pkgconfig

/home/soft/gdal-2.1.2/install-sh -c -m 0644 gdal.pc /usr/local/lib/pkgconfig/gdal.pc



6.postgis


export LD_LIBRARY_PATH=/opt/pgsql/9.6.1/lib

export PATH=/opt/pgsql/9.6.1/bin:$PATH

export MANPATH=/opt/pgsql/9.6.1/share/man:$MANPATH

# tar zxvf postgis-2.3.0.tar.gz 

# cd postgis-2.3.0

# ./configure

......

......

config.status: executing po-directories commands


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


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

  C compiler:           gcc -g -O2

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


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

  GEOS config:          /usr/local/bin/geos-config

  GEOS version:         3.6.0

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

  GDAL version:         2.1.2

  PostgreSQL config:    /opt/pgsql/9.6.1/bin/pg_config

  PostgreSQL version:   PostgreSQL 9.6.1

  PROJ4 version:        49

  Libxml2 config:       /usr/bin/xml2-config

  Libxml2 version:      2.7.6

  JSON-C support:       no

  PCRE support:         yes

  PostGIS debug level:  0

  Perl:                 /usr/bin/perl


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

  PostGIS Raster:       enabled

  PostGIS Topology:     enabled

  SFCGAL support:       disabled

  Address Standardizer support:       enabled


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

  xsltproc:             

  xsl style sheets:     

  dblatex:              

  convert:              

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


# make

......

......

mkdir -p sql

cat us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in > sql/address_standardizer_data_us.sql

mkdir -p sql

cat us_lex.sql us_gaz.sql us_rules.sql sql_bits/address_standardizer_data_us_mark_editable_objects.sql.in > sql/address_standardizer_data_us--2.3.0.sql

cat sql/address_standardizer_data_us--2.3.0.sql > sql/address_standardizer_data_us--2.3.0--2.3.0next.sql

cat sql/address_standardizer_data_us--2.3.0.sql > sql/address_standardizer_data_us--2.3.0next--2.3.0.sql

mkdir -p sql

/usr/bin/cpp -traditional-cpp -w -P -I../libpgcommon test-init-extensions.sql.in | grep -v ‘^#‘ | \

        /usr/bin/perl -lpe "s‘MODULE_PATHNAME‘\$libdir/address_standardizer-2.3‘g" > sql/test-init-extensions.sql

mkdir -p sql

/usr/bin/cpp -traditional-cpp -w -P -I../libpgcommon test-parseaddress.sql.in | grep -v ‘^#‘ | \

        /usr/bin/perl -lpe "s‘MODULE_PATHNAME‘\$libdir/address_standardizer-2.3‘g" > sql/test-parseaddress.sql

mkdir -p sql

/usr/bin/cpp -traditional-cpp -w -P -I../libpgcommon test-standardize_address_1.sql.in | grep -v ‘^#‘ | \

        /usr/bin/perl -lpe "s‘MODULE_PATHNAME‘\$libdir/address_standardizer-2.3‘g" > sql/test-standardize_address_1.sql

mkdir -p sql

/usr/bin/cpp -traditional-cpp -w -P -I../libpgcommon test-standardize_address_2.sql.in | grep -v ‘^#‘ | \

        /usr/bin/perl -lpe "s‘MODULE_PATHNAME‘\$libdir/address_standardizer-2.3‘g" > sql/test-standardize_address_2.sql

make[2]: Leaving directory `/home/soft/postgis-2.3.0/extensions/address_standardizer‘

make[1]: Leaving directory `/home/soft/postgis-2.3.0/extensions‘

PostGIS was built successfully. Ready to install.

# make install

......

...... 

make[2]: Entering directory `/home/soft/postgis-2.3.0/extensions/address_standardizer‘

/bin/mkdir -p ‘/opt/pgsql/9.6.1/lib‘

/bin/mkdir -p ‘/opt/pgsql/9.6.1/share/extension‘

/bin/mkdir -p ‘/opt/pgsql/9.6.1/share/extension‘

/bin/mkdir -p ‘/opt/pgsql/9.6.1/share/doc/extension‘

/usr/bin/install -c -m 755  address_standardizer-2.3.so ‘/opt/pgsql/9.6.1/lib/address_standardizer-2.3.so‘

/usr/bin/install -c -m 644 .//address_standardizer.control ‘/opt/pgsql/9.6.1/share/extension/‘

/usr/bin/install -c -m 644 .//address_standardizer_data_us.control .//sql/address_standardizer.sql .//sql/address_standardizer_data_us.sql .//sql/address_standardizer--1.0--2.3.0.sql .//sql/address_standardizer--2.3.0--2.3.0next.sql .//sql/address_standardizer--2.3.0next--2.3.0.sql .//sql/address_standardizer--2.3.0.sql .//sql/address_standardizer_data_us--2.3.0--2.3.0next.sql .//sql/address_standardizer_data_us--2.3.0next--2.3.0.sql .//sql/address_standardizer_data_us--2.3.0.sql  ‘/opt/pgsql/9.6.1/share/extension/‘

/usr/bin/install -c -m 644 .//README.address_standardizer ‘/opt/pgsql/9.6.1/share/doc/extension/‘

make[2]: Leaving directory `/home/soft/postgis-2.3.0/extensions/address_standardizer‘

make[1]: Leaving directory `/home/soft/postgis-2.3.0/extensions‘


7.创建扩展


1).进入数据库查询postgis可用扩展


postgres=# SELECT name, default_version,installed_version FROM pg_available_extensions WHERE name LIKE ‘postgis%‘ ;

          name          | default_version | installed_version 

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

 postgis_tiger_geocoder | 2.3.0           | 

 postgis_topology       | 2.3.0           | 

 postgis                | 2.3.0           | 

(3 rows)


postgres=# 


2).添加postgres用户lib PATH

# su - postgres

$ vi .bash_profile 

# .bash_profile


# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi


# User specific environment and startup programs


export LD_LIBRARY_PATH=/usr/local/lib:/opt/pgsql/9.6.1/lib

export PATH=/opt/pgsql/9.6.1/bin:$PATH

export MANPATH=/opt/pgsql/9.6.1/share/man:$MANPATH


3).reboot系统

创建扩展

postgres=# create database realstate;

postgres=# \c realstate ;

You are now connected to database "realstate" as user "postgres".

realstate=# create extension postgis;

CREATE EXTENSION


8.验证扩展

realstate=# \dx

                                     List of installed extensions

  Name   | Version |   Schema   |                             Description                             

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

 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language

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

(2 rows)


realstate=#

本文出自 “yiyi” 博客,请务必保留此出处http://heyiyi.blog.51cto.com/205455/1873448

以上是关于Linux 平台PostGIS安装的主要内容,如果未能解决你的问题,请参考以下文章

PostGIS 安装教程(Linux)

Linux 安装 postgis

Linux postgis升级(卸载)

在麒麟Linux源码编译安装PostGIS

Docker安装部署PostGIS

安装 PostGIS 的问题