赞
踩
废话不多说了,直接上干货。
postgresql单机版,使用的版本为9.5.24,postgis使用的版本为postgis-3.0.0.tar.gz,实验机器使用的为centos7版本,vm虚拟机,最小化全新安装。
编译前的环境准备工作:
1.yum install libxml2-devel libxml2 gcc-c++ json-c-devel bzip2 -y
2.http://www.cmake.org/cmake/resources/software.html 下载cmake-3.9.0-rc2-linux-x86_64.tar.gz,该版本为二进制包,无需编译,绿色解压即可使用,如果嫌使用麻烦就配一下环境变量。
本例中,我是解压后重命名为cmake,路径为 /usr/local/cmake,环境变量配置为:vim /etc/profile
CMAKE_HOME=/usr/local/cmake
PATH=$PATH:$CMAKE_HOME/bin
export PATH
postgis的依赖比较多,大概需要的依赖如下(万幸的是,PostGis不像gcc依赖之间有依赖,这几个依赖先后顺序无所谓,gcc不行,顺序要限定的,因此,可以几个同时编译,只要手速够快,同时编译都没什么问题哦):
以下依赖的下载网站为:http://download.osgeo.org/,mirrors-json-c-master.zip这个需要在码云上下载,下载十分简单,注册一个账号,然后搜索json-c,在点击下载,然后上传到服务器即可。
- [root@centos8 ~]# ll
- total 77116
- -rw-------. 1 root root 1358 Jul 21 22:19 anaconda-ks.cfg
- -rw-r--r-- 1 root root 32460756 Nov 26 23:00 cmake-3.9.0-rc2-Linux-x86_64.tar.gz
- -rw-r--r-- 1 root root 7707436 Nov 26 23:00 gdal-2.1.3.tar.xz
- -rw-r--r-- 1 root root 2399403 Nov 26 23:00 geos-3.8.0.tar.bz2
- -rw-r--r-- 1 root root 225173 Nov 26 23:00 mirrors-json-c-master.zip
- -rw-r--r-- 1 root root 17359802 Nov 26 22:59 postgis-3.0.0.tar.gz
- -rw-r--r-- 1 root root 17881872 Nov 26 22:59 postgresql-9.5.24.tar.bz2
- -rw-r--r-- 1 root root 921448 Nov 26 22:59 proj-4.9.3.tar.gz
postgis和postgresql之间是有依赖矩阵的,特别需要注意哦,矩阵图如下:
可以从上图看到,PostGis3.0.0是一个比较新的版本,而postgresql是一个比较旧的但两者都比较稳定的版本了。
(稍微科普一下,tar.bz2的文件 解压命令为: tar jxf 文件名,软件 bzip2提供这个命令的支持)。
- tar jxf geos-3.8.0.tar.bz2
- cd geos-3.8.0/src
- cmake ../
- make && make install
需要说明一下安装手法,为什么是进入src目录,如果安装时有什么异常的问题,可以将src目录清空重新编译,因此进入src,通常,cmake是在下级目录build内。这个软件编译时间大概为15分钟左右。
- tar zxf proj-4.9.3.tar.gz
- cd proj-4.9.3/
- ./configure
- make && make install
- echo $?
- unzip mirrors-json-c-master.zip
- cd json-c/
- mkdir build
- cd build/
- cmake ../
- make && make install
预编译成功的截图如下:
- tar xf gdal-2.1.3.tar.xz
- cd gdal-2.1.3/
- ./configure --prefix=/usr/local/gdal
- echo $?
- make && make install
vim /etc/ld.so.conf
- /usr/local/lib
- /usr/local/lib64
- /usr/local/pgsql/lib
如果第三行的内容没有指定,也就是指定postgresql的lib目录,那么将会报错configure error: could not find gdal!!!这里需要注意一下~~
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH:/usr/local/include/
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-gdalconfig=/usr/local/gdal/bin/gdal-config
make && make install
预编译成功的截图:
- --------------- Extensions ---------------
- PostGIS Raster: enabled
- PostGIS Topology: enabled
- SFCGAL support: disabled
- Address Standardizer support: disabled
-
- -------- Documentation Generation --------
- xsltproc: /usr/bin/xsltproc
- xsl style sheets:
- dblatex:
- convert:
- mathml2.dtd: http://www.w3.org/Math/DTD/mathml2/mathml2.dtd
编译成功的截图:
- for OLD_VERSION in 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.3.10 2.3.11 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.0 2.5.1 2.5.2 2.5.3 2.5.4 3.0.0alpha4 3.0.0beta1 3.0.0rc1 3.0.0rc2; do \
- ln -fs "${tpl}" /usr/local/pgsql/datadir/extension/postgis_topology--$OLD_VERSION--3.0.0.sql; \
- done
- /usr/bin/install -c -m 644 .//postgis_topology.control '/usr/local/pgsql/datadir/extension/'
- /usr/bin/install -c -m 644 postgis_topology.control sql/postgis_topology--3.0.0.sql sql/postgis_topology--unpackaged--3.0.0.sql '/usr/local/pgsql/datadir/extension/'
- make[2]: Leaving directory `/root/postgis-3.0.0/extensions/postgis_topology'
- make[1]: Leaving directory `/root/postgis-3.0.0/extensions'
- [root@centos6 postgis-3.0.0]# echo $?
- 0
启动postgresql服务,进入命令行操作界面,执行以下命令:
create extension postgis
select * from pg_available_extensions where name like 'postgis%';
插件正常的状态为至少三行。
- postgres=# select * from pg_available_extensions where name like 'postgis%';
- name | default_version | installed_version | comment
- ------------------------+-----------------+-------------------+---------------------------------------------------------------------
- postgis | 3.0.0 | 3.0.0 | PostGIS geometry, geography, and raster spatial types and functions
- postgis_tiger_geocoder | 3.0.0 | | PostGIS tiger geocoder and reverse geocoder
- postgis_topology | 3.0.0 | | PostGIS topology spatial types and functions
- postgis_raster | 3.0.0 | | PostGIS raster types and functions
- (4 rows)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。