源码编译Clickhouse-20.3.17.173-lts 记录
一、步骤概述
- 准备源码 ,github仓 https://github.com/ClickHouse/ClickHouse ,速度慢的话也可以用国内的镜像代码同步 https://gitee.com/mirrors/clickhouse 
- 准备安装环境 ,按官方建议 https://clickhouse.tech/docs/zh/development/build/ ,环境依赖 gcc9.0+版本,cmake3+版本,ninja构建工具(本文记录使用1.9)。 
- git 仓同步下来需要提前执行 git submudule命令更新依赖包 
二、详细编译步骤
- 源码准备,将源码从仓库clone 下来,执行 - git submodule sync- git submodule update --init --recursive
 依赖会同步至- ClickHouse\contrib路径下,具体列表见- .gitmodules文件
- 准备编译环境 
- 升级gcc9 ,首先保证环境里至少有一个gcc版本,通常可以从基础镜像里rpm packge安装gcc 4.x版本,依次编译安装gmp6.x mpfr 3.x mpc1.x ,参考 http://3ms.huawei.com/km/blogs/details/5938131 ,然后编译安装gcc9 ,使用 - ../configure -with-gmp=/usr/local/GCC/gmp-6.1.0 --with-mpfr=/usr/local/GCC/mpfr-3.1.4 --with-mpc=/usr/local/GCC/mpc-1.0.3指定刚刚安装好的gmp,mpfr mpc版本,具体包见附件- 执行 gcc --version查看版本
 安装过程可能出现- libstdc++.so.6: version GLIBCXX_3.4.14 not found问题具体参见 https://blog.csdn.net/xiaolong2w/article/details/23915171
        
- 编译安装cmake - cd cmake-3.14.1- ./configure make- make install
- 安装ninja 将ninja包解压,拷贝至/usr/local/bin/ninja 路径即可 
- 执行编译,将更新好的源码上传至服务,进入代码路径 - cd Clickhouse- mkdir build- cd build- cmake ..- ninja clickhouse-server clickhouse-client
 正常执行完 会生成 server和client的执行文件,可直接运行 
- 执行当中可能遇到的问题, 
 (1)ninja 构建时出现类似- contrib/arrow-cmake/thrift/config.h:1:1: error: expected unqualified-id before ‘.’ token报错,不要慌,进入对应目录vi查看报错的文件,里面的xx.h可能只是引用…/…/类似的文件,直接删除,新建软链接- cd contrib/arrow-cmake/build/cmake- ln -s ../../../thrift/build/cmake/config.h.in config.h.in -f
 该问题可能为windows git未生成软连接造成
(2)cmake可能遇到的问题,参见 https://blog.csdn.net/marising/article/details/105846317
三 总结
编译遇到的问题主要是环境问题,需要确认gcc cmake 相关版本,缺啥依赖包安装补上就行。其次是contrib代码包问题,遇到就重新更新,替换对应依赖,ninja遇到没有软链接的进去添加即可。
- 点赞
- 收藏
- 关注作者
 
            
 
           
评论(0)