瀚高数据库(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 版本兼容表 选择对应版本组合。


二、安装方法选择

采用 源码编译安装,原因:

  1. 瀚高数据库基于 PostgreSQL 内核修改,yum/apt 仓库中的 PostGIS 二进制包不兼容
  2. 服务器无法访问外网,无法通过包管理器在线安装
  3. 源码编译可精确控制安装路径和功能裁剪

裁剪说明:本次安装禁用了以下功能以减少依赖:

  • 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 显式指定。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐