1. 程式人生 > >CentOS6 x64下編譯TiDB

CentOS6 x64下編譯TiDB

pda file docs targe gop amp 編譯 bsp amd64

TiDB由三部分組成:tidb(SQL解析引擎)、tikv(存儲引擎)、pd(placement driver,提供時間戳服務和系統拓撲維護)。其中tidb和pd用golang語言開發,tikv用rust語言開發。

1. 配置編譯環境

  • 為了提高從外網下載yum包的速度,我們可先指定國內yum鏡像:

# yum install epel-release

  • 安裝cmake3

# yum install cmake3

# ln -s /usr/bin/cmake3 /usr/bin/cmake

  • 編譯並安裝 gcc-4.8.5
  • 安裝golang語言:

# yum install golang golang-docs

  • 安裝rust語言:

https://www.rust-lang.org/en-US/other-installers.html

從中找到相應平臺的nightly版本(後面編譯tikv需要此版本的rust),將url中的www.rust-lang.org替換成mirrors.ustc.edu.cn/rust-static,下載解壓並安裝:  

# wget https://mirrors.ustc.edu.cn/rust-static/dist/rust-nightly-x86_64-unknown-linux-gnu.tar.gz && tar zxf rust-nightly-x86_64-unknown-linux-gnu.tar.gz

# cd rust-nightly-x86_64-unknown-linux-gnu && ./install.sh

  • 在.bash_profile中加入:
export GOROOT=/usr/lib/golang
export GOBIN=$GOROOT/bin
export GOARCH=amd64
export GOOS=linux
export GOPATH=/home/xxx/go
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
### 分別對應gcc-4.8.5、rust-nightly、go的路徑 export PATH=/opt/xxx/bin:/usr/local/bin:$GOBIN:$GOPKG:$PATH

並導入這些環境變量:

# . ~/.bash_profile

  • 創建源代碼編譯路徑

### 註意:這一步很重要,必須確保是正確的GO src路徑:

# mkdir -p $GOPATH/src/github.com/pingcap/pingcap

2. 編譯tidb

# cd $GOPATH/src/github.com/pingcap/pingcap

# git clone https://github.com/pingcap/tidb.git && gmake

3. 編譯pd

# cd $GOPATH/src/github.com/pingcap/pingcap

# git clone https://github.com/pingcap/pd.git && gmake

4. 編譯tikv

編譯tikv需要rust nightly版本,gcc-4.8.5(其他版本可能會在編譯過程碰到問題)

# cd $GOPATH/src/github.com/pingcap/pingcap

# git clone https://github.com/pingcap/tikv.git && cargo build

CentOS6 x64下編譯TiDB