CentOS7下编译ClickHouse

  |   0 评论   |   439 浏览

安装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

down_pre.png

./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

验证

cmake.png

安装ninja

wget https://github.com/ninja-build/ninja/releases/download/v1.9.0/ninja-linux.zip
unzip ninja-linux.zip -d /usr/local/bin/

验证

image.png

编译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

image.png

验证

image.png

可能出现的问题

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