最簡編譯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原因,還有就是作者郵箱不匹配,都可忽略,放心下一步探索即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章