麒麟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;

相关推荐
喵手5 小时前
PostgreSQL 增量备份:保护你的数据资产
数据库·postgresql
我叫于豆豆吖8 小时前
出海企业如何借助云计算平台实现多区域部署?
部署·实例·
君败红颜1 天前
MySQL 和 PostgreSQL 的对比概述
数据库·mysql·postgresql
MMMMMMMMMMemory1 天前
服务器内存不够导致postgresql进程被kill的问题记录
运维·服务器·postgresql
PGCCC1 天前
【PGCCC】Postgresql 缓存池原理
spring·缓存·postgresql
DBA实战1 天前
PostgreSQL核心揭秘(二)-进程和内存架构
数据库·postgresql·架构
君败红颜1 天前
PostgreSQL 触发器的深入探讨
数据库·postgresql
高铭杰2 天前
Postgresql源码(137)执行器参数传递与使用
数据库·postgresql·参数·param·paramlistinfo
TracyDemo2 天前
PostgreSQL和MySQL在MVCC
数据库·mysql·postgresql
cyt涛2 天前
Docker — 跨平台和环境部署
java·运维·mysql·docker·容器·部署·项目