安装PostGIS-2.1.8
admin
2023-05-21 20:02:36
0次

版本:

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/


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...