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

全文导读:本文主要介绍了在统信桌面专业版1070操作系统上部署 PostgreSQL 14.2 和 PostGIS 3.2 环境的详细步骤,涵盖从准备环境、安装依赖到编译源代码和服务配置的全过程,旨在帮助用户顺利完成数据库环境的搭建。

应用场景

硬件/整机信息:天阔W40P-中科可控
CPU架构:X86(海光C86-3G 3350)
OS版本信息:1070桌面专业版
软件信息:postgresql-14.2+postgis-3.2

背景介绍

客户购买了天阔W40P-中科可控高性能机器,指定需要在机器上跑国产桌面操作系统+业务系统(包含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依赖大量的组件,因此需要电脑连接互联网,安装所需要的依赖源。
依次执行下面命令:
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

依次执行下面的命令:
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

三、初始化数据库、并测试启动

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环境变量中:
切换到所需的账号环境下执行下面命令:
echo 'export PATH=/usr/local/pgsql/bin:$PATH' >> ~/.bashrc source ~/.bashrc

五、下载并安装 PostGIS 源代码

依次执行下面的命令:
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添加到系统服务中

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配置并启动服务:
sudo systemctl daemon-reload sudo systemctl enable postgresql sudo systemctl start postgresql

七、测试创建数据库并添加扩展

postgres中创建数据库并添加以下扩展,其中一个添加不上,就是上面图片的报错
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安装或源码安装缺的依赖即可解决报错问题。

©统信软件技术有限公司。访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务进行转载,须备注:该文档出自【faq.uniontech.com】统信软件知识分享平台。否则统信软件将追究相关版权责任。

2024-12-06
0 0