为什么 conda 会卡死
传统 conda 用 SAT 求解器解析依赖,bioconda 依赖树深(R/Python/C 库交叉),版本组合爆炸导致 Solving environment... 转圈数十分钟甚至失败。
三级加速方案
| 方案 | 操作 | 提速效果 |
|---|---|---|
| libmamba solver(首选) | conda ≥23.10 默认启用;旧版 conda install -n base conda-libmamba-solver 后设为默认 | 10-100× |
| mamba 独立安装 | conda install -n base -c conda-forge mamba,用 mamba 替代 conda 命令 | 10-100× |
| 锁定 channel 顺序 | conda-forge 优先 + strict 优先级 | 减少解析空间 |
生信环境管理最佳实践
- 一项目一环境:
mamba create -n scrna python=3.11,绝不往 base 装包 - 导出复现:
conda env export > env.yml;跨机器迁移时--no-builds更通用 - channel 顺序固定:conda-forge → bioconda → defaults,写进
~/.condarc - 缓存清理:
conda clean --all定期跑,否则 pkgs 目录能吃掉几百 GB
多人共用服务器的考虑
团队服务器上每人独立环境目录(envs_dirs 指向自己的配额盘),避免互相污染;同时全局缓存共享可以大幅减少重复下载。这也是团队共享服务器比人手一台工作站划算的典型场景——详见团队共享配置计算器。
常见问题
conda 安装生信软件太慢怎么办?
改用 mamba(或 conda 23.10+ 启用 libmamba solver),依赖解析速度提升 10-100 倍,bioconda 大多数包几秒内完成解析。
不同项目依赖冲突必须装多台机器吗?
不用。conda/mamba 的 per-project 独立环境 + environment.yml 导出即可在同一台服务器上隔离任意多套软件栈。