作为一枚刚进入计算化学的小白,最近几天经历万般折磨,终于在centos7上成功安装Gromacs2020.5。特此记录一下安装过程中遇到的巨坑。PS:ubuntu对小白是真的友好,安装Gromacs完全不会遇到下面的坑。
1、Gromacs需要的库
Cmake、FFTW、cuda_toolkit、gcc、gromcs安装包。各种库的安装过程在此不赘述,直接开始遇到的坑。
2、gcc,cmake
2.1问题一
目前能搜到的centos7安装gromacs的教程,基本上是安装gromacs18版(没看到教程中遇到此问题)。Gromacs2020版需要Cmake3.0以上,gcc5.0以上,但是centos7自带cmake2.8版本,gcc4.几版本(忘了,不好意思),在进行gromacs安装命令 cmake .. -D.... 时就会出现问题
请先自行安装cmake3.0,gcc8.0版本。
出现此问题是因为cmake3时,没有使用gcc8.0。
解决办法:通过-DCMAKE_CXX_COMPILER和-DCMAKE_C_COMPILER指定gcc版本
-DCMAKE_CXX_COMPILER=gcc安装路径/g++
-DCMAKE_C_COMPILER=gcc安装路径/gcc
which gcc #查找gcc路径 gcc8.0版本
2.2问题二
原因:新安装的gcc没有覆盖旧版本的gcc动态库
解决办法: 用最新的libstdc++.so.6替换旧的/usr/lib64/libstdc++.so.6:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC #查看旧版本libstdc++.so.6
find / -name libstdc++.so.6 #查看新版本libstdc++.so.6
#可疑的目录
/usr/local/lib64/libstdc++.so.6
strings /usr/local/lib64/libstdc++.so.6 | grep GLIBC #检查了一下/usr/local/lib64目录下的动态库,应该有报错信息里缺少的GLIBC CXXABI的版本
#覆盖旧版本的动态库
cd /usr/lib64
rm -rf libstdc++.so.6
cp /usr/local/lib64/libstdc++.so.6 ./
祝大家都能顺利安装上gromacs!