https://jimolonely.github.io/tech/linux/install-postgis-kylin/

接着上一篇在麒麟linux上安装Postgresql12.5 ,我们来安装 PostGIS插件。

方案

因为 PostgreSQL不是通过 rpm包安装的,所以即便 PostGIS有现成的rpm包,也无法使用(需要引用 PG的包)。

所以,我们还是采用源码编译的方式。

下载PostGIS源码

我们选择的版本是3.0.5, 如果是不同版本,那么后面他所依赖的东西可能略有差别。

下载地址: http://postgis.net/stuff/postgis-3.0.5.tar.gz

编译过程

运行

./configure

报错

configure: error: could not find geos-config within the current path.
You may need to try re-running configure with a --with-geosconfig parameter.

报差错原因是缺少 geos依赖, 那就安装geos

yum install geos geos-devel

再运行./configure发现报错

configure: error: could not find proj.h or proj_api.h -
you may need to specify the directory of a PROJ installation using --with-projdir

报差错原因是缺少 proj依赖,那就安装

yum install proj proj-devel

再次运行,还报错:

configure: error: gdal-config not found.
Use --without-raster or try --with-gdalconfig=<path to gdal-config>

这个报错是PostGIS需要gdal,关于gdalPostGIS用来操作栅格数据. 在文档 中,gdal需要的版本是2+.

GDAL, version 2+ is required 3+ is preferred. This is required for raster support. http://trac.osgeo.org/gdal/wiki/DownloadSource.

gdal源码安装

首先肯定想到有没有现成的 gdal安装包,可惜没找到合适的,那还是源码安装吧。

经过我几次尝试,发现 2.0版本根本无法编译,而2.3,2.4版本需要 proj 6以上的版本,而我们上面安装的是proj 4版本,最终确定2.1.4版本是可以编译的。

下面是编译过程。

下载源码:http://download.osgeo.org/gdal/2.1.4/gdal214.zip

解压到某个路径下。

编译gdal源码,运行

make

这个过程持续了挺长时间,大约20分钟,最终成功后输出.

然后安装gdal,运行

make install

成功后输出如下,提示安装在 /usr/local/lib

接着PostGIS编译

再运行PostGISconfigure

运行成功,得到下面的信息:

PostGIS is now configured for aarch64-unknown-linux-gnu

-------------- Compiler Info -------------
C compiler: gcc -std=gnu99 -g -O2 -fno-math-errno -fno-signed-zeros
CPPFLAGS: -I/usr/include -I/usr/include/libxml2
SQL preprocessor: /usr/bin/cpp -traditional-cpp -w -P -------------- Additional Info -------------
Interrupt Tests: DISABLED use: --with-interrupt-tests to enable -------------- Dependencies --------------
GEOS config: /usr/bin/geos-config
GEOS version: 3.6.1
GDAL config: /usr/local/bin/gdal-config
GDAL version: 2.1.4
PostgreSQL config: /usr/local/pgsql/bin/pg_config
PostgreSQL version: PostgreSQL 12.5
PROJ4 version: 49
Libxml2 config: /usr/bin/xml2-config
Libxml2 version: 2.9.10
JSON-C support: no
protobuf support: no
PCRE support: yes
Perl: /usr/bin/perl
Wagyu: no --------------- Extensions ---------------
PostGIS Raster: enabled
PostGIS Topology: enabled
SFCGAL support: disabled
Address Standardizer support: enabled -------- Documentation Generation --------
xsltproc: /usr/bin/xsltproc
xsl style sheets: /usr/share/sgml/docbook/xsl-stylesheets
dblatex:
convert:
mathml2.dtd: http://www.w3.org/Math/DTD/mathml2/mathml2.dtd configure: WARNING: --------- GEOS VERSION WARNING ------------
configure: WARNING: You are building against GEOS 3.6.1.
configure: WARNING:
configure: WARNING: To take advantage of _all_ the features of
configure: WARNING: PostGIS, GEOS 3.7.0 or higher is required.
configure: WARNING:
configure: WARNING: For _most_ features, GEOS 3.6.0 is enough.
configure: WARNING:
configure: WARNING: We recommend GEOS 3.7.0 or higher
configure: WARNING:
configure: WARNING: You can download the latest versions from
configure: WARNING: http://geos.osgeo.org/
configure: WARNING:

发现检查没问题后,就基本上离成功不远了。

开始编译postgis源码,运行

make

几分钟后,编译成功,输出

然后运行安装命令

make install

安装很快。

验证

结束后,我们来验证下。

查看下版本,没问题。

建张表,做个简单的空间查询。

postgres=# create table testg ( id int, geom geometry );
CREATE TABLE
postgres=# insert into testg values (1, ST_GeomFromText('point(116 39)'));
INSERT 0 1
postgres=# select st_astext(geom) from testg where ST_Intersects(ST_GeomFromText('POLYGON((116 39, 116.1 39, 116.1 39.1, 116 39.1, 116 39))'), geom);
st_astext
---------------
POINT(116 39)
(1 row)

[转帖]在麒麟Linux安装Postgis的更多相关文章

  1. 0级搭建类004-中标麒麟 Linux 安装 (V7.0) 公开

    项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...

  2. [zz] 安装PostGIS(Linux篇)

    0.安装PostgreSQL数据库 参考安装PostgreSQL数据库(Linux篇). 1.安装proj4 #tar zxvf proj-4.8.0.tar.gz#cd proj-4.8.0#./c ...

  3. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (一) 安装dotnet core

    背景 根据我之前写的文章 将 Net 项目升级 Core项目经验:(一)迁移Net项目为Net Core\Standard项目,我们将公司内部最核心的ORM框架迁移到net core 上面,并在win ...

  4. PostgreSQL 之 yum安装 postgis 插件

    版本说明: CentOS7.5 + PostgreSQL 10.5 参考资源: https://www.postgresql.org/download/linux/redhat/ http://dow ...

  5. (转帖整理)Linux下的Autoconf和AutoMake(理论篇) 1

    在搜索网上资料过程中,这是感觉最简洁有效的一篇文章,特进行转帖记录,并根据情况对部分内容进行了修改.原帖传送门:Linux下的Autoconf和AutoMake 1.工具安装在开始使用autoconf ...

  6. 国产中标麒麟Linux部署dotnet core 环境并运行项目 (二) 部署运行控制台项目

    背景 在上一篇文章安装dotnet core,已经安装好dotnet core了.之前只是安装成功了dotnet, 输入dotnet --info,可以确认安装成功了,但是在运行代码时,还是报错了,本 ...

  7. 搜狗输入法linux安装 以及 12个依赖包下载链接分享

    搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:w ...

  8. linux安装php

    接上篇:linux安装apache 一.安装php 先安装libxml2库 [root@ctxsdhy package]# yum -y install libxml2-devel 最新地址在:htt ...

  9. linux安装oracle11g

    准备oracle安装文件 Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过SS ...

  10. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

随机推荐

  1. 序列化性能测试:jdk和fastjson

    序列化性能测试:jdk和fastjson 我开发一个认证授权框架时,需要添加数据库存储token或者会话,于是想测试使用jdk的blob存储解析快还是存储string的json序列化解析快,从而选择他 ...

  2. 文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题

    七.设计算法,仅使用三次实数乘法即可完成复数 a+bi和c+di 相乘.算法需接收a.b.c和d 为输入,分别生成实部 ac-bd 和虚部ad+bc. 文心一言: 可以使用如下算法来计算复数 a+bi ...

  3. 2020-11-05:谈一下TCP的拥塞控制。

    福哥答案2020-11-05: 所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载.出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞旺旺表现为通信时延的增加 ...

  4. maven系列:属性管理和版本管理

    目录 一. 属性配置与使用 ①:定义属性 ②:引用属性 二. 资源文件引用属性 ①:定义属性 ②:配置文件中引用属性 ③:开启资源文件目录加载属性的过滤器 ④:配置maven打war包时,忽略web. ...

  5. 作为所有类的顶层父类,没想到Object的魔力如此之大!

    写在开头 在上一篇博文中我们提到了Java面向对象的四大特性,其中谈及"抽象"特性时做了一个引子,引出今天的主人公Object,作为所有类的顶级父类,Object被视为是James ...

  6. 云图说|云数据库GaussDB如何做到卓越性能

    摘要:对于数据库来说,性能一直被视为最关键的部分.GaussDB作为华为自主创新研发的分布式关系型数据库,那么华为云数据库GaussDB在提升数据库性能方面都有哪些黑科技呢? 本文分享自华为云社区&l ...

  7. 9个SQL运维常遇到的问题

    摘要:本文重点介绍单个SQL语句持续执行慢的场景. 本文分享自华为云社区<GaussDB(DWS) SQL性能问题案例集>,作者:黎明的风. 本文重点介绍单个SQL语句持续执行慢的场景.我 ...

  8. DBA:介里有你没有用过的“CHUAN”新社区版本Redis6.0

    摘要:华为云DCS Redis 6.0社区版带来了极致性能.功能全面.可靠性强.性价比高的云服务,并且完全兼容开源Redis,客户端无需修改代码,开通后即可使用,使企业完全无需后顾之忧就能享受到业务响 ...

  9. web自动化-selenium携带cookie免密登录

    在我们做web自动化的时候,经常会遇到含有登录的页面,我们必须登录之后才能够对我们想要操作的页面元素进行定位,也就是说所有的操作都在登录前提下,其实没必要每次请求都先登录,当我们登录成功了,会在coo ...

  10. 神经网络优化篇:详解动量梯度下降法(Gradient descent with Momentum)

    动量梯度下降法 还有一种算法叫做Momentum,或者叫做动量梯度下降法,运行速度几乎总是快于标准的梯度下降算法,简而言之,基本的想法就是计算梯度的指数加权平均数,并利用该梯度更新的权重. 例如,如果 ...