系统环境
CentOS Linux release 7.9.2009 (Core)
Linux dev 3.10.0-1160.21.1.el7.x86_64 #1 SMP Tue Mar 16 18:28:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
下载源代码
使用最新仓库中的代码
git clone https://github.com/yugabyte/yugabyte-db.git
安装系统依赖
sudo yum update
sudo yum groupinstall -y 'Development Tools'
sudo yum install -y ruby perl-Digest epel-release ccache git python2-pip python-devel python3 python3-pip python3-devel which
sudo yum install -y cmake3 ctest3 ninja-build
准备编译工具
sudo ln -s /usr/bin/cmake3 /usr/local/bin/cmake
sudo ln -s /usr/bin/ctest3 /usr/local/bin/ctest
开始编译
cd ~/code/yugabyte-db
./yb_build.sh release
此种编译方式会默认使用linuxbrew toolchains
来进行编译。
使用--gcc9
或者--clang9
使用本地编译。
比如
./yb_build.sh release --gcc9
https://github.com/yugabyte/yugabyte-db/issues/8808
注意:
yugabyte把所依赖的linuxbrew
和thirdparty
放在了Github
上,在执行编译的时候会去Github
上下载这两个包,因为体积过大,在国内下载缓慢,很容易失败。所以可以事先手动将对应版本的包下载到编译机器上的/opt/yb-build/download_cache/
目录下。使用gcc
或clang
编译的话,可以不用下载linuxbrew
包,但thirdparty
必须是gcc
或者clang
对应编译的。
使用
./yb_release --build release --build_args "--gcc9" --build_target build/yb2.7
来生成对应的安装包
编译完成
root@dev yugabyte-db$ cd build
root@dev yugabyte-db$ ls
latest latest_build_root release-gcc9-dynamic venv yb2.7 yugabyte-bash-common
我这里采用的是gcc9
编译的。gcc9
需要自行安装。devtoolset-9