导言
TiFlash 从去年四月一日开源至今已经过去将近一年半,这段时间里 TiFlash 从 v6.0.0-DMR 升级到了
v7.3.0-DMR,并增加了若干新特性,比如支持 MPP 实现窗口函数框架,新增支持若干算子和函数下推,支
持 AWS S3 算存分离等。先来回顾一下 TiFlash 资源精华帖,【重磅消息】TiFlash 终于开源啦!,和
TiFlash 时间线。
tiflashtimeline.png
前两篇文章 《TiDB 源码编译之 PD/TiDB Dashboard 篇》 和 《TiDB 源码编译之 TiUP 篇》 分别阐述
了如何编译 TiUP、PD 以及 TiDB Dashboard。本文将介绍如何编译 TiFlash,只是本文使用的技术栈与
前两篇文章有所不同,建议熟练掌握 Linux 知识和有一定编译经验的小伙伴继续往下浏览。
环境依赖
如若想成为 TiFlash Committer,首先要有能力编译 TiFlash 源码,并且可以在本地进行 Debug 调试,
下面先来看下在本地环境编译源码需要准备哪些依赖包。
0️⃣ 编译环境
写作本文时使用的环境为 CentOS 7.9.2009,8c16g,这个硬件配置勉强够用,期间遇到过资源使用过载
导致卡死的情况,如果有条件建议用更好的配置。至于操作系统,CentOS 7.9.2009 的 EOL 时间为 Jun
30th, 2024 ,其上游 RHEL 7.9 的生命周期支持延长到了 June 30, 2028,所以,现在及未来几年
CentOS 7.9.2009 依旧是企业级主流操作系统。
1️⃣ 基础工具包
安装基础工具包,用于源码编译。其中,devtoolset-10 用于临时调用 gcc 10 来编译 LLVM/Clang,
而 ninja-build 用于构建源码工程。
yum install devtoolset-10 ninja-build
查看 Ninja 版本:
$ ninja --version
1.10.2
2️⃣ 安装 rust 环境
curl https://sh.rustup.rs -sSf | sh -s -- -y --profile minimal --default-
toolchain nightly; source $HOME/.cargo/env
安装成功。
nightly-x86_64-unknown-linux-gnu installed - rustc 1.73.0-nightly (28eb857b9
2023-08-12)
Rust is installed now. Great!
$ rustc --version
rustc 1.73.0-nightly (28eb857b9 2023-08-12)
3️⃣ 安装 OpenSSL
TiFlash 中,OpenSSL 的版本使用的是 1.1.1 系列,目前尚未升级大版本到 OpenSSL 3.x。
该包与安全性强相关,所以会不断升级小版本,目前应该是 TiDB 全栈升级到 1.1.1t 版本。
安装步骤如下:
wget https://github.com/openssl/openssl/archive/refs/tags/OpenSSL_1_1_1t.tar.gz
tar zxf OpenSSL_1_1_1t.tar.gz
cd openssl-OpenSSL_1_1_1t
评论