开始安装之前需要准备一些东西(这些的具体安装方式下面会讲的,不过喜欢自己配置环境的话也可以手动捣鼓):
1.可以运行的Linux机器(下面说明用到的都是Centos 7.x的版本,另外我用到的是阿里云的云服务器)
2.1 cmake3(下面教程有傻瓜版安装。手动安装可以参考https://blog.csdn.net/zjb18741809273/article/details/119192553;不过编译gromacs还需要Python3的支持,Linux系统大多自带Python2,所以手动的大佬可能还需要安装Python3.6.x以上的版本,可以参考https://blog.csdn.net/L_15156024189/article/details/84831045(上面两个都是保姆级教程了))
2.2 gcc
3.1 傅里叶变换软件fftw(http://fftw.org/index.html(里面也有安装的引导,如果想搞明白每个设置的意义可以看一下,单纯为了安装的话跟着下面的引导就好了))
3.2 gromacs(http://www.gromacs.org/(里面也有安装教程https://manual.gromacs.org/documentation/current/install-guide/index.html)
我主要是依照sob大神写的教程来的(http://sobereva.com/457)。里面讲的很清楚,cmake3按照教程下载就可以。不过下面依然遇到了几个问题。
在进行gromacs的编译时出现了以下报错:
No CMAKE_CXX_COMPILER could be found.
这是因为没有安装gcc编译器(天真的我以为cmake会自带这种东西呢 ),可以直接yum install gcc-c++
来进行安装。
不过yum提供的gcc可能版本过低(编译需要gcc版本大于5.1.x),可以这样更新(scl只是临时启用高版本的gcc,退出shell就会自动关闭。如果需要长期使用可以参考https://www.cnblogs.com/FengGeBlog/p/14919920.html):
yum install centos-release-scl -y
yum install devtoolset-8 -y
scl enable devtoolset-8 bash
最后用gcc --version
来检查一下。
gcc版本过低就可能导致如下报错:
CMake Error in /sob/gromacs-2021.3/build/CMakeFiles/CMakeTmp/CMakeLists.txt:
Target "cmTC_90232" requires the language dialect "CXX17" , but CMake does
not know the compile flags to use to enable it.
CMake Error at cmake/gmxDetectTargetArchitecture.cmake:44 (try_compile):
Failed to generate test project build system.
Call Stack (most recent call first):
CMakeLists.txt:168 (gmx_detect_target_architecture)
这两个错误似乎都是因为gcc版本过低导致的,低版本不支持c++17,按照上面说的更新一下就好。
最后在编译的时候可能会遇到这种报错:
g++: fatal error: Killed signal terminated program cc1plus
compilation terminated.
make[2]: *** [sql/CMakeFiles/sql_gis.dir/gis/crosses.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql_gis.dir/all] Error 2
make: *** [all] Error 2
c++: Internal error: Killed (program cc1plus)
Please submit a full bug report.
See for instructions.
make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1
make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2
make: *** [all] Error 2
大概是物理内存被填满了。可以试着建立一个swap分区来让内存使用跟合理一些,参考https://www.cnblogs.com/zsummer/p/4808422.html。如果还是依然报错的话,可以试着去掉make install -j
中的-j(虽然但是不知道为什么,明明并行处理会更快一点,似乎是会增加CPU的负担 )。
最后附上一个gromacs的练习册http://www.mdtutorials.com/gmx/