瀚高数据库(PostgreSQL 12)PostGIS 扩展离线安装指南
瀚高数据库(PostgreSQL 12)PostGIS 扩展离线安装指南
适用于无法访问外网的 Anolis OS 8 / CentOS 8 类服务器环境,采用源码编译方式安装 PostGIS 3.3.6 + GEOS 3.9.5 + PROJ 7.2.1。
一、环境信息
| 项目 | 版本 |
|---|---|
| 操作系统 | Anolis OS 8.8(兼容 CentOS 8 / RHEL 8 系列) |
| 数据库 | 瀚高 4.5 企业版(PostgreSQL 12.22) |
| 安装路径 | /opt/highgo/hgdb-4.5 |
| 数据目录 | /opt/highgo/hgdb-4.5/data |
| 数据库端口 | 5866 |
| 数据库用户 | sysdba / syssso / syssao |
版本兼容关系
| 组件 | 版本 | 说明 |
|---|---|---|
| PostGIS | 3.3.6 | 空间数据库扩展 |
| GEOS | 3.9.5 | 几何运算引擎 |
| PROJ | 7.2.1 | 坐标投影库 |
注意:如数据库版本不同(如 PostgreSQL 14),需查阅 PostGIS 版本兼容表 选择对应版本组合。
二、安装方法选择
采用 源码编译安装,原因:
- 瀚高数据库基于 PostgreSQL 内核修改,yum/apt 仓库中的 PostGIS 二进制包不兼容
- 服务器无法访问外网,无法通过包管理器在线安装
- 源码编译可精确控制安装路径和功能裁剪
裁剪说明:本次安装禁用了以下功能以减少依赖:
- Raster(栅格数据处理)—— 需要 GDAL,依赖链极长
- Protobuf(MVT/Geobuf 矢量切片)—— 需要 protobuf-c
- CURL(PROJ 网络同步)—— 规避 libssh/OpenSSL 版本冲突问题
三、前置条件
- root 权限
- 已安装 gcc(
gcc --version可验证) - 磁盘空间:编译过程临时文件约 500MB,最终安装约 50MB
- 瀚高数据库各角色密码:sysdba(数据库管理员)、syssso(系统安全员)、syssao(安全审计员)
四、下载资源清单
4.1 RPM 依赖包
所有 RPM 来自阿里云 CentOS 8 Stream 镜像:http://mirrors.aliyun.com/centos/8-stream/
| # | 包名 | 版本 | 来源仓库 | 说明 |
|---|---|---|---|---|
| 1 | gcc-c++ | 8.5.0-18.el8 | AppStream | C++ 编译器 |
| 2 | libstdc+±devel | 8.5.0-18.el8 | AppStream | C++ 标准库开发包 |
| 3 | libxml2-devel | 2.9.7-11.el8 | BaseOS | XML 解析库开发包 |
| 4 | json-c-devel | 0.13.1-2.el8 | AppStream | JSON 解析库开发包 |
| 5 | sqlite-devel | 3.26.0-19.el8 | BaseOS | SQLite 开发包 |
| 6 | libcurl-devel | 7.61.1-34.el8 | BaseOS | CURL 开发包 |
| 7 | cmake | 3.26.5-2.el8 | AppStream | CMake 构建工具(主包) |
| 8 | cmake-filesystem | 3.26.5-2.el8 | AppStream | CMake 文件系统 |
| 9 | cmake-data | 3.26.5-2.el8 | AppStream | CMake 数据文件 |
| 10 | cmake-rpm-macros | 3.26.5-2.el8 | AppStream | CMake RPM 宏 |
| 11 | libuv | 1.41.1-1.el8_4 | AppStream | cmake 运行时依赖 |
| 12 | bzip2 | 1.0.6-26.el8 | BaseOS | 解压工具 |
| 13 | libtiff | 4.0.9-31.el8 | AppStream | TIFF 图像库 |
| 14 | libtiff-devel | 4.0.9-31.el8 | AppStream | TIFF 开发包 |
| 15 | jbigkit-libs | 2.1-14.el8 | AppStream | libtiff 子依赖 |
| 16 | libjpeg-turbo | 1.5.3-12.el8 | AppStream | libtiff 子依赖 |
| 17 | xz-devel | 5.2.4-4.el8 | BaseOS | XZ 压缩开发包(libxml2 链接需要) |
RPM 包安装顺序有依赖关系,请严格按第六节的步骤执行。
4.2 源码包
所有源码来自 OSGeo 官方下载服务器:https://download.osgeo.org/
| # | 包名 | 版本 | 下载地址 |
|---|---|---|---|
| 1 | GEOS | 3.9.5 | https://download.osgeo.org/geos/geos-3.9.5.tar.bz2 |
| 2 | PROJ | 7.2.1 | https://download.osgeo.org/proj/proj-7.2.1.tar.gz |
| 3 | PostGIS | 3.3.6 | https://download.osgeo.org/postgis/source/postgis-3.3.6.tar.gz |
五、下载操作
在工作机上执行(Mac/Linux 均可):
# 创建下载目录
mkdir -p ~/Downloads/rpms && cd ~/Downloads/rpms
# 下载 RPM 包
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/gcc-c++-8.5.0-18.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/libstdc++-devel-8.5.0-18.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/libxml2-devel-2.9.7-11.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/json-c-devel-0.13.1-2.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/sqlite-devel-3.26.0-19.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/libcurl-devel-7.61.1-34.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/cmake-3.26.5-2.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/cmake-filesystem-3.26.5-2.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/cmake-data-3.26.5-2.el8.noarch.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/cmake-rpm-macros-3.26.5-2.el8.noarch.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/libuv-1.41.1-1.el8_4.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/bzip2-1.0.6-26.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/libtiff-4.0.9-31.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/libtiff-devel-4.0.9-31.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/jbigkit-libs-2.1-14.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/AppStream/x86_64/os/Packages/libjpeg-turbo-1.5.3-12.el8.x86_64.rpm"
curl -O "http://mirrors.aliyun.com/centos/8-stream/BaseOS/x86_64/os/Packages/xz-devel-5.2.4-4.el8.x86_64.rpm"
# 下载源码包
curl -O "https://download.osgeo.org/geos/geos-3.9.5.tar.bz2"
curl -O "https://download.osgeo.org/proj/proj-7.2.1.tar.gz"
curl -O "https://download.osgeo.org/postgis/source/postgis-3.3.6.tar.gz"
# 验证所有 RPM 文件类型(应全部显示 RPM v3.0)
file *.rpm
六、安装步骤
6.1 上传文件到服务器
scp ~/Downloads/rpms/*.rpm ~/Downloads/rpms/*.tar.* <用户>@<服务器IP>:/opt/highgo/hg-extensions/rpms/postgis/
scp ~/Downloads/rpms/install_postgis.sh <用户>@<服务器IP>:/opt/highgo/hg-extensions/
6.2 在服务器上安装 RPM 依赖包
重要:以下安装顺序有依赖关系,请严格按序执行。
cd /opt/highgo/hg-extensions/rpms/postgis
# 1. 解压工具
rpm -ivh bzip2-1.0.6-26.el8.x86_64.rpm
# 2. C++ 编译器(与系统 gcc 版本后缀不同,需 --nodeps)
rpm -ivh --nodeps gcc-c++-8.5.0-18.el8.x86_64.rpm
rpm -ivh libstdc++-devel-8.5.0-18.el8.x86_64.rpm
# 3. 开发库(如遇依赖冲突加 --nodeps)
rpm -ivh xz-devel-5.2.4-4.el8.x86_64.rpm
rpm -ivh libxml2-devel-2.9.7-11.el8.x86_64.rpm
rpm -ivh json-c-devel-0.13.1-2.el8.x86_64.rpm
rpm -ivh sqlite-devel-3.26.0-19.el8.x86_64.rpm
rpm -ivh libcurl-devel-7.61.1-34.el8.x86_64.rpm
# 4. libtiff 及子依赖
rpm -ivh jbigkit-libs-2.1-14.el8.x86_64.rpm
rpm -ivh libjpeg-turbo-1.5.3-12.el8.x86_64.rpm
rpm -ivh libtiff-4.0.9-31.el8.x86_64.rpm
rpm -ivh libtiff-devel-4.0.9-31.el8.x86_64.rpm
# 5. cmake 及子包
rpm -ivh libuv-1.41.1-1.el8_4.x86_64.rpm
rpm -ivh cmake-filesystem-3.26.5-2.el8.x86_64.rpm
rpm -ivh cmake-rpm-macros-3.26.5-2.el8.noarch.rpm
rpm -ivh cmake-data-3.26.5-2.el8.noarch.rpm
rpm -ivh --nodeps cmake-3.26.5-2.el8.x86_64.rpm
6.3 验证依赖安装
# 验证编译工具链
gcc --version
g++ --version
cmake --version
# 验证开发库头文件
ls /usr/include/c++/8/string # C++ 标准库
ls /usr/include/libxml2/libxml/parser.h # libxml2
ls /usr/include/json-c/json.h # json-c
ls /usr/include/sqlite3.h # sqlite3
ls /usr/include/curl/curl.h # libcurl
6.4 准备配置文件
在服务器上创建 install.conf,根据实际环境修改配置项(主要是 DB_NAME 改为你的目标数据库名):
cat > /opt/highgo/hg-extensions/install.conf << 'EOF'
# ============================================================
# PostGIS 离线安装 - 环境配置文件
# ============================================================
# 使用说明:根据实际服务器环境修改以下配置项,然后执行 install_postgis.sh
# ============================================================
# --- 瀚高数据库路径 ---
# 数据库安装根目录,GEOS/PROJ/PostGIS 也将安装到此目录下
HGDB_HOME=/opt/highgo/hgdb-4.5
# --- 源码存放路径 ---
# RPM 包和源码包在服务器上的存放位置
SRC_DIR=/opt/highgo/hg-extensions/rpms/postgis
# --- 数据库连接参数 ---
# 数据库监听端口
DB_PORT=5866
# 数据库超级管理员用户名
DB_USER=sysdba
# 系统安全员用户名(用于临时提权操作)
DB_USER_SECURITY=syssso
# 数据库名称(PostGIS 将安装到此数据库)
DB_NAME=<你的数据库名>
# --- 数据库控制命令 ---
# pg_ctl 完整路径(用于启停数据库)
PG_CTL=/opt/highgo/hgdb-4.5/bin/pg_ctl
# 数据目录
PG_DATA=/opt/highgo/hgdb-4.5/data
# --- 源码包版本 ---
# 如需更换版本,需同步修改下载地址中的版本号
GEOS_VERSION=3.9.5
PROJ_VERSION=7.2.1
POSTGIS_VERSION=3.3.6
# --- 编译参数 ---
# 并行编译线程数,默认使用所有 CPU 核心
# 在低配服务器上可改为具体数字,如:BUILD_JOBS=2
BUILD_JOBS=$(nproc)
EOF
6.5 编译安装 PostGIS
安装脚本 install_postgis.sh 内容如下,上传到 /opt/highgo/hg-extensions/ 目录即可:
#!/bin/bash
set -e
# ============================================================
# 瀚高数据库 PostGIS 精简安装脚本(无 Raster)
# 读取 install.conf 中的配置参数
# ============================================================
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
CONF_FILE="$SCRIPT_DIR/install.conf"
if [ ! -f "$CONF_FILE" ]; then
echo "❌ 配置文件不存在: $CONF_FILE"
echo "请先创建 install.conf,可参考 6.4 节中的模板"
exit 1
fi
source "$CONF_FILE"
# 验证必要参数
for var in HGDB_HOME SRC_DIR GEOS_VERSION PROJ_VERSION POSTGIS_VERSION; do
if [ -z "${!var}" ]; then
echo "❌ 配置项 $var 未设置,请检查 install.conf"
exit 1
fi
done
PG_CONFIG=$HGDB_HOME/bin/pg_config
echo "=== 瀚高数据库 PostGIS 精简安装脚本(无 Raster)==="
echo "配置来源: $CONF_FILE"
echo " HGDB_HOME = $HGDB_HOME"
echo " SRC_DIR = $SRC_DIR"
echo " GEOS_VERSION = $GEOS_VERSION"
echo " PROJ_VERSION = $PROJ_VERSION"
echo " POSTGIS_VERSION = $POSTGIS_VERSION"
echo " BUILD_JOBS = $BUILD_JOBS"
echo ""
# ============================================================
# 0. 检查依赖是否已安装
# ============================================================
echo "[0/4] 检查编译依赖..."
for cmd in gcc g++ make cmake; do
if ! command -v $cmd &>/dev/null; then
echo "❌ 缺少: $cmd,请先安装"
exit 1
fi
done
echo "✅ 编译工具链检查通过"
# 清理之前安装在 lib64 下的旧库
rm -f $HGDB_HOME/lib64/libproj.so*
rm -f $HGDB_HOME/lib64/libgeos*.so*
# ============================================================
# 1. 编译安装 GEOS
# ============================================================
echo "[1/4] 编译安装 GEOS $GEOS_VERSION..."
cd $SRC_DIR
if [ ! -d "geos-$GEOS_VERSION" ]; then
tar -xjf "geos-$GEOS_VERSION.tar.bz2"
fi
cd "geos-$GEOS_VERSION"
rm -rf build
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=$HGDB_HOME \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
..
make -j$BUILD_JOBS
make install
echo "✅ GEOS 安装完成"
# ============================================================
# 2. 编译安装 PROJ (CMake)
# ============================================================
echo "[2/4] 编译安装 PROJ $PROJ_VERSION..."
cd $SRC_DIR
rm -rf "proj-$PROJ_VERSION"
tar -xzf "proj-$PROJ_VERSION.tar.gz"
cd "proj-$PROJ_VERSION"
mkdir -p build && cd build
cmake -DCMAKE_INSTALL_PREFIX=$HGDB_HOME \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTING=OFF \
-DENABLE_CURL=OFF \
-DBUILD_PROJSYNC=OFF \
..
make -j$BUILD_JOBS
make install
echo "✅ PROJ 安装完成"
# ============================================================
# 3. 编译安装 PostGIS(无 Raster)
# ============================================================
echo "[3/4] 编译安装 PostGIS $POSTGIS_VERSION..."
cd $SRC_DIR
if [ ! -d "postgis-$POSTGIS_VERSION" ]; then
tar -xzf "postgis-$POSTGIS_VERSION.tar.gz"
fi
cd "postgis-$POSTGIS_VERSION"
export LD_LIBRARY_PATH=$HGDB_HOME/lib:$LD_LIBRARY_PATH
./configure \
--with-pgconfig=$PG_CONFIG \
--with-geosconfig=$HGDB_HOME/bin/geos-config \
--with-projdir=$HGDB_HOME \
--without-raster \
--without-protobuf \
--with-jsondir=/usr \
LDFLAGS="-L$HGDB_HOME/lib -Wl,--allow-shlib-undefined -Wl,-rpath,$HGDB_HOME/lib"
make -j$BUILD_JOBS
make install
echo "✅ PostGIS 安装完成"
# ============================================================
# 4. 配置环境变量 & 验证
# ============================================================
echo "[4/4] 配置环境变量..."
# 不使用 ldconfig(会破坏 cmake),改用 RPATH 嵌入库路径
# 如需全局生效,可手动执行: echo "$HGDB_HOME/lib" > /etc/ld.so.conf.d/highgo.conf && ldconfig
# 验证
if [ -f "$HGDB_HOME/share/postgresql/extension/postgis.control" ]; then
echo "✅ postgis.control 存在,安装成功!"
ls -lh $HGDB_HOME/share/postgresql/extension/postgis*.control
echo ""
echo "下一步:"
echo " 1. 通过 syssso 为 sysdba 临时提权:"
echo " $HGDB_HOME/bin/psql -p $DB_PORT -U $DB_USER_SECURITY -d $DB_NAME -c \"ALTER SYSTEM SET hg_permission.user_switch_list = '$DB_USER';\""
echo " 2. 重启数据库:"
echo " $PG_CTL restart -D $PG_DATA"
echo " 3. 创建扩展:"
echo " $HGDB_HOME/bin/psql -p $DB_PORT -U $DB_USER -d $DB_NAME -c \"CREATE EXTENSION postgis;\""
echo " 4. 验证安装:"
echo " $HGDB_HOME/bin/psql -p $DB_PORT -U $DB_USER -d $DB_NAME -c \"SELECT PostGIS_Full_Version();\""
echo " 5. 恢复权限:"
echo " $HGDB_HOME/bin/psql -p $DB_PORT -U $DB_USER_SECURITY -d $DB_NAME -c \"ALTER SYSTEM SET hg_permission.user_switch_list = '';\""
echo " $PG_CTL restart -D $PG_DATA"
else
echo "❌ 安装失败,请检查编译日志"
exit 1
fi
执行编译安装:
cd /opt/highgo/hg-extensions
bash install_postgis.sh
脚本会依次编译安装 GEOS → PROJ → PostGIS。
预估耗时(以 4 核 CPU 为参考):
| 组件 | 编译时间 | 安装时间 |
|---|---|---|
| GEOS 3.9.5 | ~5 分钟 | <1 分钟 |
| PROJ 7.2.1 | ~2 分钟 | <1 分钟 |
| PostGIS 3.3.6 | ~3 分钟 | <1 分钟 |
全程约 10-15 分钟。CPU 核心数越多,
make -j并行度越高,耗时越短。
关键:脚本中不会调用
ldconfig(会破坏 cmake),而是使用 RPATH 嵌入库搜索路径。
6.6 配置数据库权限并创建扩展
# 1. 用 syssso(系统安全员)为 sysdba 开启临时提权
/opt/highgo/hgdb-4.5/bin/psql -p 5866 -U syssso -d <数据库名> -c \
"ALTER SYSTEM SET hg_permission.user_switch_list = 'sysdba';"
# 2. 重启数据库加载配置
/opt/highgo/hgdb-4.5/bin/pg_ctl restart -D /opt/highgo/hgdb-4.5/data
# 3. 创建 PostGIS 扩展
/opt/highgo/hgdb-4.5/bin/psql -p 5866 -U sysdba -d <数据库名> -c \
"CREATE EXTENSION postgis;"
# 4. 验证安装
/opt/highgo/hgdb-4.5/bin/psql -p 5866 -U sysdba -d <数据库名> -c \
"SELECT PostGIS_Full_Version();"
# 5. 恢复 sysdba 权限(安全还原)
/opt/highgo/hgdb-4.5/bin/psql -p 5866 -U syssso -d <数据库名> -c \
"ALTER SYSTEM SET hg_permission.user_switch_list = '';"
/opt/highgo/hgdb-4.5/bin/pg_ctl restart -D /opt/highgo/hgdb-4.5/data
七、安装后可用功能
可用功能
| 功能 | 说明 | 相关函数 |
|---|---|---|
| 空间数据存储 | 存储 POINT/LINESTRING/POLYGON 等几何类型 | GEOGRAPHY(POINT, 4326) |
| 坐标变换 | 不同坐标系之间的转换 | ST_Transform() |
| 距离计算 | 计算两点间真实地理距离(米) | ST_Distance() |
| 最近邻搜索 | 基于空间索引的高效近邻查询 | <-> 操作符 |
| 空间关系判断 | 包含、相交、相邻等判断 | ST_Contains(), ST_Intersects() |
| 空间索引 | GiST 索引加速空间查询 | CREATE INDEX ... USING GIST |
| 几何运算 | 缓冲区、面积、周长等 | ST_Buffer(), ST_Area() |
| GeoJSON | 读写 GeoJSON 格式 | ST_AsGeoJSON(), ST_GeomFromGeoJSON() |
| 文本格式 | 读写 WKT/WKB 格式 | ST_AsText(), ST_GeomFromText() |
| KML 输出 | 输出 KML 格式 | ST_AsKML() |
| Topology | 拓扑数据管理 | postgis_topology 扩展 |
| Tiger Geocoder | 地址编码 | postgis_tiger_geocoder 扩展 |
被禁用的功能
| 功能 | 原因 | 如需启用的方法 |
|---|---|---|
| Raster(栅格) | 需要安装 GDAL,依赖链极长 | 安装 GDAL 后重新编译,去掉 --without-raster |
| MVT(矢量切片) | 需要 protobuf-c 库 | 安装 protobuf-c 后重新编译,去掉 --without-protobuf |
| Geobuf | 同上 | 同上 |
| PROJ 网络同步 | 禁用 CURL 以规避 libssh/OpenSSL 冲突 | 修复 libssh/OpenSSL 版本后重新编译 PROJ |
快速使用示例
-- 1. 添加空间列
ALTER TABLE <表名> ADD COLUMN geom GEOGRAPHY(POINT, 4326);
-- 2. 用经纬度填充空间列(注意:经度在前,纬度在后)
UPDATE <表名> SET geom = ST_SetSRID(ST_MakePoint(longitude, latitude), 4326)::GEOGRAPHY;
-- 3. 创建空间索引
CREATE INDEX idx_<表名>_geom ON <表名> USING GIST (geom);
-- 4. 最近邻搜索(输入坐标,返回最近的一条记录)
SELECT *, ST_Distance(geom, ST_SetSRID(ST_MakePoint(122.50, 30.00), 4326)::GEOGRAPHY) AS distance
FROM <表名>
ORDER BY geom <-> ST_SetSRID(ST_MakePoint(122.50, 30.00), 4326)::GEOGRAPHY
LIMIT 1;
八、卸载方法
# 1. 在数据库中卸载扩展
/opt/highgo/hgdb-4.5/bin/psql -p 5866 -U sysdba -d <数据库名> -c "DROP EXTENSION postgis;"
# 2. 删除编译安装的文件
rm -f /opt/highgo/hgdb-4.5/lib/libgeos*
rm -f /opt/highgo/hgdb-4.5/lib/libproj*
rm -rf /opt/highgo/hgdb-4.5/include/geos
rm -rf /opt/highgo/hgdb-4.5/include/proj
rm -rf /opt/highgo/hgdb-4.5/share/proj
rm -f /opt/highgo/hgdb-4.5/share/postgresql/extension/postgis*.control
rm -f /opt/highgo/hgdb-4.5/share/postgresql/extension/postgis*.sql
rm -f /opt/highgo/hgdb-4.5/lib/postgresql/postgis-3.so
九、常见问题 (Q&A)
Q1: 为什么不能运行 ldconfig?
在此类混合包环境(an8 系统 + el8 手动安装包)中,运行 ldconfig 会重建库缓存,可能导致 cmake 因 libssh/OpenSSL 符号解析失败而崩溃。脚本中使用 RPATH 替代 ldconfig。
Q2: PROJ 编译时为什么要禁用 CURL?
部分系统的 libssh 与 OpenSSL 存在版本符号不兼容(EVP_KDF_ctrl@OPENSSL_1_1_1b)。PROJ 如果启用 CURL,运行时加载 postgis-3.so 会触发此问题。编译 PROJ 时使用 -DENABLE_CURL=OFF -DBUILD_PROJSYNC=OFF 规避。
Q3: CREATE EXTENSION 报权限错误怎么办?
瀚高数据库的安全增强模块(SEP)默认禁止 sysdba 创建扩展。需要通过 syssso 用户设置 hg_permission.user_switch_list 临时提权,操作完成后务必还原。详见 6.6 步骤。
Q4: RPM 安装报依赖冲突怎么办?
部分 RPM 包与系统已安装的 an8 包版本后缀不同,安装时会报依赖错误。可使用 --nodeps 强制安装,但需确认依赖库已通过其他方式满足。
Q5: 为什么不用 yum 而要手动安装 RPM?
瀚高数据库基于 PostgreSQL 内核修改,yum/apt 仓库中的 PostGIS 二进制包不兼容,且服务器无法访问外网,因此采用源码编译安装。
Q6: 编译安装的库为什么指定 lib/ 而不是 lib64/?
瀚高数据库默认在 lib/ 目录下查找共享库。CMake 在 64 位系统上默认安装到 lib64/,需要通过 -DCMAKE_INSTALL_LIBDIR=lib 显式指定。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)