nVisual国产操作系统部署指南
nVisual国产操作系统部署指南 本指南详细介绍了在麒麟Kylin V10系统(支持ARM/x86_64架构)上部署nVisual的全流程。主要内容包括: 环境要求:涵盖操作系统、数据库(PostgreSQL/人大金仓)、Web服务等组件版本要求 ARM架构部署: 源码编译安装PostgreSQL 13及相关地理信息组件(PostGIS/pgRouting) 详细编译步骤和配置参数 数据库初始化
nVisual 国产操作系统部署指南
本文档介绍在麒麟 Kylin V10 等国产信创系统上部署 nVisual 的完整流程,涵盖 ARM 架构和 x86_64 架构,以及 PostgreSQL 和 **人大金仓(KingbaseES)**两种数据库方案。
一、环境概览
| 组件 | 技术选型 |
|---|---|
| 操作系统 | 麒麟 Kylin Linux Advanced Server V10(ARM / x86_64) |
| 数据库 | PostgreSQL 13 + PostGIS + pgRouting 或 人大金仓 KingbaseES V8 |
| Web 服务 | Nginx(1.18+) |
| Java 环境 | JDK 8 |
| 消息队列 | RabbitMQ 3.8+(可选) |
二、麒麟 V10 ARM 架构部署(源码编译)
2.1 安装编译依赖
yum install -y bzip* perl-ExtUtils-Embed flex bison readline-devel \
zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel \
openldap-devel python-devel gcc-c++ libssh2-devel cmake sqlite-devel git
离线环境可用
yum install --downloadonly提前下载 rpm 包后上传安装。
2.2 编译安装 PostgreSQL 13
tar xvf postgresql-13.1.tar.bz2
cd postgresql-13.1
./configure --prefix=/opt/pgsql
gmake && gmake install
2.3 编译安装 PostGIS 依赖
按顺序编译安装:GEOS → PROJ → libxml2 → json-c → GDAL → protobuf → protobuf-c → PostGIS
各组件编译示例:
# GEOS
tar xvf geos-3.8.0.tar.bz2 && cd geos-3.8.0
./configure --prefix=/opt/geos-3.8.0 --enable-python
make && make install
# PROJ
tar xvf proj-6.2.1.tar.gz && cd proj-6.2.1
./configure --prefix=/opt/proj-6.2.1
make && make install
# GDAL
tar xvf 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 -j && make install
# protobuf
tar xvf protobuf-all-3.6.1.tar.gz && cd protobuf-3.6.1
./configure --prefix=/opt/protobuf-3.6.1
make && make install
# protobuf-c
tar xvf protobuf-c-1.4.0.tar.gz && cd protobuf-c-1.4.0
export PKG_CONFIG_PATH=/opt/protobuf-3.6.1/lib/pkgconfig
./configure --prefix=/opt/protobuf-c-1.4.0
make && make install
# PostGIS
tar xvf 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
make && make install
2.4 编译安装 pgRouting
先安装 CGAL 和 BOOST:
# CGAL
tar xvf 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
# BOOST
tar xvf boost_1_81_0.tar.gz && cd boost_1_81_0
./bootstrap.sh && ./b2 && ./b2 install
# pgRouting
tar xvf pgrouting-3.4.2.tar.gz && cd pgrouting-3.4.2
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=/opt/pgrouting-3.4.2 ..
make && make install
2.5 初始化与启动数据库
groupadd postgres && useradd postgres
mkdir /opt/pgsql/data && chown postgres:postgres /opt/pgsql/data
su - postgres
/opt/pgsql/bin/initdb -D /opt/pgsql/data
/opt/pgsql/bin/pg_ctl start -D /opt/pgsql/data
修改配置文件允许远程连接:
pg_hba.conf:添加host all all 0.0.0.0/0 trustpostgresql.conf:设置listen_addresses = '*'
配置动态库路径:
vim /etc/ld.so.conf # 添加 /opt/pgsql/lib、/opt/geos-3.8.0/lib 等路径
ldconfig
2.6 启用插件
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION pgrouting;
2.7 安装 Nginx
麒麟镜像内置 Nginx rpm 包,直接安装:
cd nginx && rpm -ivh *.rpm
systemctl enable --now nginx.service
创建前端目录并解压 dist 包:
mkdir -p /home/nvisual-frontend/dist
tar xvf dist*.tar.gz -C /home/nvisual-frontend/dist
2.8 安装 RabbitMQ(可选)
rpm -ivh erlang*.rpm
rpm -ivh socat*.rpm
rpm -ivh rabbitmq-server*.rpm
systemctl enable --now rabbitmq-server.service
rabbitmq-plugins enable rabbitmq_management
2.9 安装 JDK 并启动后端
tar xvf jdk-8u321-linux-aarch64.tar.gz
cp -r jdk1.8.0_321 /usr/local/
# 配置 /etc/profile 添加 JAVA_HOME 等环境变量
source /etc/profile
# 启动 jar 包
nohup java -Dfile.encoding=utf-8 -jar nvisual*.jar &
三、麒麟 V10 SP3 x86_64 部署(较新版本)
3.1 挂载本地 Yum 源
mkdir -p /opt/iso
mount -o loop /opt/Kylin-iso/*.iso /opt/iso
cat > /etc/yum.repos.d/kylin-local.repo << EOF
[kylin-local]
name=Kylin Local Repository
baseurl=file:///opt/iso
enabled=1
gpgcheck=0
EOF
yum clean all && yum makecache
3.2 安装 JDK
yum -y install java-1.8.0-openjdk
java -version
3.3 安装 Nginx(源码编译)
yum install -y gcc make pcre pcre-devel zlib zlib-devel openssl openssl-devel
tar xvf nginx-1.28.0.tar.gz && cd nginx-1.28.0
./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf --pid-path=/var/run/nginx.pid \
--with-http_ssl_module --with-http_v2_module --with-threads --with-http_realip_module
make && make install
注册 systemd 服务并启动:
cat > /etc/systemd/system/nginx.service << 'EOF'
[Unit]
Description=nginx - high performance web server
After=network.target
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now nginx
3.4 编译安装 PostgreSQL 13.22
yum install -y readline-devel zlib-devel flex bison openssl-devel \
libxml2-devel libxslt-devel pam-devel perl-devel systemd-devel
tar xvf postgresql-13.22.tar.gz && cd postgresql-13.22
./configure --prefix=/usr/local/pgsql-13 --with-openssl \
--with-libxml --with-libxslt --with-pam --with-systemd
make -j $(nproc) && make install
# 安装 contrib 插件
cd contrib && make && make install
初始化数据库:
useradd -m -U postgres && passwd postgres
mkdir -p /usr/local/pgsql-13/data
chown postgres:postgres /usr/local/pgsql-13/data
su - postgres
/usr/local/pgsql-13/bin/initdb -D /usr/local/pgsql-13/data --locale=en_US.UTF-8
注册 systemd 服务并启动。
3.5 编译安装 PostGIS 3.6.0(较新版本)
依赖编译(使用 cmake 构建):
# GEOS 3.14.0
mkdir build && cd build && cmake .. && make && make install
# PROJ
mkdir build && cd build && cmake .. && make && make install
# GDAL 3.8.4
mkdir build && cd build && cmake .. && make && make install
# protobuf → protobuf-c → postgis
创建库符号链接并启用插件。
3.6 数据库优化
访问 https://pgtune.leopard.in.ua,根据服务器配置获取优化参数,写入 postgresql.conf 后重启数据库。
四、人大金仓 KingbaseES V8 数据库(国产替代)
4.1 硬件与系统要求
| 项目 | 要求 |
|---|---|
| CPU | X86、龙芯、飞腾、鲲鹏 |
| 操作系统 | 麒麟 V10、统信 UOS、中标麒麟、中科方德等 |
| 内存 | 512MB 以上 |
| 硬盘 | 10GB 以上空闲,/tmp 至少 10G |
4.2 内核参数配置
编辑 /etc/sysctl.conf,添加:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
4.3 安装步骤
# 创建安装用户
useradd -m kingbase && passwd kingbase
# 挂载 ISO
mount KingbaseES_*.iso ./KingbaseESV8
# 图形化安装
sh setup.sh -i swing
# 或命令行安装
sh setup.sh -i console
关键参数:端口 54321,账户 system,字符集 UTF8,兼容模式 ORACLE。
4.4 启用 PostGIS 与 pgRouting 扩展
联系金仓技术人员获取对应补丁包,将 bin/、lib/、share/extension/ 目录文件拷贝到数据库安装目录对应位置后执行:
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION pgrouting;
验证安装:
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;
五、部署 nVisual 软件
5.1 前端部署
mkdir -p /home/nvisual-frontend/dist
tar xvf dist*.tar.gz -C /home/nvisual-frontend/dist
# 模型库图片包解压至 dist/img/nvisual/ 下
配置 Nginx 指向该目录,重启 Nginx。
5.2 后端部署
mkdir /home/nvisual-backend
# 上传 jar 包
cd /home/nvisual-backend
# 修改 application.properties 中数据库连接信息
nohup java -Dfile.encoding=utf-8 -jar nvisual*.jar &
5.3 关闭防火墙与 SELinux
systemctl disable firewalld.service
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
六、常见问题
| 问题 | 解决方案 |
|---|---|
| PostGIS 插件加载报错缺少 .so 文件 | 将编译安装的库路径写入 /etc/ld.so.conf 并执行 ldconfig |
GDAL 编译报 PNG_ARM_NEON_OPT 错误 |
在 pngpriv.h 中 #ifndef PNG_ARM_NEON_OPT 上方添加 #define PNG_ARM_NEON_OPT 0 |
| PostGIS 编译报 protobuf-c 版本过低 | 修改 configure 文件,插入 PROTOC_VERSION="libprotoc 3.6.1" |
| 人大金仓 MVT 返回空 | 联系金仓技术人员获取正确的 PostGIS 补丁包 |
📄 参考来源:
- docs/nvisual/麒麟V10ARM架构编译安装与部署nVisual.md
- docs/nvisual/基于国产信创系统部署运行环境.md
- docs/nvisual/人大金仓数据库部署文档.md
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)