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. android ProgressBar样式

    实现进度条由浅黄(#ffff33)到深黄色(#ff6600)的渐变样式. 与进度条自动从0加载到99,进度条每次加1 android:max:进度条的最大值. android:progressDraw ...

  2. 【Python】人工智能-机器学习——不调库手撕深度网络分类问题

    1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...

  3. apex的安装过程及问题解决(ModuleNotFoundError:No module named 'packaging')

    最近在复现代码时遇到了如下问题,在此记录一下问题的解决过程: 步骤一 git clone https://github.com/NVIDIA/apex.git 步骤二 cd apex 步骤三 pip ...

  4. 基于LiteOS Studio零成本学习LiteOS物联网操作系统

    摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资.LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开 ...

  5. Axure 二维码扫码

    基础布局 1.一个300X395的黑底黑框矩形,不透明度为20%,命名为"背景框": 2.一个150X150的白底白框矩形,不透明度为70%,命名为"扫描框": ...

  6. selenium多标签,多表单切换

    Selenium多标签之间的切换 多标签之间的切换 有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新打开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况 获取所有窗口的句柄 han ...

  7. 低风险稳健策略:BTC套利策略

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 币安零手续费带来的机会 从7月8日的20点开始,币安推出了BTC现货交易零手续费的优惠活动,不论是Mak ...

  8. 图标闪烁CSS

    图标闪烁CSS代码 <!DOCTYPE html> <html> <head> <style> #markerDiv { position: absol ...

  9. Codeforces Round #719 (Div. 3) A~E题解

    51鸽了几天,有几场比赛的题解还没发布,今天晚上会补上的 1520A. Do Not Be Distracted! 问题分析 模拟,如果存在已经出现的连续字母段则输出NO using ll = lon ...

  10. Educational Codeforces Round 96 (Rated for Div. 2) (A - C题个人题解)

    因为火锅导致错过的上分机会,赛后发现人均AC5题 1430A. Number of Apartments 暴力搜索 #include<bits/stdc++.h> using namesp ...