在centos7环境下miniob环境搭建,并调试

本文详细介绍了在Linux虚拟机上配置MiniOB环境的过程,包括安装VMware、升级GCC至11.2、安装CMake、处理OpenSSL依赖、配置Git和GDB等调试工具,以及解决编译过程中遇到的常见问题。
摘要由CSDN通过智能技术生成

一 绪论

        本篇文章仅用于分享,非官方教程,仅供参考。欢迎大佬指正。

        miniob环境配置有两种方法:需要Linux系统上配置环境,或者在Windows系统上先下载docker。这里我选择第一种方法安装Linux虚拟机然后配置miniob的环境。

二 安装步骤以及可能的问题

        1下载vmware配置Linux虚拟机

安装centos7可以自行发挥,这里就不过多赘述。不会的可以搜一搜其他教程。

        2升级gcc,官方要求gcc版本至少8.3往上,这里使用的是gcc11.2。

        以root用户登入虚拟机,方便后续操作

yum -y install centos-release-scl
yum -y install devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils

        此时新的gcc以及安装好了,但是还没有加载需要:

scl enable devtoolset-11 bash  //重新加载环境 (暂时,切换 用户后需要重新执行)
echo "source /opt/rh/devtoolset-11/enable" >>/etc/profile //永久加载新的gcc(需重启生效)

       之后我们在命令行输入,查看版本是否为11.2

gcc --version

g++ --version

        3下载cmake(一个执行编译过程的软件,优点可以跨平台,兼容性很好)。版本要求:3.10往上 ,官方教程使用3.24,区间内即可。

        安装wget(以get方式请求下载软件)

yum install wget

        在/opt目录下创建一个文件夹用来存放临时下载文件

mkdir /opt/software

cd /opt/software

wget https://cmake.org/files/v3.20/cmake-3.20.5.tar.gz

在/opt目录下创建一个文件夹用来存放解压后的软件

mkdir /opt/module

tar -zxvf /opt/software/cmake-3.20.5.tar.gz -C /opt/module

进入解压后的cmake目录,编译cmake,过程可能会很长耐心等待。

cd /opt/module/cmake-3.20.5

./bootstrap && make -j4 && sudo make install

如果有报错

Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR) CMake Error at Utilities/cmcurl/CMakeLists.txt:511 (message): Could not find OpenSSL. Install an OpenSSL development package or configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

错误信息表明CMake在尝试配置项目时无法找到OpenSSL库。CMake需要OpenSSL库来编译某些依赖于它的组件。直接下载

yum install openssl-devel

执行cmake --version 查看是否安装成功

        4按照教程配置miniob环境

安装拉取工具git,如果使用wget获取到的是页面源代码。

yum install git

下载源码 要切换到/opt/module目录下
 git clone https://github.com/oceanbase/miniob.git

若请求失败,手动设置代理,关闭http,关闭set//个人猜测是:只能使用ssh的方式访问才能克隆

git config --global http.proxy http://127.0.0.1:1080
git config --global http.proxy http://127.0.0.1:1080
git config --global --unset http.proxy
git config --global --unset https.proxy  

        5编译miniob

如果是第一次在这个环境上编译miniob,需要安装一些miniob的依赖库,执行下面的命令即可安装:

bash build.sh init

脚本将自动拉取依赖库(可以参考 .gitmodules) 然后编译安装到系统目录。

    bash build.sh debug --make (命令不要写错,可能会报错)

    如果编译时出现 Thread实例失败,去cmakeError.log,查看,下载对应的依赖,重新编译。
    
    报错:/opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld: 找不到 libasan_preinit.o: 没有那个文件或目录
    /opt/rh/devtoolset-11/root/usr/libexec/gcc/x86_64-redhat-linux/11/ld: 找不到 -lasan
    
    缺少libasan包,直接install安装

    yum search libasan
    找到对应版本下载
    yum install devtoolset-11-libasan-devel.x86_64

    记得重新执行build.sh之前把,原先的build_debug目录,以及软连接文件build删掉
 
    编译完成进入到build_debug目录,运行miniob的内核

./bin/observer -f ../etc/observer.ini -P cli

        6调试

下载调试工具gdb

yum install gdb

首先启动miniob,然后新开一个终端-p使用端口号调试,pidof查看程序的端口号,不是单引号。

gdb -p  `pidof observer`

这里简单介绍一下,如何调试

b do_select   //b->break,do_select->miniob内部的接口

在miniob的窗口里输入一个select语句

n //下一步

c //跳出函数

7总结

报错了,不要慌张,多试几遍,说不定哪一遍就突然通过了。

本篇文章就是这么来的,编译那里卡了我一周左右,换了Ubuntu,centos8,好几个版本,最后才搞出来。

官方链接:

kernel-quickstart/zh-CN/1.database-system-overview/6.miniob-debug-environment-setup.md at V1.0.0 · oceanbase/kernel-quickstart · GitHub

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值