【工作日志节选】AutoDock Vina1.2.3的编译安装
使用计算机平台为Intel处理器,Ubuntu20.04系统。
安装Vina需要安装其包依赖C++运行库boost,我早前下载好了boost1.78源码包。
安装流程为:
1.解压boost1.78源码包,图形界面提取或使用tar -zxvf 命令解压都可以。
2. 运行解压后文件目录中的shell脚本bootstrap.sh,注意这个脚本可以使用--help参数查看详细使用方法,包括设置编译器类型等。
$ sh bootstrap.sh
3. 运行bootstrap生成的可执行文件b2,这一可执行文件也可以用--help参数查看使用方法。
$ ./b2
4. 编译成功后会提示Boost C++库成功构建,此时即可使用b2进行安装。可使用sudo命令安装到/usr/local/boost1.78文件目录下:
$ sudo ./b2 --prefix=/usr/local/boost1.78 install
5. 将安装目录下的两个文件目录以修改.bashrc文件的方式加入环境变量:
$ echo "export CPLUS_INCLUDE_PATH=/usr/local/boost1.78/include" >> ~/.bashrc
$ echo "export LIBRARY_PATH=/usr/local/boost1.78/lib" >> ~/.bashrc
6.根据前些年在神威操作系统上安装vina的相关文献《分子对接软件AutoDockVina在太湖之光操作系统上的移植》,boost可能应该需要进行类似于make check之类的检查,但限于各种原因,因此仅编译了如下c++程序进行简单测试:
#include <boost/date_time/gregorian/gregorian.hpp>
#include <iostream>
using namespace std;
int main()
{
boost::gregorian::date d(boost::gregorian::day_clock::local_day());
cout << d.year()<<"." << d.month()<<"." <<d.day() <<endl;
getchar();
return 0;
}
随后使用g++和icpx分别编译此程序并运行,都产生了今天日期,取得成功。
7.包依赖解决,Vina安装正式开始,解压Vina1.2.3压缩包,tar解压或图形界面提取都可以
8.进入Vina解压目录下的/build/linux/release目录,并修改Makefile中的参数,可以指定boost包位置及编译器名称,粗体是我手动修改的部分。
BASE=/usr/local/boost1.78
BOOST_VERSION=
BOOST_INCLUDE = $(BASE)/include
C_PLATFORM=-static -pthread
GPP=icpx
C_OPTIONS= -O3 -DNDEBUG -std=c++11
BOOST_LIB_VERSION=include ../../makefile_common
9.使用make -j 命令编译,尽管编译过程中出现了一些警告提示,但仍然正常生成了vina和vina_split程序。经初步测试,可以显示帮助列表和版本号等。将这俩程序复制粘贴到/usr/local/bin文件目录下,完成安装。
后记:
本机平台为Intel处理器,因此为了最佳运行效率优先考虑Intel编译器(icc或icx),但目前intel编译器对许多源码的适应状况不良,因此C++运行库boost我是用Linux标配的gcc编译器编译的,编译器设置为Intel时则无法编译完成。而AutoDock Vina则使用icx编译器编译成功。
当然icx/icpx编译器(Intel OneAPI的DPC++编译器)还太新,是否会出现问题尚不清楚,需要在实际工作中进一步进行检验。