centos7 pg10.7 源码安装postgis2.5

centos7 pg10.7 源码安装postgis2.5


 

PostGIS 部署

pre-requirement

sudo yum install libxml2 libxml2-dev gcc+ gcc-c++ -y

 

geos

http://trac.osgeo.org/geos

 

sudo mkdir /usr/local/geos -p

sudo chown -R postgres.postgres /usr/local/geos

wget http://download.osgeo.org/geos/geos-3.6.2.tar.bz2 

tar -jxvf geos-3.6.2.tar.bz2    

cd geos-3.6.2   

./configure --prefix=/usr/local/geos    

make -j 32    &&  sudo make install   

cd ..

 

proj

https://trac.osgeo.org/proj/

 

sudo mkdir /usr/local/proj5

sudo chown -R postgres.postgres /usr/local/proj5

wget http://download.osgeo.org/proj/proj-5.0.0.tar.gz

tar -zxvf proj-5.0.0.tar.gz

cd ./proj-5.0.0

./configure --prefix=/usr/local/proj5

make -j 32 && sudo make install

cd ..

 

GDAL

http://gdal.org/

 

sudo mkdir /usr/local/gdal

sudo chown -R postgres.postgres /usr/local/gdal

 

wget http://download.osgeo.org/gdal/2.2.4/gdal-2.2.4.tar.gz  

tar -zxvf gdal-2.2.4.tar.gz  

cd gdal-2.2.4   

./configure --prefix=/usr/local/gdal --with-pg=/ssd01/pg10/bin/pg_config   

make -j 32    &&  sudo make install    

cd ..

 

LibXML2 libxslt json-c cmake ...

 

http://www.xmlsoft.org/

 

sudo yum install -y libtool libxml2 libxml2-devel libxslt libxslt-devel json-c json-c-devel cmake gmp gmp-devel mpfr mpfr-devel boost-devel pcre-devel  git

 

源码安装cmake(或者叫升级cmake)

cmake source install as follows:

0 cd ~

1 wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz

2 tar xvf cmake-3.5.2.tar.gz

This worked for me  then:

3 cd cmake-3.4.3

4 ./bootstrap --prefix=/usr

这一步很关键,如果没有指定prefix,后面使用时会报错Could not find CMAKE_ROOT

5 make

6 sudo make install

 

yum remove cmake -y

ln -s /usr/local/bin/cmake /usr/bin/

cmake --version

 

check:

cmake --version

[root@localhost cmake-3.5.2]# sudo cmake --version

cmake version 3.5.2

 

cgal

http://www.cgal.org/download.html

 

git clone https://github.com/CGAL/cgal    

cd cgal    

git checkout releases/CGAL-4.8-branch    

mkdir build    

cd build    

cmake -D CMAKE_INSTALL_PREFIX=/usr/local/cgalhome ../    

make -j 32    && sudo make install    

 

wget https://codeload.github.com/json-c/json-c/tar.gz/json-c-0.12.1-20160607

tar zxf json-c-json-c-0.12.1-20160607

cd json-c-json-c-0.12.1-20160607/

./configure --prefix=/usr/local/json-c-0.13

make && sudo make install

cd ..

 

---不要

wget https://codeload.github.com/Oslandia/SFCGAL/zip/v1.3.6

unzip SFCGAL-1.3.0.zip

cd SFCGAL-1.3.0

sudo mkdir /usr/local/SFCGAL-1.3.6

sudo chown -R postgres.postgres  /usr/local/SFCGAL-1.3.6

mkdir build

cd build

cmake ..

cmake -D CMAKE_INSTALL_PREFIX=/usr/local/SFCGAL-1.3.6

make $$ sudo make install

cd ..

 

可以通过cmake -D CMAKE_INSTALL_PREFIX=/usr/local/SFCGAL-1.3.0 指定要安装的位置

默认安装在/usr/local

 

postgis 2.2.2

 

http://postgis.net/source/

 

sudo vim /etc/ld.so.conf

/ssd01/pg10/lib     

/usr/local/geos/lib    

/usr/local/proj5/lib    

/usr/local/gdal/lib    

/usr/local/cgalhome/lib    

/usr/local/json-c-0.13/lib

/usr/local/SFCGAL-1.3.0/lib

sudo ldconfig 

 

部署PostGIS

 

wget http://download.osgeo.org/postgis/source/postgis-2.2.2.tar.gz    

wget http://download.osgeo.org/postgis/source/postgis-2.4.0.tar.gz

wget http://download.osgeo.org/postgis/source/postgis-2.5.0.tar.gz

sudo mkdir /dbgroup/postgis

sudo chown -R postgres.postrges /dbgroup/postgis

 

tar -zxvf postgis-2.4.0.tar.gz   

cd postgis-2.4.0   

./configure --prefix=/ssd01/postgis --with-gdalconfig=/usr/local/gdal/bin/gdal-config --with-pgconfig=/ssd01/pg10/bin/pg_config --with-geosconfig=/usr/local/geos/bin/geos-config --with-projdir=/usr/local/proj5  --with-jsondir=/usr/local/json-c-0.13 

make && sudo make install    

 

安装好后,脚本位置

[postgres@cnsz92pl00192 postgis-2.5.0]$ls /ssd01/pg10/share/postgresql/contrib/postgis-2.5/

legacy_gist.sql                    postgis_upgrade.sql                  spatial_ref_sys.sql

legacy_minimal.sql                 raster_comments.sql                  topology_comments.sql

legacy.sql                         rtpostgis_for_extension.sql          topology.sql

postgis_comments.sql               rtpostgis_legacy.sql                 topology_upgrade.sql

postgis_for_extension.sql          rtpostgis_proc_set_search_path.sql   uninstall_legacy.sql

postgis_proc_set_search_path.sql   rtpostgis.sql                        uninstall_postgis.sql

postgis_restore.pl                 rtpostgis_upgrade_for_extension.sql  uninstall_rtpostgis.sql

postgis.sql                        rtpostgis_upgrade.sql                uninstall_topology.sql

postgis_upgrade_for_extension.sql  sfcgal_comments.sql

 

至此,完成postgis的安装

 

安装postgis插件

[postgres@localhost postgis-2.4.0]$ ls

aclocal.m4     configure.ac     liblwgeom         postgis_config.h.in

astyle.sh      CONTRIBUTING.md  libpgcommon       postgis_svn_revision.h

authors.git    COPYING          libtool           raster

authors.svn    CREDITS          LICENSE.TXT       README.md

autogen.sh     doc              loader            README.postgis

ChangeLog      docker           ltmain.sh         regress

ci             extensions       macros            spatial_ref_sys.sql

config.guess   extras           Makefile          STYLE

config.log     fuzzers          MIGRATION         TODO

config.status  GNUmakefile      NEWS              topology

config.sub     GNUmakefile.in   postgis           utils

configure      install-sh       postgis_config.h  Version.config

 

cd extensions

cd postgis

sudo make clean

sudo make 

sudo make install

cd ..

 

cd postgis_topology

sudo make clean

sudo make 

sudo make install

cd ..

 

cd postgis_sfcgal

sudo make clean

sudo make 

sudo make install

 

cd ..

cd address_standardizer

sudo make clean

sudo make 

sudo make install


 

cd ..

cd postgis_tiger_geocoder

sudo make clean

sudo make 

sudo make install

cd .. 

 

4.创建postgis数据库

 

1) 启动postgresql数据库

2) 切换到postgres用户

#su - postgres

3) 创建数据库postgis

$createdb postgis

 

[postgres@localhost soft]$ psql -h 127.0.0.1

psql (10.3)

Type "help" for help.

 

postgres=# create database postgis;

CREATE DATABASE

 

postgis=# select name,default_version from pg_available_extensions where name like '%gis%';

          name          | default_version 

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

 postgis_tiger_geocoder | 2.4.0

 postgis                | 2.4.0

 btree_gist             | 1.5

 postgis_topology       | 2.4.0

 

此时的postgis数据库只是一个普通的一个postgresql数据库,并没有用户表。

 

安装插件

create extension pg_stat_statements;

create extension postgis;

create extension fuzzystrmatch;

create extension postgis_tiger_geocoder;

create extension postgis_topology;


 

---以下部分pg10后可以不用看

4) 创建postgis空间数据库

 

postgis空间数据库由一系列的postgis函数、数据类型、触发器等构成。

postgis空间数据库的脚本路径为:/usr/local/pgsql9.6rc1/share/contrib/postgis-2.2/postgis.sql

 

执行以下命令,在postgis数据库上创建postgis的函数、数据类型等资源

psql -d postgis -U postgres -f /usr/local/pgsql9.6rc1/share/contrib/postgis-2.2/postgis.sql

 

可以看出postgis创建了一系列的函数

 

5) 创建postgis空间数据库的空间参考表

 

postgis空间数据库的空间参考表脚本路径为:/usr/local/pgsql/share/contrib/postgis-2.2/spatial_ref_sys.sql

psql -d postgis -U postgres -f /usr/local/pgsql9.6rc1/share/contrib/postgis-2.2/spatial_ref_sys.sql

该命令在postgis数据库中创建了spatial_ref_sys表,用于存放空间投影信息。

 

安装两个不同的geos版本,安装gis出错

./psql -s -d template1 -f /usr/local/pgsql/share/contrib/postgis-2-3.0/postgis.sql

 

通过查看

[postgres@seven ~]$ sudo ldd /usr/local/pgsql9.6/lib/postgis-2.3.so

    linux-vdso.so.1 =>  (0x00007fffdc5e0000)

    libgeos_c.so.1 => /usr/local/geos/lib/libgeos_c.so.1 (0x00007f2f3705c000)

    libproj.so.9 => /usr/local/proj4/lib/libproj.so.9 (0x00007f2f36dfe000)

    libjson-c.so.2 => /usr/local/json-c-0.12/lib/libjson-c.so.2 (0x00007f2f36bf3000)

    libxml2.so.2 => /lib64/libxml2.so.2 (0x00007f2f36889000)

    libm.so.6 => /lib64/libm.so.6 (0x00007f2f36586000)

    libc.so.6 => /lib64/libc.so.6 (0x00007f2f361c4000)

    libgeos-3.5.0.so => /usr/local/geos/lib/libgeos-3.5.0.so (0x00007f2f35e1e000)

    libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2f35b15000)

    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2f358ff000)

    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2f356e3000)

    libdl.so.2 => /lib64/libdl.so.2 (0x00007f2f354de000)

    libz.so.1 => /lib64/libz.so.1 (0x00007f2f352c8000)

    liblzma.so.5 => /lib64/liblzma.so.5 (0x00007f2f350a3000)

    /lib64/ld-linux-x86-64.so.2 (0x00007f2f37559000)

    

http://postgis-users.postgis.refractions.narkive.com/8QpJWt4u/error-could-not-load-library-usr-local-pgsql-lib-postgis-1-5-so

 

查询版本,

rpm -qa¦grep geos

 

卸载

sudo yum remove geos查询版本,

rpm -qa¦grep geos

 

卸载

sudo yum remove geos


 

[postgres@seven extensions]$ psql -d postgis

psql (9.6rc1)

Type "help" for help.

 

postgis=# \d

               List of relations

 Schema |       Name        | Type  |  Owner   

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

 public | geography_columns | view  | postgres

 public | geometry_columns  | view  | postgres

 public | spatial_ref_sys   | table | postgres

(3 rows)

 

环境变量设置

 

cat /home/postgres/.psqlrc 

\set PROMPT1 '%n@%/ :'

\set HISTFILE ~/history-:DBNAME

\timing on

 

[postgres@seven extensions]$ psql -d postgis

Timing is on.

psql (9.6rc1)

Type "help" for help.

 

postgres@postgis :

 

至此,完成postgis空间数据库的创建。现在就可以向postgis数据库中导入shape图层文件,进行空间查询等

操作。

postgres@postgis :SELECT name, default_version,installed_version 

postgis-# FROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';

             name             | default_version | installed_version 

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

 postgis                      | 2.2.2           | 

 postgis_tiger_geocoder       | 2.2.2           | 

 address_standardizer         | 2.2.2           | 

 address_standardizer_data_us | 2.2.2           | 

 postgis_topology             | 2.2.2           | 

(5 rows)

 

Time: 61.669 ms

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值