第二章:Vina 安装——在 Linux、Windows、macOS 下的完整配置
安装 AutoDock Vina,听起来就是个「解压即用」的事。早些年我因为版本选错,折腾了整整两天——嗯,那时候刚入门,连可执行文件的权限都没给。其实背后没那么玄乎,三个系统的安装逻辑几乎一样,只是包管理和路径设置各有点小脾气。我个人习惯先下载官方二进制,再配环境变量,这样最稳。
核心原则:Vina 是纯命令行工具,不依赖图形库。安装本质就是——把可执行文件放到 PATH 里。
2.1 安装前准备:你手上需要哪些东西?
动手之前,先确认三样东西:
- 操作系统版本:64 位(x86_64),我碰见过有人在 32 位老系统上硬跑,直接报「Exec format error」。
- Python 3.8+(可选,但后续批次检查脚本会用到)。
- OpenBabel 或 pymol(用来处理配体/受体格式,非必须,但早晚用得上)。
为什么强调这个?之前有个团队在 CentOS 6 上装 Vina 1.2.3,跑起来一直段错误,后来发现是系统 glibc 版本太老。我建议先跑一下 ldd --version,glibc ≥ 2.17 基本安全。
2.2 Linux 安装步骤(最推荐,也最省心)
Linux 下的安装,我见过最快的记录是 2 分钟。来吧:
- 下载二进制包。到官方 GitHub Release 页面(AutoDock-Vina Releases),找到
vina_1.2.5_linux_x86_64之类的最新版。 - 解压到目标目录。我习惯放
/opt/vina/或~/software/vina。 - 添加 PATH。
# 下载示例(以 v1.2.5 为例)
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.5/vina_1.2.5_linux_x86_64.tar.gz
tar xzf vina_1.2.5_linux_x86_64.tar.gz
sudo mv vina_1.2.5_linux_x86_64 /opt/vina
# 添加至 PATH(每条命令二选一)
echo 'export PATH="/opt/vina:$PATH"' >> ~/.bashrc
source ~/.bashrc
# 验证
vina --version
避坑指南:解压后记得给执行权限。我遇到过直接 tar 出来文件没 x 位的,跑 chmod +x /opt/vina/vina 解决。
输出应该类似:
AutoDock Vina v1.2.5
如果报错 cannot execute binary file,八成是架构不匹配。用 uname -m 确认是 x86_64。
2.3 Windows 安装步骤(两种路线)
Windows 用户我推荐两种方案,各有利弊。我自己现在用 WSL,体验几乎和原生 Linux 一样。
路线 A:原生 Windows 可执行文件
- 下载
vina_1.2.5_win64.exe(其实是个自释放的 ZIP,双击解压)。 - 把解压出的
vina.exe放到一个不含空格的路径,比如C:\vina\。 - 将
C:\vina加入系统环境变量 PATH(“系统属性”→“环境变量”→编辑 PATH → 新建)。 - 打开 cmd,输入
vina --version测试。
注意:Windows 版 vina.exe 依赖 VC++ 运行库。如果提示缺少 DLL,去微软官网安装「Visual C++ Redistributable for Visual Studio 2015-2022」即可。
路线 B:WSL 2(我强烈推荐)
WSL 下你是真的在跑 Linux,跟后续的批次脚本完全兼容。步骤:
- 启用 WSL 2(微软官方教程很详细)。
- 安装 Ubuntu 22.04 LTS。
- 在 WSL 终端里按 Linux 流程走。
实测 WSL 下的 Vina 性能几乎没有损耗。我做大规模虚拟筛选时都在 WSL 里跑。
2.4 macOS 安装步骤
macOS 我用的少,但每次帮同事配基本都是这套流程。Apple Silicon(M 系列)和 Intel 两种架构要区分开。
- 下载对应二进制:
vina_1.2.5_macos_x86_64(Intel)或vina_1.2.5_macos_arm64(Apple Silicon)。 - 放到 /usr/local/bin:
# 示例:ARM 架构
curl -L -o vina.tar.gz https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.5/vina_1.2.5_macos_arm64.tar.gz
tar xzf vina.tar.gz
sudo mv vina_1.2.5_macos_arm64/vina /usr/local/bin/
sudo chmod +x /usr/local/bin/vina
小经验:macOS 从 Catalina 开始,/usr/local/bin 可能不存在,先 sudo mkdir -p /usr/local/bin。
验证:
vina --version
如果 macOS 提示「无法验证开发者」,去「系统偏好设置→安全性与隐私→通用」里点「仍要打开」。
2.5 环境配置与 PATH 验证
不管哪个系统,最终都得保证终端能直接找到 vina。我常用下面这套脚本快速验证环境是否就绪:
# 验证 vina 可执行
which vina && vina --version || echo "Vina 未在 PATH 中找到"
# 查看 vina 位置(方便后续脚本引用)
readlink -f $(which vina)
输出示例:
/opt/vina/vina
AutoDock Vina v1.2.5
多版本共存:如果你是老用户,机器上同时有 v1.1.2 和 v1.2.5,我建议用 alias vina125='vina' 配合不同路径,避免混淆。
2.6 初次运行:测试安装是否正常
装完别急着走。我习惯用 Vina 自带的范例跑一次快速测试:
# 下载测试数据(官方 examples 目录)
wget https://github.com/ccsb-scripps/AutoDock-Vina/raw/refs/heads/develop/test/1iep_receptor.pdbqt
wget https://github.com/ccsb-scripps/AutoDock-Vina/raw/refs/heads/develop/test/1iep_ligand.pdbqt
# 运行对接(预置配置足够简单)
vina --receptor 1iep_receptor.pdbqt \
--ligand 1iep_ligand.pdbqt \
--center_x 15.0 --center_y 15.0 --center_z 15.0 \
--size_x 20 --size_y 20 --size_z 20 \
--exhaustiveness 8 \
--out test_out.pdbqt
如果几秒后生成 test_out.pdbqt,恭喜——环境没问题。我曾经因为 OpenCL 冲突导致卡住,但那是 Vina-GPU 的事,CPU 版一般不会。
2.7 打包 & 权限:别被 SELinux 坑了
Linux 服务器上常遇到 SELinux 或 AppArmor 拦截。表现为:vina --version 正常,但跑任务时输出全是 Bus error。
我的解决套路:
# 检查 SELinux 状态
getenforce
# 临时关闭(仅测试)
sudo setenforce 0
# 若正常,则需给 vina 二进制放行(永久方案)
sudo semanage fcontext -a -t bin_t /opt/vina/vina
sudo restorecon -v /opt/vina/vina
重要:生产环境不可直接 setenforce 0,上面是调试用的,确认问题后就改回 enforcing 并配置安全策略。
2.8 安装对比一览表
我把三个系统安装的关键差异整理成了表格,方便对照:
| 操作系统 | 二进制名称 | 推荐安装位置 | 常见坑点 |
|---|---|---|---|
| Linux | vina |
/opt/vina/ 或 ~/bin/ |
缺少执行权限、glibc 版本过低 |
| Windows(原生) | vina.exe |
C:\vina\ 或带空格的路径 |
VC++ 运行库缺失、路径含空格导致脚本崩溃 |
| Windows(WSL) | vina(Linux 二进制) |
WSL 内 /usr/local/bin/ |
WSL 版本需为 2,否则性能大幅下降 |
| macOS Intel | vina |
/usr/local/bin/ |
Gatekeeper 拦截、路径不存在 |
| macOS ARM | vina |
/usr/local/bin/ |
Rosetta 2 不必要,选 arm64 版更稳定 |
2.9 本章知识体系图
一张图概括 Vina 安装全流程:
2.10 最后的叮嘱
安装本身不难。但如果你在集群上部署,记得用 module load 或者 conda 环境隔离。我个人习惯把 vina 放在 /opt/vina 后,再建个 vina1.2.5 的符号链接,方便以后版本切换。
嗯,装完之后打开终端敲个 vina --version,看到那个熟悉的版本号,心里就踏实了。准备好这一步,后面做批次一致性检查才不会被环境问题绊倒。