• 欢迎访问IT乐园(o゚▽゚)o
  • 推荐使用最新版火狐浏览器和Chrome浏览器访问本网站。

openEuler 24.03 LTS SP2 下编译 openGauss 7.0 数据库

未分类 fhy 3周前 (08-28) 143次浏览

主要是有一个老服务器 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


IT 乐园 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:openEuler 24.03 LTS SP2 下编译 openGauss 7.0 数据库
喜欢 (2)
fhy
关于作者:
九零后挨踢男