CentOS7下编译ClickHouse
- 安装GCC7
- 查看现在的版本
- 升级
- 添加软链接
- 添加环境变量
- 验证
- 可能遇到的问题
- 升级CMake3
- 查看现在的版本
- 准备安装包
- 添加环境变量
- 验证
- 安装ninja
- 验证
- 编译ClickHouse
- 拉取ClickHouse源码
- 切换到一个稳定的分支
- 开始编译
- 验证
- 可能出现的问题
- version `GLIBCXX_3.4.21' not found (required by ninja)
- 原因分析
- 解决办法
安装GCC7
查看现在的版本
[root@hadoop-test-5 ~]# gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
升级
cd /usr/local/src/ wget http://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.4.0/gcc-7.4.0.tar.gz tar zxvf gcc-7.4.0.tar.gz cd gcc-7.4.0 ./contrib/download_prerequisites
./configure --prefix=/opt/gcc7 --disable-multilib make -j4 make install
添加软链接
cd /opt/gcc7/bin/ ln -s gcc cc ln -s g++ g++-7 ln -s gcc gcc-7 ln -s /opt/gcc7/bin/* /usr/local/bin/
添加环境变量
vim /etc/profile export GCC7_HOME=/opt/gcc7 export PATH=$GCC7_HOME/bin:$PATH export CC=gcc-7 export CXX=g++-7 source /etc/profile
验证
[root@hadoop-test-4 ~]# gcc --version gcc (GCC) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
可能遇到的问题
/usr/local/src/gcc-7.4.0/missing: line 81: makeinfo: command not found yum install texinfo
升级CMake3
查看现在的版本
[root@hadoop-test-4 ~]# cmake --version cmake version 2.8.12.2
准备安装包
wget https://cmake.org/files/v3.14/cmake-3.14.5-Linux-x86_64.tar.gz tar zxvf cmake-3.14.5-Linux-x86_64.tar.gz -C /opt ln -s cmake-3.14.5-Linux-x86_64 cmake
添加环境变量
vim /etc/profile export CMAKE_HOME=/opt/cmake export PATH=$CMAKE_HOME/bin:$PATH source /etc/profile
验证
安装ninja
wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip unzip ninja-linux.zip -d /usr/local/bin/
验证
编译ClickHouse
拉取ClickHouse源码
git clone --recursive https://github.com/yandex/ClickHouse.git cd ClickHouse
切换到一个稳定的分支
git tag -l git checkout v19.7.3.9-stable
开始编译
mkdir build cd build cmake .. ninja clickhouse
验证
可能出现的问题
version `GLIBCXX_3.4.21' not found (required by ninja)
原因分析
虽然安装了Gcc7,但系统中的动态链接库没有替换,还是旧的
解决办法
[root@hadoop-test-5 opt]# ninja ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ninja) ninja: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ninja) [root@hadoop-test-5 build]# rm -f /lib64/libstdc++.so.6 [root@hadoop-test-5 build]# ln -s /opt/gcc7/lib64/libstdc++.so.6 /lib64/libstdc++.so.6
读后有收获可以支付宝请作者喝咖啡
