统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍

文章来源:统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍 | 统信软件-知识分享平台

应用场景

CPU架构:X86(海光C86-3G 3350)

OS版本信息:1070桌面专业版

软件信息:postgresql-14.2+postgis-3.2

背景介绍

客户需要在机器上跑国产桌面操作系统+业务系统(包含postgresql、redis、nginx、JDK等)。其自行安装业务系统组件后(UOS1060专业版+postgresql),重启电脑无法进入系统,报错如下图:

客户怀疑是UOS系统不兼容导致,需我方协助安装相关组件。

因电脑已无法进入系统,所以由供应商重装1070专业版系统,之后我方远程安装postgresql等组件。

本文介绍基于W40P+UOS1070部署postgresql-14.2+postgis-3.2环境。

解决方案

有多种方式安装postgresql-14.2+postgis-3.2,最方便快捷的方式为apt安装,但是apt源上的组件版本不符合客户要求,如下图

所以本次选用源码方式进行安装。

一、准备部署环境

postgresql+postgis依赖大量的组件,因此需要电脑连接互联网,安装所需要的依赖源。

依次执行下面命令:

bash 复制代码
sudo apt update

sudo apt install -y build-essential libreadline-dev zlib1g-dev libxml2-dev libxslt-dev libssl-dev libicu-dev libldap2-dev libcurl4-openssl-dev libpam0g-dev uuid-dev

sudo apt install -y libgeos-dev

sudo apt install -y libproj-dev

sudo apt install -y protobuf-compiler libprotobuf-dev

sudo apt install -y libprotobuf-c-dev protobuf-c-compiler

sudo apt install -y gdal-bin libgdal-dev
二、下载、配置、编译并安装PostgreSQL

依次执行下面的命令:

bash 复制代码
wget https://ftp.postgresql.org/pub/source/v14.2/postgresql-14.2.tar.bz2

tar xjf postgresql-14.2.tar.bz2

cd postgresql-14.2

./configure --prefix=/usr/local/pgsql --with-openssl --with-pam --with-ldap --with-libxml --with-libxslt --with-icu --with-zlib --with-readline

make

sudo make install
三、初始化数据库、并测试启动
bash 复制代码
sudo useradd postgres

sudo mkdir -p /usr/local/pgsql/data

sudo chown -R postgres:postgres /usr/local/pgsql/data

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

#测试启动PostgreSQL服务:

/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
四、添加环境变量

为了方便管理,可以将PostgreSQL的二进制路径添加到系统的PATH环境变量中:

切换到所需的账号环境下执行下面命令:

bash 复制代码
echo 'export PATH=/usr/local/pgsql/bin:$PATH' >> ~/.bashrc

source ~/.bashrc
五、下载并安装 PostGIS 源代码

依次执行下面的命令:

bash 复制代码
wget https://download.osgeo.org/postgis/source/postgis-3.2.0.tar.gz

tar -zxf postgis-3.2.0.tar.gz

cd postgis-3.2.0

./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --with-gdalconfig=/usr/bin/gdal-config --with-projdir=/usr --with-geosconfig=/usr/bin/geos-config

make

sudo make install
六、为方便管理postgresql启停,把postgresql添加到系统服务中
bash 复制代码
sudo vim /etc/systemd/system/postgresql.service

[Unit]

Description=PostgreSQL database server

After=network.target

[Service]

Type=forking

User=postgres

Group=postgres

ExecStart=/usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data -s -o "-p 5432" -w -t 300

ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D /usr/local/pgsql/data -s -m fast

ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D /usr/local/pgsql/data -s

Restart=on-failure

[Install]

WantedBy=multi-user.target

保存并关闭文件,然后重新加载Systemd配置并启动服务:

bash 复制代码
sudo systemctl daemon-reload

sudo systemctl enable postgresql

sudo systemctl start postgresql
七、测试创建数据库并添加扩展

postgres中创建数据库并添加以下扩展,其中一个添加不上,就是上面图片的报错

bash 复制代码
createdb gx_eq_assessment;

create extension postgis; 

create extension postgis_raster;

create extension postgis_sfcgal; 

create extension postgis_topology; 

create extension fuzzystrmatch; 

create extension postgis_tiger_geocoder

至此,安装机创建数据库都已成功。

备注:因操作系统环境各异的原因,部署或建库过程可能会遇到各种报错,一般是缺依赖导致,按照报错提示,apt安装或源码安装缺的依赖即可解决报错问题。

相关推荐
Knight_AL44 分钟前
Spring 事务传播行为 + 事务失效原因 + 传播行为为什么不用其他模式
数据库·sql·spring
倔强的石头_1 小时前
时序数据时代的“存储与分析困局”解析及金仓解决方案
数据库
计算机毕设VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
倔强的石头_2 小时前
场景化落地指南——金仓时序数据库在关键行业的应用实践
数据库
SelectDB2 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
运维·数据库·apache
zbguolei2 小时前
MySQL根据身份证号码计算出生日期和年龄
数据库·mysql
马克学长3 小时前
SSM校园图书借阅服务系统jd2z8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·图书管理系统·ssm 框架·ssm 校园图书借阅系统
软件派3 小时前
高斯数据库使用心得——从性能优化到行业实践的深度解析
数据库·oracle
Chan164 小时前
场景题:CPU 100% 问题怎么排查?
java·数据库·redis·后端·spring
电商API_180079052475 小时前
批量获取电商商品数据的主流技术方法全解析
大数据·数据库·人工智能·数据分析·网络爬虫