安装与配置:在三大平台编译 Vina 并配置运行环境

说实话,刚开始用 AutoDock Vina 时,我也直接下载别人编译好的二进制包。但后来发现,自己从头编译一遍,能避开不少坑——比如特定系统下的 OpenMP 加速问题、Boost 版本不匹配导致的崩溃。今天我把个人经验整理出来,帮你省点时间。

核心结论:Vina 的安装本质就三步——装依赖、用 CMake 配置、make 编译。Windows 下稍微麻烦点,但跟着下面走一遍就行了。

Vina 编译安装流程 获取 GitHub 源码 安装 Boost + OpenMP cmake -B build make -j$(nproc) 添加 PATH 并运行 vina --version ✅ 安装完成 ⚠️ 避坑提醒 • Windows 优先用 MSYS2 • macOS 用 Homebrew 装依赖 • 一次装好 Vina 和 Vina-CPU

Linux 下编译:最顺手的平台

Linux 是我用得最多的环境,尤其是 Ubuntu 和 CentOS。我个人习惯直接在命令行里搞定一切——干净、可控。

先把系统依赖装好:

# Ubuntu / Debian
sudo apt update
sudo apt install build-essential cmake libboost-all-dev

# CentOS / RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake boost-devel

然后克隆 Vina 的代码并编译:

git clone --branch 1.2.5 https://github.com/ccsb-scripps/AutoDock-Vina.git
cd AutoDock-Vina
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)

我的经验:如果你在服务器上没有 root 权限,可以用 conda install boost cmake 装依赖,然后编译时指向 conda 的库路径。我项目里遇到过集群无 root 的情况,就是这样搞定的。

编译完成后,在 build/bin/ 下会有 vina 和 vina_cpu 两个可执行文件。我建议把它们复制到 /usr/local/bin/ 下:

sudo cp build/bin/* /usr/local/bin/

macOS 上的配置:用 Homebrew 省心

macOS 自带 Clang,但要装 Boost 和 CMake。我个人推荐用 Homebrew——一个命令全搞定:

brew install cmake boost
brew install gcc@13   # 如果你需要完整 OpenMP 支持

注意:macOS 自带的 Clang 对 OpenMP 支持不完整。我曾因为没装 gcc,导致编译出来的 Vina 无法多线程运行,跑一个分子对接慢得要命。所以一定要装个完整版的 GCC:

cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++-13
cmake --build build -j$(sysctl -n hw.ncpu)

曾经遇到的坑:有次我忘了指定 GCC,Clang 默默编译成功了,但运行时 vina --cpu 0 只跑单核。后来加了 -fopenmp 才解决。建议编译后先跑 vina --version 确认 OpenMP 是否启用。

Windows 编译:最折腾但也能搞定

Windows 下我试过两种方式:用 MSYS2(推荐)或者用 Visual Studio + vcpkg。你先选一个吧,下面我主要讲 MSYS2 的流程——用起来最接近 Linux,而且坑最少。

先去 https://www.msys2.org/ 下载安装 MSYS2,然后打开 MSYS2 UCRT64 终端:

pacman -Syu
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-boost git

依赖装好以后,克隆源码并编译:

git clone --branch 1.2.5 https://github.com/ccsb-scripps/AutoDock-Vina.git
cd AutoDock-Vina
cmake -B build -DCMAKE_BUILD_TYPE=Release \
  -DBOOST_ROOT=/ucrt64 -DCMAKE_CXX_FLAGS="-fopenmp"
cmake --build build -j$(nproc)

编译完,可执行文件在 build\bin\。我习惯把它加到系统 PATH 里,这样在任意 PowerShell 中都能直接敲 vina:

$env:Path += ";C:\path\to\build\bin"

或者通过「系统属性→环境变量」永久设置。建议重启终端测试一下。

Windows 小贴士:如果你用 vcpkg,命令会变成:vcpkg install boost:x64-windows,然后 CMake 加 -DCMAKE_TOOLCHAIN_FILE=.../vcpkg.cmake。但说实话,MSYS2 的体验更统一,我推荐大家用 MSYS2。

环境变量配置:让系统找到 Vina

不管哪个平台,编译安装后都得让系统知道 vina 命令在哪。说白了就是改 PATH 变量。

系统 修改方式 临时生效
Linux / macOS 编辑 ~/.bashrc 或 ~/.zshrc export PATH=$PATH:/path/to/build/bin
Windows (CMD) 系统属性→环境变量 set PATH=%PATH%;C:\path\to\build\bin
Windows (PowerShell) 编辑 $PROFILE $env:Path += ";C:\path\to\build\bin"

我个人习惯在 ~/.bashrc 里加一行:

export PATH=$PATH:~/AutoDock-Vina/build/bin

然后 source ~/.bashrc 让它生效。如果你有多个工作站,可以把编译后的 bin 目录放到 NFS 共享盘上,一个版本到处用。

验证安装:跑个简单的测试

别急着对接大分子,先验证一下工具本身没问题。打开终端输入:

vina --version

正常你会看到类似:

AutoDock Vina 1.2.5 (OpenMP 4.5, double precision)
Computational Structural Biology, The Scripps Research Institute

如果报错 command not found,说明 PATH 没配对,或者可执行文件没权限。我曾经有一次忘了 chmod +x,在 Linux 下折腾了十分钟才反应过来。

再跑一个简单的帮助命令看看:

vina --help

应该输出一大段参数说明,其中包含 --cpu、--exhaustiveness 等关键参数。如果帮助都能正常显示,安装就基本成功了。

最后提醒:Vina 默认二进制位置在 build/bin/vina,你以后打分的脚本里写路径时记得用绝对路径或已经加入 PATH 的版本。这样能避免不同项目间版本冲突。