麒麟V10SP1部署postgresql+postgis+pgrouting

1、查看当前操作系统版本:

nkvers
############## Kylin Linux Version #################

Release:

Kylin Linux Advanced Server release V10 (Tercel)

Kernel:
4.19.90-17.5.ky10.aarch64

Build:
Kylin Linux Advanced Server
release V10 (SP1) /(Tercel)-aarch64-Build07/20200821
#################################################

2、安装依赖包

如果是无外网连接离线安装,先用:yum install –downloadonly [软件名称] –downloaddir=[指定rpm包存放路径] 下载好如下依赖包然后CP到服务器上运行RPM -IVH *.RPM,有外网连接直接运行如下命令:

yum install bzip*
yum install -y perl-ExtUtils-Embed
yum install -y flex
yum install -y bison
yum install -y readline-devel
yum install -y zlib-devel
yum install -y openssl-devel
yum install -y pam-devel
ryum install -y libxml2-devel
yum install -y libxslt-devel
yum install -y openldap-devel
yum install -y python-devel
yum install -y gcc-c++
yum install -y libssh2-devel
yum install cmake
yum install sqlite-devel

3、安装PostgreSQL

#下载源码包

wget http://ftp.postgresql.org/pub/source/v13.1/postgresql-13.1.tar.bz2

#解压源码包
tar xjvf postgresql-13.1.tar.bz2
#进入解压源码包目录
cd postgresql-13.1/
#配置编译
./configure –prefix=/opt/pgsql
#编译
gmake
#安装
gmake install

4、安装PostGIS依赖

因PostGIS依赖都无法通过YUM 源安装,因此只能通过源码安装:

4.1、#安装geos

wget http://download.osgeo.org/geos/geos-3.8.0.tar.bz2
tar -xjf geos-3.8.0.tar.bz2
cd geos-3.8.0
./configure –prefix=/opt/geos-3.8.0 –enable-python
make
sudo make install

4.2、#安装proj

wget https://download.osgeo.org/proj/proj-6.2.1.tar.gz
sudo apt-get install sqlite3
tar zxvf proj-6.2.1.tar.gz
cd proj-6.2.1
./configure –prefix=/opt/proj-6.2.1
make
sudo make install

4.3、#安装libxml2

wget ftp://xmlsoft.org/libxml2/libxml2-2.9.1.tar.gz
tar zxvf libxml2-2.9.1.tar.gz
cd libxml2-2.9.1
./configure –prefix=/opt/libxml2-2.9.1
make
sudo make install

4.4、#安装json-c

git clone https://github.com/json-c/json-c.git
mkdir json-c-build
cd json-c-build
cmake …/json-c -DCMAKE_INSTALL_PREFIX=/opt/json-c
make
sudo make install

4.5、#安装 gdal

wget https://download.osgeo.org/gdal/3.3.3/gdal-3.3.3.tar.gz
tar zxvf gdal-3.3.3.tar.gz
cd gdal-3.3.3
./configure –prefix=/opt/gdal-3.3.3 –with-proj=/opt/proj-6.2.1 –with-libjson-c=/opt/json-c
make clean;make
sudo make install

编译过程中如报PNG错误,需修改代码:vi /gdal-3.3.3/frmts/png/libpng/pngpriv.h
在#ifndef PNG_ARM_NEON_OPT行上增加#define PNG_ARM_NEON_OPT 0

4.6、安装protobuf

下载源码
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protobuf-all-3.6.1.tar.gz
tar zxvf protobuf-all-3.6.1.tar.gz
cd protobuf-3.6.1
./configure –prefix=/opt/protobuf-3.6.1
make
sudo make install
#配置环境变量,增加/usr/local/protobuf-3.6.1安装目录
vi /etc/profile
export CMAKE_HOME=/usr/bin/cmake
export PKG_CONFIG_PATH=/opt/protobuf-3.6.1/lib/pkgconfig
export PROTOBUF_HOME=/opt/protobuf-3.6.1
export PATH=$CMAKE_HOME/bin:$PROTOBUF_HOME/bin:$PATH
#wq保存退出
source /etc/profile
#验证protobuf执行程序
protoc –version

4.7、#安装protobuf-c

wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.4.0/protobuf-c-1.4.0.tar.gz
tar -zxvf protobuf-c-1.4.0.tar.gz
cd protobuf-c-1.4.0
#导入protobuf的pkgconfig,否则”–No package ‘protobuf’ found”
export PKG_CONFIG_PATH=/opt/protobuf-3.6.1/lib/pkgconfig
./configure –prefix=/opt/protobuf-c-1.4.0
make
make install
#配置环境变量,增加protobuf-c-1.4.0/bin
vi /etc/profile
export PATH=$PATH:/opt/protobuf-c-1.4.0/bin
#保存退出
source /etc/profile

5、安装PostGIS

#下载PostGIS源码

wget http://download.osgeo.org/postgis/source/postgis-3.1.6.tar.gz
tar zxvf postgis-3.1.6.tar.gz
cd postgis-3.1.6

./configure –prefix=/opt/postgis –with-gdalconfig=/opt/gdal-3.3.3/bin/gdal-config –with-pgconfig=/opt/pgsql/bin/pg_config –with-geosconfig=/opt/geos-3.8.0/bin/geos-config –with-projdir=/opt/proj-6.2.1/ –with-xml2config=/opt/libxml2-2.9.1/bin/xml2-config –with-jsondir=/opt/json-c –with-protobufdir=/opt/protobuf-c-1.4.0

注意:with前是两个-

make
make install
configrue 若提示版protobuf-c版本不对,需要手动修改configure脚本,增加版本变量值到configure文件。

6、安装pgRouting依赖

6.1、#安装CGAL

wget https://github.com/CGAL/cgal/archive/refs/tags/v5.5.1.tar.gz
tar -zxvf v5.5.1.tar.gz
cd cgal-5.5.1/
mkdir build

cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/cgal-5.5.1 …
make
make install

6.2、#安装BOOST

wget https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.gz
./bootstrap.sh –prefix=/opt/boost_1_81_0
./b2
sudo ./b2 install

7、安装pgRouting

wget https://github.com/pgRouting/pgrouting/releases/download/v3.4.2/pgrouting-3.4.2.tar.gz
tar -zxvf pgrouting-3.4.2.tar.gz
cd pgrouting-3.4.2
mkdir build
编辑环境配置文件vim /etc/profile
增加:export PATH=/opt/pgsql/bin/:$PATH
source /etc/profile
cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/pgrouting-3.4.2 …
make
make install

8、测试PostGIS与pgRouting

#启动PostgreSQL
su postgres
pg_ctl -D /opt/pgsql/data start
#进入psql
/opt/pgsql/bin/psql

#创建PostgreSQL扩展
CREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
CREATE EXTENSION postgis_topology;
#列表列表插件
\dx
#检查插件版本
SELECT PostGIS_full_version();
select pgr_version();
#测试MVT
WITH mvtgeom AS
(
SELECT ST_TileEnvelope(12,513,412) AS geom
)
SELECT ST_AsMVT(mvtgeom.*)
FROM mvtgeom;

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot框架在信息学科平台建设中的实用技巧

摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了基于保密信息学科平台系统的开发全过程。通过分析基于保密信息学科平台系统管理的不足,创建了一个计算机管理基于保密信息学科平台系统的方案。文章介…

完美解决“找不到MSVCR110.dll无法继续执行代码

msvcr110.dll是一个动态链接库(Dynamic Link Library,简称DLL)文件,它是Microsoft Visual C 2012 Redistributable Package的一部分。这个库文件包含了大量预先编写的函数和资源,用于支持那些使用Visual C 2012或与之兼…

C++【string的模拟实现】

在前文我们讲解了string类接口使用(C【string类的使用】(上),C【string类的使用】(下)),本片文章就来模拟实现string类。 注:本文实现的是string的部分重点内容,目的是为了更好的了解string&…

JS中计算时数据有误差解决方案

首先判断需要计算的数字是否为整数 // 判断一个数字是否为一个整数 export function isInt(num) {num Number(num);return Math.floor(num) num } 将一个浮点数转为整数,返回整数和倍数。如3.14 返回314 100 export function toInt(num) {var ret { times: 1,…

新能源汽车充电设施在储充电站的应用

0引言 全球能源和环境问题促使新能源汽车受到关注,但其推广受充电设施和能源供应限制。光伏站、储能站和电动汽车充放电站作为可再生能源利用和储存方式,具有巨大潜力。本研究旨在探索新能源汽车充电设施与这些站点的融合模式,以支持新能源汽…

【RESTful】RESTful API的设计原则

目录 引言一、协议二、域名三、版本(Versioning)四、路径(Endpoint)4.1 每个资源应有唯一的URI标识4.2 资源路径设计 五、HTTP动词5.1 常用HTTP动词及其作用5.2 RESTful API利用HTTP方法表示对商品资源的操作 六、使用自描述消息6…

Oracle 第11章:异常处理

在 Oracle PL/SQL 中,异常处理是一个重要的概念,它用于管理程序执行过程中可能发生的错误或特殊情况。异常可以是系统预定义的,也可以是由用户自定义的。 异常类型与处理机制 PL/SQL 提供了两种类型的异常: 预定义异常&#xf…

uniapp开发小程序【简单的实现点击下拉选择性别功能】

一、展示效果 二、代码 <template><view><view class="form_box"><view class="item"

Git 基础详解

1. 基本概念 Git是一个免费、开源的 分布式版本控制系统&#xff0c;可以高效处理小到大型的各种项目。 1.1 版本控制 版本控制&#xff1a;它是一种用于追踪和记录文件、目录、项目或软件的变化&#xff0c;以便将来查阅、比较、修订不同版本文件的系统 版本控制系统&…

Yarn介绍 | 组成 | 工作流程

1、理论 Apache YARN&#xff08;Yet another Resource Negotiator的缩写&#xff09;是Hadoop集群的资源管理系统&#xff0c;负责为计算程序提供服务器计算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等计算程序则相当于运行于操作系统之上的应用…

第十讲 MySQL为什么有时候会选错索引?

第十讲 MySQL为什么有时候会选错索引&#xff1f; 一、问题引入 在 MySQL 中&#xff0c;索引选择由优化器负责&#xff0c;其目标是以最小代价执行语句&#xff0c;但有时会选错索引&#xff0c;导致执行速度变慢。 二、案例分析 案例一 建表与数据插入 创建表t&#xff…

uniapp开发【选择地址-省市区功能】,直接套用即可

一、效果展示 二、代码 <template><view><view class="user_info"><view class="item"

如何获取当前数据库版本?

要获取当前数据库的版本&#xff0c;您可以使用以下几种方法之一&#xff0c;具体取决于您使用的数据库管理系统&#xff08;DBMS&#xff09;&#xff1a; 1. 使用SQL命令查询 大多数DBMS都提供了可以直接在SQL命令行界面或管理工具中执行的命令来获取版本信息。 对于安装在…

《Web性能权威指南》-WebRTC-读书笔记

本文是《Web性能权威指南》第四部分——WebRTC的读书笔记。 第一部分——网络技术概览&#xff0c;请参考网络技术概览&#xff1b; 第二部分——无线网络性能&#xff0c;请参考无线网络性能&#xff1b; 第三部分——HTTP&#xff0c;请参考HTTP&#xff1b; 第四部分——浏览…

高效水电管理:Spring Boot在大学城的应用

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理大学城水电管理系统的相关信息成为必然。开…

C#中,Thread和Task的区别

在C#中&#xff0c;Thread和Task都是用于实现多线程编程的重要概念&#xff0c;但它们之间存在一些关键的区别。以下是对这两者的详细比较&#xff1a; 一、基于不同的.NET框架 Thread&#xff1a;是基于Windows操作系统提供的API实现&#xff0c;它允许开发者直接创建和管理…

(linux驱动学习 - 12). IIC 驱动实验

目录 一.IIC 总线驱动相关结构体与函数 1.i2c_adapter 结构体 2.i2c_algorithm 结构体 3.向系统注册设置好的 i2c_adapter 结构体 - i2c_add_adapter 4.向系统注册设置好的 i2c_adapter 结构体 - i2c_add_numbered_adapter 5.删除 I2C 适配器 - i2c_del_adapter 二.IIC 设…

selenium操作已开启的浏览器,方便调试

一、谷歌浏览器配置&#xff1a; 在所安装的谷歌下面&#xff0c;执行下面命令&#xff0c;打开谷歌浏览器&#xff0c;用来selenium的操作&#xff1a; 注意事项&#xff1a;端口需要不被占用&#xff0c;--user-data-dir"D:\workspace\chrome-data"这个路径需要有…

特殊矩阵的压缩存储

一维数组的存储结构 ElemType arr[10]; 各数组元素大小相同&#xff0c;且物理上连续存放。 数组元素a[i]的存放地址 LOC i * sizeof(ElemType)。&#xff08;LOC为起始地址&#xff09; 二维数组的存储结构 ElemType b[2][4];二维数组也具有随机存取的特性&#xff08;需…

Maven(21)如何使用Maven进行代码检查?

Maven提供了多种方式来进行代码检查&#xff0c;包括使用静态代码分析工具如Checkstyle、PMD和FindBugs。以下是如何使用这些工具进行代码检查的详细步骤和代码示例&#xff1a; 步骤 1: 添加插件依赖 首先&#xff0c;你需要在pom.xml文件中添加相应的插件依赖。以下是一个包…