今天一整天都在不停的升级、安装。
今天又升级了一下cmake,原因是在安装thrift的时候报错,提示configure: error: Please install the mstch library,所以只能编译mstch,可是make的时候又提示我cmake版本太低,所以就只能升级。
这次一步到位升级到3.8.
wget https://cmake.org/files/v3.8/cmake-3.8.0.tar.gz
tar zxvf cmake-3.8.0.tar.gz
cd cmake-3.8.0
./bootstrap --prefix=/usr
这一步,不要使用./bootstrap,如果是这样,cmake将不能安装在/usr下,运行时会提示没有设置cmake root.
但是这时候会提示version `GLIBCXX_3.4.20' not found,原因是之前升级了gcc,而相应的链接库却没有更新。
解决方案来自于 《解决类似 /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 的问题》。
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
输出结果:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH
发现,果然没有20.
执行命令:
find / -name "libstdc++.so*"
输入结果:
/usr/lib64/libstdc++.so.6.0.19
/usr/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so.6
/usr/local/lib64/libstdc++.so
/usr/local/lib64/libstdc++.so.6.0.20
/usr/local/lib64/libstdc++.so.6.0.20-gdb.py
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/usr/local/build/gcc-4.9.3/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/build/gcc-4.9.3/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/build/gcc-4.9.3/stage1-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/usr/local/build/gcc-4.9.3/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/build/gcc-4.9.3/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/build/gcc-4.9.3/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/32/libstdc++.so
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/libstdc++.so
其中
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so
/usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20
是我们需要的信息。
将需要的文件复制过去:
cp /usr/local/build/gcc-4.9.3/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.20 /usr/lib64/
cd /usr/lib64
rm -rf libstdc++.so.6
ln -s libstdc++.so.6.0.20 libstdc++.so.6
再执行:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
就可以看到20了。
gmake
gmake install
结束。