Linux 平台PostGIS安装

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

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=#


本文转自 pgmia 51CTO博客,原文链接:http://blog.51cto.com/heyiyi/1873448


相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
3月前
|
Linux
手把手教会你安装Linux系统
手把手教会你安装Linux系统
|
14天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
17天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
104 20
|
10天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
111 7
|
17天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
37 2
|
3月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
122 5
Linux系统之安装OneNav个人书签管理器
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
73 4
|
3月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
76 5
Linux系统之安装Ward服务器监控工具
|
2月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
60 5
|
3月前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
47 2
Linux系统之安装cook菜谱工具