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/pkgconfig

export 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/927377.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vue 90 ,Element 13 ,Vue + Element UI 中 el-switch 使用小细节解析,避免入坑(获取后端的数据类型自动转变)

目录 前言 在开发过程中,我们经常遇到一些看似简单的问题,但有时正是这些细节问题让我们头疼不已。今天,我就来和大家分享一个我在开发过程中遇到的 el-switch 使用的小坑,希望大家在使用时能够避免。 一. 问题背景 二. 问题分…

同时使用Tmini和GS2两个雷达

24.12.02 要求:同时使用两个雷达。 问题在于:两个雷达都是ydlidar,使用同一个包。 因此同时启动GS2.launch和Tmini.launch会调用同一个功能节点,使用同一个cpp文件。 方法:新建一个cpp节点。 但同时保持在同一个坐标系&#xff0…

高等数学函数的性质

牛顿二项公式 ( x y ) n ∑ k 0 n C n k ⋅ x n − k y k (xy)^n\stackrel{n}{\sum\limits_{k0}}C^k_n\sdot x^{n-k}y^k (xy)nk0∑​n​Cnk​⋅xn−kyk. 映射 f : X → Y f:X\rightarrow Y f:X→Y, f f f 为 X X X 到 Y Y Y 的映射。 f f f 是一个对应关系&am…

【MySQL】深度学习数据库开发技术:mysql事务穿透式解析

前言:本节内容开始讲解事务。 博主计划用三节来讲解事务。 本篇为第一节, 主要解释什么是事务, 事务有什么用。 以及事物的基本操作和异常退出回滚情况。 下面不多说,友友们, 开始学习吧! ps:本…

Swift解题 | 求平面上同一条直线的最多点数

文章目录 前言摘要问题描述解题思路Swift 实现代码代码分析示例测试与结果时间复杂度空间复杂度总结关于我们 前言 本题由于没有合适答案为以往遗留问题,最近有时间将以往遗留问题一一完善。 149. 直线上最多的点数 不积跬步,无以至千里;不积…

使用Ansible自动化部署Zabbix6监控

1、获取Ansible离线部署包 链接:https://pan.baidu.com/s/1EjI02Ni8m9J4eJeBcJ-ZUQ?pwdzabx 提取码:zabx 2、安装Ansible wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo yum -y install ansible3、修改hosts文件…

lua闭包Upvalue

闭包 lua任何函数都是闭包,闭包至少带1个upValue; CClosure是使用Lua提供的lua_pushcclosure这个C-Api加入到虚拟栈中的C函数,它是对LClosure的一种C模拟 如string.gmatch就是cclosure 定义: #define ClosureHeader \CommonH…

二叉搜索树之遍历

二叉搜索树是一种重要的数据结构,它的每个节点最多有两个子节点,称为左子节点和右子节点。 二叉搜索树的特性是:对于树中的每个节点,其左子树中的所有节点的值都小于该节点的值,而右子树中的所有节点的值都大于该节点…

Java基础访问修饰符全解析

一、Java 访问修饰符概述 Java 中的访问修饰符用于控制类、方法、变量和构造函数的可见性和访问权限,主要有四种:public、protected、default(无修饰符)和 private。 Java 的访问修饰符在编程中起着至关重要的作用,它…

安心护送转运平台小程序

安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统,可以根据运营者的业务提供类似短途接送救护服务,重症病人转运服务,长途跨省护送服务。

人工智能技术在外骨骼机器人中的应用,发展历程与原理介绍

大家好,我是微学AI,今天给大家介绍一下 人工智能技术在外骨骼机器人中的应用,发展历程与原理介绍 。外骨骼机器人是一种 套在人体外部的可穿戴机器人装置 ,旨在增强人类的身体能力和运动功能。其独特之处在于能够与人体紧密配合&a…

类型转换与IO流:C++世界的变形与交互之道

文章目录 前言🎄一、类型转换🎈1.1 隐式类型转换🎈1.2 显式类型转换🎁1. C 风格强制类型转换🎁2. C 类型转换操作符 🎈1.3 C 类型转换操作符详解🎁1. static_cast🎁2. dynamic_cast&…

如何手搓一个智能宠物喂食器

背景 最近家里的猫胖了,所以我就想做个逗猫棒。找了一圈市场上的智能逗猫棒,运行轨迹比较单一,互动性不足。 轨迹单一,活动范围有限 而我希望后续可以结合人工智能物联网,通过摄像头来捕捉猫的位置,让小…

【AI系统】AI 编译器基本架构

AI 编译器基本架构 在上一篇文章中将 AI 编译器的发展大致分为了 3 个阶段,分别为 1)朴素编译器、2)专用编译器以及 3)通用编译器。 本文作为上一篇文章 AI 编译器架构的一个延续,着重讨论 AI 编译器的通用架构。首先…

用 React 编写一个笔记应用程序

这篇文章会教大家用 React 编写一个笔记应用程序。用户可以创建、编辑、和切换 Markdown 笔记。 1. nanoid nanoid 是一个轻量级和安全的唯一字符串ID生成器,常用于JavaScript环境中生成随机、唯一的字符串ID,如数据库主键、会话ID、文件名等场景。 …

#渗透测试#红蓝攻防#HW#漏洞挖掘#漏洞复现01-笑脸漏洞(vsftpd)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…

Day1——GitHub项目共同开发

MarkDowm解释 Markdown是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML代码。Markdown的目的是让文档的编写和阅读变得更加容易,同时也不失HTML的强大功能。以下是Markdown的一些基本概念和用法&a…

【攻防世界】WEB-inget

首先找到该关卡 启动靶场环境 访问靶场 构造一个id参数,尝试访问,无内容回显 使用sqlmap工具,先获取数据库,输入命令sqlmap -u http://61.147.171.105:58893/?id1 --dbs 发现第一个即为所需数据库,接下来进行获取…

【C++】深度剖析经典编程题目:电影票、A+B与鸡兔同笼的解决方案

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯牛牛买电影票问题题目描述解题思路代码实现优化思路总结 💯AB问题题目描述解题思路代码实现代码优化总结 💯鸡兔同笼问题题目描述解题思路数学解法代…

掌上单片机实验室 — RT - Thread+ROS2 浅尝(26)

前面化解了Micro_ROS通讯问题,并在 RT-Thread Studio 环境下,使用Micro_ROS软件包中的例程,实现了STM32F411CE核心板和ROS2主机的通讯。之后还尝试修改例程 micro_ros_sub_twist.c ,实现了接收 turtle_teleop_key 所发出的 turtle…