在amd-64 Linux 下编译CockroachDB源码

      CockroachLabs公司的CockroachDB(简称CRDB)是一款适合于海量数据环境下高并发OLTP和OLAP场景的开源分布式NewSQL/HTAP数据库。它采用了新的架构和设计、新的分布式理论和算法,吸收了关系型数据库和NoSQL数据库各自的优点,无需应用级的分库分表,具有SQL模型的简单易用、水平弹性扩展、支持强一致性分布事务、异地多活的高可用、云原生等一系列特点。

      “外部易用性”是CRDB的核心设计理念之一,它的所有功能都封装在一个二进制可执行程序文件中,可以做到最小化设置和没有外部依赖的简单、直接部署。我们可以非常简单地在Linux、Mac OS、Windows等多种操作系统环境下运行它;此外,CRDB还能够非常方便的在Docker和Kubernetes下运行。

      典型地,CRDB支持标准X86/X86-64架构,也能支持ARM-64架构(例如:国产飞腾 + 银河麒麟Linux操作系统)

      本文将向大家分享如何基于开源CockroachDB编译在X86/X86-64架构下运行的版本。

 

  1. 编译环境说明

        在这里,我们以CockroachDB 2.1.3版本的源码为例说明一般的编译方法。我们需要如下环境:

    (1) 一个虚拟机(X86_64,4vCores/8G mem,20G本地存储)

    (2) 操作系统:Ubuntu 16.04 LTS

    (3) 需要的软件组件:

  • git
  • ncurses
  • gcc-6.x 、gcc++-6.x
  • make、cmake 3.8.1、autoconf
  • go 1.10.7
  • nodeJS、yarn

 

     2. 编译环境安装和配置

     (1) 安装操作系统(只需要安装基本的Ubuntu16.04 LTS即可,需要的包可以根据需要在随后安装):

     对于虚拟机创建(比如使用VMware或VisualBox)和在虚拟机中安装Ubuntu Linux这里从略,不清楚的可以搜索相应的文章。

在安装完Ubuntu之后,创建的用户在sudo的时候提示需要输入口令。我们以使用如下方法进行修改,使得用户sudo时免口令提示(假设用户名为crdb):

sudo vi /etc/sudoers

在文件中增加:

crdb    ALL=(ALL) NOPASSWD:ALL

保存文件退出vi,然后重新登录后起作用。

 

     (2) 安装git

sudo apt-get update

sudo apt-get install git    #安装git 2.7.4

 

     (3) 安装ncurses

sudo apt-get install libncurses5-dev

 

     (4) 安装gcc-6.x和g++-6.x

sudo apt-get update

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

sudo apt-get update

sudo apt-get install gcc-6 g++-6

 

cd /usr/bin

sudo ln -s x86_64-linux-gnu-gcc-6 gcc

sudo ln -s x86_64-linux-gnu-gcc-ar-6 gcc-ar

sudo ln -s x86_64-linux-gnu-gcc-nm-6 gcc-nm

sudo ln -s x86_64-linux-gnu-gcc-ranlib-6 gcc-ranlib

sudo ln -s x86_64-linux-gnu-g++-6 g++

 

     (5) 安装cmake 3.8.1

cd /tmp

wget https://cmake.org/files/v3.8/cmake-3.8.1-Linux-x86_64.sh

chmod +x cmake-3.8.1-Linux-x86_64.sh

sudo bash cmake-3.8.1-Linux-x86_64.sh

sudo mv cmake-3.8.1-Linux-x86_64/  /opt

 

sudo ln -s /opt/cmake-3.8.1-Linux-x86_64/bin/cmake  /usr/local/bin/cmake

cmake --version

 

    (6) 安装make

sudo apt-get install make   #make 4.1

 

    (7) 安装autoconf

sudo apt-get install autoconf    #autoconf 2.69-9

 

    (8) 安装golang 1.10.7

cd /tmp

wget https://dl.google.com/go/go1.10.7.linux-amd64.tar.gz

sudo tar -C /usr/local -xzvf go1.10.7.linux-amd64.tar.gz

vi .profile

增加如下:

PATH="$HOME/bin:$HOME/.local/bin:$PATH:/usr/local/go/bin"

 

    (9) 安装node js 6.x

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -

sudo apt-get install nodejs=6.16.0-1nodesource1

 

   (10) 安装yarn 

wget https://github.com/yarnpkg/yarn/releases/download/v1.7.0/yarn_1.7.0_all.deb

sudo dpkg -i yarn_1.7.0_all.deb

 

检查安装之后的版本:

nodejs -v

yarn -v

 

    3. 编译X86-64 Linux下运行的CockroachDB

     (1) 获取CockroachDB源码

cd /home/crdb

mkdir -p cockroach-master/src/github.com/cockroachdb/

cd cockroach-master/src/github.com/cockroachdb/

git clone https://github.com/ cockroachdb/cockroach.git

cd cockroach

git checkout v2.1.3   #以cockroachdb 2.1.3为例

 

    (2) 编译构建

cd /home/crdb/cockroach-master/src/github.com/cockroachdb/cockroach

make build

如果只编译开源版本的功能,执行:

make buildoss

你可能感兴趣的:(分布式,New,SQL数据库——,CRDB原理)