CRDB源码编译

在上篇记录了如何初步使用CRDB,但是想要更多了解CRDB以及为了完成CRDB客户端没实现(可能我没找到)的某些功能,就需要自行阅读源码进行更改并进行编译,在更改源码过程中,因为怕影响CRDB性能,基本不会删除某些关键性代码,因为我需要的是查看CRDB测试时的abort率,以及事务的生命周期,以及每个阶段所消耗的时间,所以只对其做出了增加时间戳以及记录的代码,并不会影响数据库性能。下面,是我在编译过程中记录的语句。该说不说,CRDB的官方编译指南是真简洁,官方的指南1 还有指南2 仅作参考

首先还是说初始环境配置,为阿里云ubuntu 20.04,配置编译CRDB 21.2.4

按照官方给的,需要配置

  • The tools needed to build CockroachDB from scratch:

    • A C++ compiler that supports C++11. Note that GCC prior to 6.0 doesn't work due to 48891 – std functions conflicts with C functions when building with c++0x support (and using namespace std)

    • The standard C/C++ development headers on your system.

    • On GNU/Linux, the terminfo development libraries, which may be part of a ncurses development package (e.g. `libncurses-dev` on Debian/Ubuntu, but `ncurses-devel` on CentOS).

    • A Go environment with a recent 64-bit version of the toolchain. Note that the Makefile enforces the specific version required, as it is updated frequently.

    • Git 1.9+, we recommend v2.20+

    • Bash (4+ is preferred)

    • GNU Make (4.2+ is known to work)

    • CMake 3.20.* (on Macs 3.21+ are also known to work)

    • Autoconf 2.68+

    • NodeJS 12.x and Yarn 1.7+

    • Yacc or Bison

    • Bazelisk (you can use Bazel directly instead of Bazelisk, although Bazelisk makes sure you’re using the same version that we use in CI)

    • If you're running macOS, a full installation of XCode is necessary.

有些东西在aliyun的ubuntu中是配置好的,所以在下面的指令中没有这些环境配置语句,各位见谅

安装编译所需依赖

首先sudo apt update一下

安装必要的一些软件,如c++,zip,python

sudo apt-get update
sudo apt-get install pkg-config zip g++ zlib1g-dev unzip python -y

安装bazel以及bazelisk,这个是管理编译的,需要安装,因为apt get太慢了,我直接下载好之后用ftp传输到服务器,我下载的为bazel 4.0各位可以根据需要自行更换(最好不要,我换过其他版本,不好使)

chmod +x bazel-4.0.0-installer-linux-x86_64.sh
./bazel-4.0.0-installer-linux-x86_64.sh --user
npm install -g @bazel/bazelisk
export PATH="$PATH:$HOME/bin"
source /etc/profile

安装go环境

wget https://studygolang.com/dl/golang/go1.17.7.linux-amd64.tar.gz
tar -C /usr/local -zxvf go1.17.7.linux-amd64.tar.gz
vim /etc/profile
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/works
//添加上述三行到文件末尾,wq后source一下
source /etc/profile

安装git,bison以及ncurses

我记得是ubuntu和centos这里不一样,大家自行寻找centos的ncurses的替代品

sudo apt-get install libncurses5-dev -y
sudo apt-get install libssl-dev
sudo apt install git -y
sudo apt install bison -y

安装cmake

wget https://cmake.org/files/v3.20/cmake-3.20.2.tar.gz 
tar xzvf cmake-3.20.2.tar.gz
cd cmake-3.20.2
rm -f CMakeCache.txt
./bootstrap
make
make install

这个CMakecache.txt我记得好像是不删除会报错,各位根据情况删除

安装nodejs和yarn

curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
apt install -y yarn
apt install --no-install-recommends yarn -y

到这已经安装完成所有依赖,各位可以在安装过程中输入 --version或者-v验证是否安装成功

可以下载CRDB源码进行编译了

CRDB源码获取及编译

我习惯创建一个works目录进行存放代码,各位可以根据习惯自行调整

cd ~
mkdir works
cd works
wget -qO- https://binaries.cockroachdb.com/cockroach-v21.2.4.src.tgz | tar xvz
mv cockroach-v21.2.4/* .
rm cockroach-v21.2.4 -rf
cd src/github.com/cockroachdb/cockroach
make clean 
make build
make install

到这已经编译完成,各位可以输入cockroach --version验证是否编译成功

祝大家一切顺利!

 我的个人博客,欢迎交流!

CodebellsCodebells personal blogs.https://codebells.github.io/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值