首页 > 代码库 > Linux 平台PostGIS安装

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 `1118.www.qixoo.qixoo.com/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 `qkxue.net/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=http://www.mamicode.com/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=#

Linux 平台PostGIS安装