【详细版】ubuntu下的miniob环境编译与调试

目录

一、虚拟机选择

二、把github里的代码拷贝到本地

(1)安装git命令

(2)ubuntu里创建好保存代码的目录

(3)在demo目录下输入git clone命令

三、流程

(1)编译工具版本要求

1、安装cmake 

2、安装gcc

3、安装flex

4、安装bison 

(2)搭建 

 1、安装labevent

2、安装googletest

3、安装jsoncpp

4、编译miniob

5、在build目录下启用observer

6、启用客户端


 

以下编译调试过程均follow官网给的流程

miniob/docs/src/dev-env/how_to_dev_miniob_by_vscode.md at main · oceanbase/miniob · GitHub

一、虚拟机选择

一开始用了24版本,一打开就特别卡,遂删

第二次用了20.04版本,终端不能复制粘贴,老连不上网,懒得弄,删!

最后选择了我的vmplayer里面早就下好了的ubuntu14.04版本

二、把github里的代码拷贝到本地

(1)安装git命令

sudo apt-get install git 

(2)ubuntu里创建好保存代码的目录

cd Documents
sudo mkdir projects
cd projects
sudo mkdir demo

(3)在demo目录下输入git clone命令

git clone https://github.com/oceanbase/miniob.git

github的链接在这复制:

拷贝成功:

三、流程

(1)编译工具版本要求

MiniOB 需要使用:

  • cmake 版本 >= 3.13
  • gcc/clang gcc建议8.3以上,编译器需要支持c++20新标准
  • flex (2.5+), bison (3.7+) 用于生成词法语法分析代码

1、安装cmake 

直接跟着这篇做就可以了,在官网上找到3.24.1这个版本,接着跟着下面这篇一步一步做,命令都不用改。(用官网新的版本的话就不用bootstrap)

 ubuntu20.04安装cmake详细教程-CSDN博客

检查当前版本:

2、安装gcc

自己的gcc版本太低了,要更新,这篇讲的很好,一下就成功了

Ubuntu升级GCC版本-CSDN博客

检查当前版本:

3、安装flex

终端输入命令:

apt-get install flex

 检查当前版本,下载好的版本符合我们miniob的要求

4、安装bison 

apt-get的版本太老了,要更高的版本

于是自己写了一篇博客,如下

Ubuntu14.04安装bison版本过低问题-CSDN博客

检查当前版本: 

(2)搭建 

 1、安装labevent

在demo目录下进行git仓库初始化:

git init

 再尝试添加libevent子模块:

git submodule add https://github.com/libevent/libevent

遇到了报错:

Cloning into 'libevent'... fatal: unable to access 'https://github.com/libevent/libevent/': gnutls_handshake() failed: A TLS packet with unexpected length was received. Clone of 'https://github.com/libevent/libevent' into submodule path 'libevent' failed

解决方法:

1、先检查网络连接是否正常

2、更新 Git 和 SSL/TLS 库。通过以下命令来更新我的系统和软件:

sudo apt-get update
sudo apt-get upgrade

再次进行添加就成功了  

git submodule add https://github.com/libevent/libevent

 然后打开libevent目录:

cd libevent

切换版本:

git checkout release-2.1.12-stable

在 Git 中使用 git checkout 命令检出一个标签后,将进入所谓的“分离 HEAD 状态”(detached HEAD state)。这意味着 HEAD,即当前工作的指针,直接指向一个特定的提交而不是分支的最新提交。

在分离 HEAD 状态时,可以自由地探索代码、做实验性的更改和提交,而这些更改不会影响到任何的主分支,除非要将这些更改并入一个分支。这种状态特别适用于需要临时回溯到旧版本或者试验性地修改代码而不影响主线开发的场景。

 接下来是编译部分

进入labevent的目录

创建build目录:

mkdir build
cd build

在build目录下面执行cmake命令:

cmake .. -DEVENT__DISABLE_OPENSSL=ON

执行make编译,可以-j后加一个数字进行并行编译,也可以不加数字,让make自己选一个合适的参数执行:

make -j 10

安装编译好的东西:

sudo make install

2、安装googletest

demo目录下输入命令:

git submodule add https://github.com/google/googletest
cd googletest
mkdir build
cd build
cmake ..
make
sudo make install

3、安装jsoncpp

demo目录下输入命令:

git submodule add https://github.com/open-source-parsers/jsoncpp.git
cd jsoncpp
mkdir build
cd build
cmake -DJSONCPP_WITH_TESTS=OFF -DJSONCPP_WITH_POST_BUILD_UNITTEST=OFF ..
make
sudo make install

晚上用git极其不稳定,可以尝试镜像等方法或者多试几次 

4、编译miniob

miniob目录下输入命令

mkdir build

cd build

cmake ..

make

5、在build目录下启用observer

miniob/build目录下输入命令:

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

成功启动服务端,端口是6789

6、启用客户端

miniob/build目录下输入命令:

./bin/obclient

可以看到连接成功了

参考视频:

OceanBase数据库大赛——MiniOB上手操作指南_哔哩哔哩_bilibili

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值