主要是有一个老服务器 CPU 是 HI1616,这个 CPU 是比较老的 ARM 架构,切换了多个服务器版本都无法安装官方编译的 openGauss 数据库。安装官方版本类似报错:
[fhy@RH2288 simpleInstall]$ sh install.sh -w "****" [step 1]: check parameter [step 2]: check install env and os setting [step 3]: change_gausshome_owner [step 4]: set environment variables [step 6]: init datanode no data was returned by command ""/home/fhy/openGauss/bin/gaussdb" -V" The program "gaussdb" is needed by gs_initdb but was not found in the same directory as "/home/fhy/openGauss/bin/gs_initdb". Check your installation. [step 7]: start datanode [2025-08-26 17:10:41.050][7344][][gs_ctl]: gs_ctl started,datadir is /home/fhy/openGauss/data/single_node [2025-08-26 17:10:41.050][7344][][gs_ctl]: can't create lock file "/home/fhy/openGauss/data/single_node/pg_ctl.lock" : 没有那个文件或目录 import sql file Would you like to create a demo database (yes/no)? yes Load demoDB failed, you can check load.log for more details. [fhy@RH2288 simpleInstall]$ cat load.log failed to connect Unknown:5432. install.sh:行 334: 7349 非法指令 (核心已转储)gsql -d postgres -p $port -f school.sql failed to connect Unknown:5432. install.sh:行 334: 7355 非法指令 (核心已转储)gsql -d postgres -p $port -f finance.sql [fhy@RH2288 simpleInstall]$ /home/fhy/openGauss/bin/gaussdb" -V > ^C [fhy@RH2288 simpleInstall]$ "/home/fhy/openGauss/bin/gaussdb" -V gaussdb (openGauss 6.0.2 build 6285c0ef) compiled at 2025-07-15 16:44:06 commit 0 last mr 8059 非法指令(核心已转储)
应该是 CPU 指令集不支持。于是自动动手下载 openGauss 源码进行编译。
详细的编译方法见官方:https://gitcode.com/opengauss/openGauss-server
以下为 make 方式编译过程:具体环境变量及路径请自行修改。
0.新建 build_env.sh 文件内容如下:
[fhy@RH2288 ~]$ cat /home/fhy/build_env.sh #!/bin/bash export CODE_BASE=/home/fhy/openGauss-server export BINARYLIBS=/home/fhy/binarylibs export GAUSSHOME=$CODE_BASE/dest export GCC_PATH=$BINARYLIBS/buildtools/gcc10.3 export CC=$GCC_PATH/gcc/bin/gcc export CXX=$GCC_PATH/gcc/bin/g++ export PATH=$GCC_PATH/gcc/bin:$GAUSSHOME/bin:$PATH export LD_LIBRARY_PATH=$GAUSSHOME/lib:$GCC_PATH/gcc/lib64:$GCC_PATH/isl/lib:$GCC_PATH/mpc/lib:$GCC_PATH/mpfr/lib:$GCC_PATH/gmp/lib:$LD_LIBRARY_PATH
确认生效
$CC -v $CXX -v
1.执行 source /home/fhy/build_env.sh
2.开始配置:(可参考官方构建)
# release ./configure --gcc-version=10.3.1 CC=g++ CFLAGS="-O2 -g3 -D__USE_NUMA" --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-thread-safety --with-readline --without-zlib # debug ./configure --gcc-version=10.3.1 CC=g++ CFLAGS='-O0 -D__USE_NUMA' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib --enable-memory-check
3.开始编译
这里有个坑参考官方的编译,中途系统会直接卡死,这里采用限制线程编译。
# 限制线程编译 make -j16 # 安装 make install -j16
编译安装成功后会在 openGauss-server/dest/ 目录生成文件 bin 中为可执行文件。
初始化运行脚本:
[2025-08-28 10:09:49.357][3208][][gs_ctl]: server started (/home/fhy/openGauss-server/data/single_node) import sql file Would you like to create a demo database (yes/no)? yes Load demoDB [school,finance] success. [complete successfully]: You can start or stop the database server using: gs_ctl start|stop|restart -D $GAUSSHOME/data/single_node -Z single_node