Win10使用Docker编译openGuass

Win10使用Docker编译openGuass

参考

官方文档

docker搭建环境编译和调试openGauss源码

前言

看官方文档openGuass支持的操作系统较少,似乎不支持win10,故考虑使用docker创建一个centos7.6容器,然后在上面进行openGuass3.1.0的编译。其他分支感觉都大差不差。

centos实例

首先需要下载docker,我下载的是Docker Desktop

拉取一个centos:7.6.1810镜像,然后run一个实例。

安装一些基本依赖

yum update -y
yum install -y which gcc gcc-c++ gdb git make cmake wget libaio-devel flex bison ncurses-devel glibc-devel patch lsb_release readline-devel

拉下来的centos镜像可能缺很多东西,提醒缺啥装啥就行。

创建新用户

因为openGauss不能在root用户下启动,因此我们可以创建一个新用户omm。

groupadd dbgroup
useradd -g dbgroup omm

如果希望omm用户可以用到sudo,参照Linux给普通用户添加sudo权限

openGuass编译

流程如图所示

image-20230528112234284

首先切换成omm,如果权限不够就sudo执行命令。

su omm

代码下载

cd /home/omm
mkdir sda
cd sda
git clone https://gitee.com/opengauss/openGauss-server.git openGauss-server -b 3.1.0 #openGauss的代码仓库

这边打算直接用官方提供的编译好的第三方软件,而不自己编译,可以直接跳过官方文档的开源软件编译构建这一步,而只需要直接下载。

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
tar -zvxf https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/binarylibs/openGauss-third_party_binarylibs_Centos7.6_x86_64.tar.gz
mv openGauss-third_party_binarylibs_Centos7.6_x86_64 binarylibs #重命名为binarylibs

代码编译

官网上提供了两个方式,一个是一键式脚本编译,一个是手动编译。我这边一键式脚本失败几次所以就换成了手动编译。

  • 执行如下命令进入到软件代码目录。cd openGauss-server

  • 配置环境变量,根据自己的代码下载位置补充两处“____”

    export CODE_BASE=________     # openGauss-server的路径
    export BINARYLIBS=________    # binarylibs的路径
    export GAUSSHOME=$CODE_BASE/dest/
    export GCC_PATH=$BINARYLIBS/buildtools/gcc7.3/
    export CC=$GCC_PATH/gcc/bin/gcc
    export CXX=$GCC_PATH/gcc/bin/g++
    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
    export PATH=$GAUSSHOME/bin:$GCC_PATH/gcc/bin:$PATH
    
    
  • 选择版本进行configure。我这边选择的debug版。./configure --gcc-version=7.3.0 CC=g++ CFLAGS='-O0' --prefix=$GAUSSHOME --3rd=$BINARYLIBS --enable-debug --enable-cassert --enable-thread-safety --with-readline --without-zlib

  • 执行如下命令,编译安装。

    • make -s
      make install -s
      
    • s参数是silent模式,有些编译信息不会打印出来。

    • 如果使用-j参数,make执行的时候会一直增加并发数,有时会遇到“cannot allicate memory”的错。一般-j参数后可指定数字为 cpu数 X 2。如编译环境是4 CPU,可使用make -j8的参数进行编译。

    • 我这边加j参数docker会崩溃,所以直接-s参数了。

验证

使用omm用户,在~/.bashrc中增加以下环境变量:

export GAUSSHOME=/home/omm/sda/openGauss-server/dest/ ##编译结果的路径,可根据实际情况修改
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH

使环境变量生效:source ~/.bashrc

建立数据目录和日志目录:

mkdir ~/data
mkdir ~/log
chown -R omm:dbgroup /home/omm/sda/openGauss-server

数据库初始化:

gs_initdb -D /home/omm/data --nodename=db1

启动数据库:

gs_ctl start -D /home/omm/data -Z single_node -l /home/omm/log/opengauss.log

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值