最简编译CockroachDB 21.2

编译CockroachDB比较麻烦,尤其是从git下载代码编译还需要关联项目的下载,本文整理从官网下载代码的编译过程,非常简单,几乎没有异常,供大家参考。

编译CockroachDB 21.2

1、安装Centos 8.5 虚拟机

  • 服务器类型选择Server,在软件包集合中选中“Performance Tools”和“Development Tools”
  • 设置网络并启动网络时间服务
  • 设置ISO文件为软件源
  • 简化安全选项:关闭和禁用firewalld服务,禁用selinux

2、准备开发环境

2.1、安装go开发环境

从go官网 https://golang.google.cn/dl/ 下载最新go版本 1.17.3

tar -xf tools/go1.17.3.linux-amd64.tar.gz -C .

编辑 .bash_profile 设置环境变量

export GOROOT=$HOME/go
export GOBIN=$HOME/go/bin
export GOPATH=$HOME/works
export PATH=$HOME/works/src/github.com/cockroachdb/cockroach/:$GOBIN:$PATH
export GOPROXY=https://goproxy.io,direct
export GOARCH=amd64
export CGO_ENABLED=1

 执行source .bash_profile后验证

$ go version
go version go1.17.3 linux/amd64

 2.2、安装go 调试工具

下载对应go 1.17的delve工具

http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/Packages/delve-1.7.2-1.module_el8.6.0+962+0036b8f3.x86_64.rpm

2.3、安装nodejs和yarn

cockroachdb自带http服务,编译时需要nodejs和yarn,ISO中带有NodeJs,也可以从镜像站点下载最新版本并安装

http://pub.mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/nodejs-full-i18n-16.8.0-1.module_el8.5.0%2B999%2Bc0bf7004.x86_64.rpm
http://pub.mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/nodejs-docs-16.8.0-1.module_el8.5.0%2B999%2Bc0bf7004.noarch.rpm
http://pub.mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/nodejs-16.8.0-1.module_el8.5.0%2B999%2Bc0bf7004.x86_64.rpm
http://pub.mirrors.aliyun.com/centos/8/AppStream/x86_64/os/Packages/npm-7.21.0-1.16.8.0.1.module_el8.5.0%2B999%2Bc0bf7004.x86_64.rpm

 验证

$node --version
v16.8.0

$npm --version
7.21.0

 设置代理

$npm config set registry http://registry.npm.taobao.org/

 验证

$npm get registry 
http://registry.npm.taobao.org/

 安装yarn

$npm install -g yarn

 安装

$yarn --version
1.22.17

 设置yarn代理

$yarn config set registry http://registry.npm.taobao.org/

 验证

$yarn config get registry
http://registry.npm.taobao.org/

 2.4、安装其他依赖库

yum install cmake ncurses-devel -y

3、编译cockroachdb源码

3.1、准备源码

为了避免从github下载各种依赖包的麻烦,采用从官网下载源码编译

https://binaries.cockroachdb.com/cockroach-v21.2.0.src.tgz

tar -xf ~/tools/cockroach-v21.2.0.src.tgz -C ~/works/
cd works
mv cockroach-v21.2.0/* .
rm cockroach-v21.2.0 -rf

 3.2、编译

cockroach-v21.2.0 首次编译时不会编译ui,最简单的方式就touch ui下的随便一个文件就好

cd src/github.com/cockroachdb/cockroach
touch pkg/ui/workspaces/db-console/src/app.tsx
然后编译
make build

 简单验证

$cockroach version
Build Tag:        v21.2.0
Build Time:       2021/11/21 07:09:43
Distribution:     CCL
Platform:         linux amd64 (x86_64-redhat-linux)
Go Version:       go1.17.3
C Compiler:       gcc 8.5.0 20210514 (Red Hat 8.5.0-3)
Build Commit ID:  79e5979416cb426092a83beff0be1c20aebf84c6
Build Type:       development

单元测试

make test

 在编译的最后生成文档节点会报:fatal: not a git repository (or any of the parent directories): .git

在单元测试中有几个用例会报错,也是git原因,还有就是作者邮箱不匹配,都可忽略,放心下一步探索即可。

上一篇:阿里云 linux centos7下安装JDK


下一篇:试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)