当前位置: 首页 > news >正文

opengauss中安装PostGIS - 教程

opengauss中安装PostGIS - 教程

1. 环境准备

操作系统:CentOS/Ubuntu

1. 以操作系统用户omm登录数据库任一主机。

2.创建GCC安装主目录\$GAUSSHOME/gcc和代码下载目录\$GAUSSHOME/gcc/packages

mkdir $GAUSSHOME/gcc
mkdir $GAUSSHOME/gcc/packages

3. 下载软件包gcc-7.3.0.tar.gz、gmp-6.1.0.tar.xz、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.gz至\$GAUSSHOME/gcc/packages目录 (使用华为云,速度快)

wget https://repo.huaweicloud.com/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
wget https://repo.huaweicloud.com/gnu/gmp/gmp-6.1.0.tar.xz
wget https://repo.huaweicloud.com/gnu/mpfr/mpfr-3.1.4.tar.gz
wget https://repo.huaweicloud.com/gnu/mpc/mpc-1.0.3.tar.gz

4.解压下载软件

cd $GAUSSHOME/gcc/packages
tar -xzf gcc-7.3.0.tar.gz
tar -xvJf gmp-6.1.0.tar.xz
tar -xzf mpc-1.0.3.tar.gz
tar -xzf mpfr-3.1.4.tar.gz

5. 创建GCC安装目录

mkdir $GAUSSHOME/gcc/gcc-7.3.0
mkdir $GAUSSHOME/gcc/gcc-7.3.0/depend
mkdir $GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0
mkdir $GAUSSHOME/gcc/gcc-7.3.0/depend/mpfr-3.1.4
mkdir $GAUSSHOME/gcc/gcc-7.3.0/depend/mpc-1.0.3
mkdir $GAUSSHOME/gcc/gcc-7.3.0/depend/gcc

6.安装gmp-6.1.0

cd $GAUSSHOME/gcc/packages/gmp-6.1.0
./configure --prefix $GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0
make -sj
make install -sj

7.安装mpfr-3.1.4

cd $GAUSSHOME/gcc/packages/mpfr-3.1.4
./configure --prefix $GAUSSHOME/gcc/gcc-7.3.0/depend/mpfr-3.1.4 --with-gmp=$GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0
make -sj
make install -sj

8.安装mpc-1.0.3

cd $GAUSSHOME/gcc/packages/mpc-1.0.3
./configure --prefix=$GAUSSHOME/gcc/gcc-7.3.0/depend/mpc-1.0.3  --with-gmp=$GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0 --with-mpfr=$GAUSSHOME/gcc/gcc-7.3.0/depend/mpfr-3.1.4
make -sj
make install -sj

9.安装gcc-7.3.0

9.1 添加lib路径至~/.bashrc

在vim编辑器中打开~/.bashrc文档

vim ~/.bashrc

添加以下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0/lib:$GAUSSHOME/gcc/gcc-7.3.0/depend/mpfr-3.1.4/lib:$GAUSSHOME/gcc/gcc-7.3.0/depend/mpc-1.0.3/lib

执行如下命令使设置生效

source ~/.bashrc

9.2 进入$GAUSSHOME/gcc/packages/gcc-7.3.0目录,执行下列命令完成gcc安装操作

cd $GAUSSHOME/gcc/packages/gcc-7.3.0
./configure --prefix=$GAUSSHOME/gcc/gcc-7.3.0/depend/gcc -disable-multilib --with-gmp=$GAUSSHOME/gcc/gcc-7.3.0/depend/gmp-6.1.0 -enable-languages=c,c++ --with-mpfr=$GAUSSHOME/gcc/gcc-7.3.0/depend/mpfr-3.1.4 --with-mpc=$GAUSSHOME/gcc/gcc-7.3.0/depend/mpc-1.0.3
make -j2
make install -j2

9.3 设置环境变量

在vim编辑器中打开~/.bashrc文档。

vim ~/.bashrc

加入以下内容:

export CC=$GAUSSHOME/gcc/gcc-7.3.0/depend/gcc/bin/gcc
export CXX=$GAUSSHOME/gcc/gcc-7.3.0/depend/gcc/bin/g++
export LD_LIBRARY_PATH=$GAUSSHOME/gcc/gcc-7.3.0/depend/gcc/lib64:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/gcc/gcc-7.3.0/depend/gcc/bin:$PATH

执行如下命令使设置生效

source ~/.bashrc

2. PostGIS依赖库安装

1.  从网站https://opengauss.obs.cn-south-1.myhuaweicloud.com/dependency/postgis-xc-master-2020-09-17.tar.gz获取PostGIS源码至$GAUSSHOME目录,下载压缩包,解压后需将文件夹重命名为postgis-xc

1.1  进入 $GAUSSHOME(若变量未设置,先自行 export)

cd "$GAUSSHOME"

1.2 下载 PostGIS 源码压缩包

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/dependency/postgis-xc-master-2020-09-17.tar.gz

1.3 解压

tar -xzf postgis-xc-master-2020-09-17.tar.gz

1.4 重命名文件夹为 postgis-xc

mv postgis-xc-master postgis-xc

2. 下载补丁文件到$GAUSSHOME目录,并打入补丁

2.1 确保变量已设置

cd "$GAUSSHOME"

2.2 进入 postgis-xc 源码目录

cd postgis-xc

2.3 下载补丁文件

curl -L -A "Mozilla/5.0" \-o postgis_2.4.2-2.patch \https://gitee.com/opengauss/openGauss-third_party/raw/master/gpl_dependency/postgis/postgis_2.4.2-2.patch

如果拿到的是HTML页面的话,可以直接通过以下网址下载补丁文件,再放到$GAUSSHOME/include/postgresql/server/路径下即可

https://gitcode.com/opengauss/openGauss-third_party/blob/master/gpl_dependency/postgis/extension_dependency.h

打入补丁

patch -p1 < postgis_2.4.2-2.patch

3. 分别编译Geos、Proj、JSON-C、Libxml2、PostGIS并生成相关动态链接库

3.1 Geos

cd $GAUSSHOME/postgis-xc/geos-3.6.2
chmod +x ./configure
./configure --prefix=$GAUSSHOME/install/geos
make -sj
make install -sj

3.2 Proj

cd $GAUSSHOME/postgis-xc/proj-4.9.2
chmod +x ./configure
./configure --prefix=$GAUSSHOME/install/proj
make -sj
make install -sj

3.3 JSON-C

cd $GAUSSHOME/postgis-xc/json-c-json-c-0.12.1-20160607
chmod +x ./configure
./configure --prefix=$GAUSSHOME/install/json
make -sj
make install -sj

3.4 Libxml2

cd $GAUSSHOME/postgis-xc/libxml2-2.7.1
chmod +x ./configure
./configure --prefix=$GAUSSHOME/install/libxml2
make -sj
make install -sj

3.5 Gdal

cd $GAUSSHOME/postgis-xc/gdal-1.11.0
chmod +x ./configure
chmod +x ./install-sh
./configure --prefix=$GAUSSHOME/install/gdal --with-xml2=$GAUSSHOME/install/libxml2/bin/xml2-config --with-geos=$GAUSSHOME/install/geos/bin/geos-config --with-static_proj4=$GAUSSHOME/install/proj CFLAGS='-O2 -fpermissive -pthread'
make -sj
make install -sj

3.6 PostGIS

cd $GAUSSHOME/postgis-xc/postgis-2.4.2
chmod +x ./configure
./configure \--prefix=$GAUSSHOME/install/postgis2.4.2 \--with-pgconfig=$GAUSSHOME/bin/pg_config \--with-projdir=$GAUSSHOME/install/proj \--with-geosconfig=$GAUSSHOME/install/geos/bin/geos-config \--with-jsondir=$GAUSSHOME/install/json \--with-xml2config=$GAUSSHOME/install/libxml2/bin/xml2-config \--without-raster \--without-topology \CFLAGS='-O2 -fpermissive -DPGXC -pthread -D_THREAD_SAFE -D__STDC_FORMAT_MACROS -DMEMORY_CONTEXT_CHECKING -w' \CC=g++

若在configure阶段,出现一些命令找不到的问题,则可能是环境变量的问题,再导入一下

export CPPFLAGS="-I$GAUSSHOME/include/postgresql/server/cm -I$GAUSSHOME/include/postgresql/server -I$GAUSSHOME/include"
export LDFLAGS="-L$GAUSSHOME/lib"
export PATH=$GAUSSHOME/bin:$PATH
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
make -sj
make install -sj

3.7 omm用户执行下面的语句,完成PostGIS相关动态链接库在数据库实例节点中的分发

mv $GAUSSHOME/lib/postgresql/postgis-2.4.so $GAUSSHOME/install/postgis-2.4.so
cp $GAUSSHOME/install/postgis-2.4.so $GAUSSHOME/lib/postgresql/postgis-2.4.so
cp $GAUSSHOME/install/json/lib/libjson-c.so.2 $GAUSSHOME/lib/libjson-c.so.2
cp $GAUSSHOME/install/geos/lib/libgeos_c.so.1 $GAUSSHOME/lib/libgeos_c.so.1
cp $GAUSSHOME/install/proj/lib/libproj.so.9 $GAUSSHOME/lib/libproj.so.9
cp $GAUSSHOME/install/geos/lib/libgeos-3.6.2.so $GAUSSHOME/lib/libgeos-3.6.2.so
cp $GAUSSHOME/install/postgis2.4.2/lib/liblwgeom-2.4.so.0 $GAUSSHOME/lib/liblwgeom-2.4.so.0
cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis--2.4.2.sql $GAUSSHOME/share/postgresql/extension/postgis--2.4.2.sql
cp $GAUSSHOME/postgis-xc/postgis-2.4.2/postgis.control $GAUSSHOME/share/postgresql/extension/postgis.control

3.8 重启数据库实例。

gs_om -t restart

3. 测试扩展

# 连接opengauss数据库
gsql
#测试postgis
create extension postgis

参考链接:https://blog.csdn.net/GaussDB/article/details/128670415?spm=1001.2014.3001.5506

http://www.jsqmd.com/news/370468/

相关文章:

  • 中原装备标杆 开封金盛机械赋能多领域加工升级 - 朴素的承诺
  • 国内十大老字号制药公司,百姓信赖的健康标杆 - 包罗万闻
  • 自动化立体仓库品牌深度对比评测:全栈自研与行业定制成核心竞争力 - 品牌策略主理人
  • 输入停车场各区域实时车位,引导车辆驶向空闲最多的区域。
  • 强烈安利 9个 AI论文网站:本科生毕业论文写作全测评
  • Oppo应用市场获取商店URL
  • ooderNexus 实测揭秘:一个正在成长的 P2P AI 能力分发平台
  • 我用 5 个 Claude 角色复刻一个能交付的开发团队 - 147API
  • 深度感知算法在人形机器人中的应用:骨骼追踪技术
  • 2026仿真动物艺术与彩灯文创优选推荐 西南标杆引领行业多元发展 - 深度智识库
  • 干货合集:8个AI论文网站测评!自考毕业论文+格式规范全攻略
  • ESPIDF 分区表保姆级详解
  • AI/AGI时代数据为王:隐私和伦理是指路明灯还是前行中的桎梏
  • 架设服务器和租用服务器哪个更划算
  • 便携式设备的防盗报警器设计
  • 吐血推荐 9个降AIGC软件:本科生降AI率必备测评与推荐
  • 便携式温度检测记录系统
  • 便携式头盔外观造型设计
  • 赶deadline必备! 10个AI论文工具测评:自考毕业论文+格式规范全攻略
  • 强烈安利 9个降AI率软件降AIGC网站:研究生必看的降AI率工具深度测评
  • IPD咨询:如何通过组织与流程重构提升产品成功率?
  • 负债必看|2026靠谱信用卡贷款协商机构榜单,无套路不踩坑,和律掌柜亲测能上岸 - 代码非世界
  • 炸鸡汉堡外卖哪家好吃,送过来不软趴?美团外卖更划算! - Top品牌推荐
  • 基于MATLAB的常见数字调制解调方法实现
  • 中国十大老字号药企,藏着千年国药的底气 - 包罗万闻
  • OpenAPI规范中请求参数写法;ai平台任务编排框架思路整理;
  • 天津市万泓泰钢管有限公司做钢管定制费用高吗,口碑好? - 工业推荐榜
  • 2026年智慧大脑公司推荐及五大优质管理驾驶舱厂商汇总 - 品牌2025
  • 单片机物联网项目实战:基于LVGL的智能火灾报警系统-基于STM32F103ESP32-S3开发板(附教程/源码)
  • 2026信用卡逾期协商全攻略 跟银行谈还款的正确方式|一站式专业推荐 - 代码非世界