当前位置: 首页 > news >正文

centos 7 离线安装postgis插件

        前一段时间记录了下如何在centos7中离线安装postgresql,因为工作需要,我不仅要安装postgresql,还需要安装postgis插件,这篇文章记录下postgis插件的安装过程。

1. 安装前的参考

        如下的链接都是官网上的链接,对你安装postgis 应该会有很大的帮助,安装前可以先仔细看看;

  1. https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS 最新版依赖及下载地址
    在这里插入图片描述
  2. https://trac.osgeo.org/postgis/wiki/PostGISObsoleteVersionsMatrix 版本依赖说明
    在这里插入图片描述
  3. https://trac.osgeo.org/postgis/wiki/UsersWikiInstall 安装指引
    在这里插入图片描述
  4. https://trac.osgeo.org/postgis/wiki
    在这里插入图片描述

2. 我安装的版本

        由于工作需要,我安装的版本与我们线上保持一致,pg安装的是11.11,postgis安装的是2.5,其它详细信息如下:

软件依赖版本
postgresql11.11
postgis2.5
 godal2.2.3
 proj4.8.0
 geos3.5.1
 json-c0.10
 protobuf2.6.1
 protobuf-c1.2.1
 LibXML22.7.7

3.安装依赖

        安装postgis共分成两步,第一步是安装依赖,第二步是安装postgis本身,因为postgis需要的依赖比较多,一个一个安装需要有点儿耐心。
        注意,如下目录需要修改成你自己使用的目录

3.1 安装gdal

tar -zxvf gdal-2.2.3.tar.gz
cd gdal-2.2.3
./configure --prefix=/app/address/postgre/postgis_dep/gdal
make 
make install

3.2 安装proj

tar -zxvf proj-4.8.0.tar.gz
cd proj-4.8.0
./configure --prefix=/app/address/postgre/postgis_dep/proj
make
make install

3.3 安装geos

tar -jxvf geos-3.5.1.tar.bz2
cd geos-3.5.1
./configure --prefix=/app/address/postgre/postgis_dep/geos
make 
make install

3.4 安装 json-c

tar -zxvf json-c-0.10.tar.gz
cd json-c-0.10
./configure --prefix=/app/address/postgre/postgis_dep/json-c
make
make install

3.5 安装protobuf

tar -zxvf protobuf-2.6.1.tar.gz
cd protobuf-2.6.1
./configure --prefix=/app/address/postgre/postgis_dep/protobuf
make
make install

3.6 安装 protobuf-c

tar -zxvf protobuf-c-1.2.1.tar.gz
cd protobuf-c-1.2.1
./configure --prefix=/app/address/postgre/postgis_dep/protobuf-c
make
make install

3.7 安装LibXML2

下载地址 http://xmlsoft.org/sources/
tar -zxvf libxml2-2.7.7.tar.gz
cd libxml2-2.7.7
./configure --prefix=/app/address/postgre/postgis_dep/libxml2
make
make install

3.8 编辑 ld.so.conf

增加如下配置

/app/address/postgre/postgis_dep/geos/lib
/app/address/postgre/postgis_dep/gdal/lib
/app/address/postgre/postgis_dep/proj/lib
/app/address/postgre/postgis_dep/json-c/lib
/app/address/postgre/postgis_dep/protobuf/lib
/app/address/postgre/postgis_dep/protobuf-c/lib
/app/address/postgre/postgis_dep/libxml2/lib执行sudo ldconfig 使生效

3.9 修改环境配置文件

修改 vi ~/.bashrc
增加如下配置

export PKG_CONFIG_PATH=/app/address/postgre/postgis_dep/protobuf/lib/pkgconfigexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/address/postgre/postgis_dep/geos/lib:/app/address/postgre/postgis_dep/gdal/lib:/app/address/postgre/postgis_dep/proj/lib:/app/address/postgre/postgis_dep/json-c/lib:/app/address/postgre/postgis_dep/protobuf/lib:/app/address/postgre/postgis_dep/protobuf-c/lib:/app/address/postgre/postgis_dep/libxml2/lib

source ~/.bashrc 使生效

4. 安装postgis

4.1 安装postgis

tar -zxvf postgis-2.5.0.tar.gz
cd postgis-2.5.0
./configure --with-geosconfig=/app/address/postgre/postgis_dep/geos/bin/geos-config --with-projdir=/app/address/postgre/postgis_dep/proj --with-gdalconfig=/app/address/postgre/postgis_dep/gdal/bin/gdal-config --with-jsondir=/app/address/postgre/postgis_dep/json-c --with-pgconfig=/app/address/postgre/pginstall/bin//pg_config --with-xml2config=/app/address/postgre/postgis_dep/libxml2/bin/xml2-config
make
make install

在这里插入图片描述

4.2 登录数据库,创建扩展

psql postgres
创建扩展
create extension postgis;
create extension postgis_topology;

在这里插入图片描述

4.3 测试

select postgis_full_version();
在这里插入图片描述
SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText(‘POINT(-87.71 43.741)’,4326);
在这里插入图片描述

5. 错误解决

  1. fatal error: json_object_iterator.h: No such file or director
    在这里插入图片描述
    解决:yum install json-c-devel

  2. error: #pragma GCC diagnostic not allowed inside functions
    在这里插入图片描述
    使用高版本gcc,4.4.7不行,我用的是4.8版本

6. 参考

  1. postgis相关下载

    1. postgis下载 https://postgis.net/2019/03/PostGIS-2.5.2-2.4.7-2.3.9-Released/
    2. geos下载 https://libgeos.org/usage/download/
    3. libxml2 下载 http://xmlsoft.org/sources/
  2. postgis安装参考

    1. https://blog.csdn.net/dbdeep/article/details/123643043 postgis 安装
    2. https://blog.csdn.net/weixin_47308871/article/details/122152508
    3. https://blog.csdn.net/dbdeep/article/details/123643043

        当然在安装postgis之前需要安装postgresql,如果你还没有安装,可以参考我另一篇记录: centos7 离线安装postgresql

http://www.lryc.cn/news/495882.html

相关文章:

  • pyinstaller打包的时候将ffmpeg也加进包中(包括打包文件夹的方法)
  • JVM面试知识点1
  • wordpress
  • Day33 动态规划part02
  • 渗透测试之Web基础之Linux病毒编写——泷羽sec
  • jmeter基础07_组件的层级
  • Nginx反向代理和负载均衡配置
  • 【379】基于springboot的防疫物资管理信息系统
  • Linux 各个目录作用
  • 【Linux】文件操作的艺术——从基础到精通
  • java中的运算符
  • 全面解析 C++ STL 中的 set 和 map
  • css:怎么设置div背景图的透明度为0.6不影响内部元素
  • Kubernetes ConfigMaps
  • 前端热门面试题目[一](HTML、CSS、Javascript、Node、Vue、React)
  • Swift 宏(Macro)入门趣谈(五)
  • ES6 Set、Map、WeakSet、WeakMap 四者辨析与实战应用详解
  • 【数据结构】哈希表实现
  • Verilog的线与类型与实例化模块
  • 芯片测试-RF中的S参数,return loss, VSWR,反射系数,插入损耗,隔离度等
  • 强化学习的几个主要方法(策略梯度、PPO、REINFORCE实现等)(上)
  • Git远程仓库操作
  • GAGAvatar: Generalizable and Animatable Gaussian Head Avatar 学习笔记
  • 什么是VISUAL STUDIO CODE (V S CODE)
  • 2024年09月中国电子学会青少年软件编程(Python)等级考试试卷(三级)答案 + 解析
  • C++初阶——动态内存管理
  • 如何查看阿里云ddos供给量
  • MySQL中的事务隔离全详解
  • 异常--C++
  • SeggisV1.0 遥感影像分割软件【源代码】讲解