安装 Conda:Miniconda / Anaconda 的安装与基本配置

先问个问题:Miniconda 和 Anaconda,到底该装哪个?

说实话,我早年入坑时直接装了 Anaconda,图省事。但在服务器上,Anaconda 那一堆预装包基本用不上,白白占空间。后来切到 Miniconda,清爽很多。你如果只是跑 Cromwell + Conda 环境,Miniconda 足够了。

两种发行版,选对不选贵

特性MinicondaAnaconda
体积~500 MB~3 GB
预装包仅 conda + Python + 依赖150+ 常用数据科学包
适用场景服务器、自动化、定制环境本地学习、快速原型
管理灵活性极佳(按需安装)一般

个人建议:

  • 生产环境、CI/CD、Docker 镜像 → Miniconda
  • 自己写 demo、教学生 → Anaconda 也没问题
你在 Cromwell 中通过 Conda 创建运行时环境,每个 task 实际启动一个干净环境。所以 Miniconda 更合适——体积小、按需装、搬移方便。

平台安装:Linux / macOS / Windows

我记着第一次给公司服务器装 Miniconda 时,还手动配了 proxy。当时踩了个坑,后面我会提到。咱们先看最干净的安装命令。

Linux / macOS(命令行安装)

# 下载安装脚本(以 Miniconda3 Linux x86_64 为例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 运行安装(建议不要 sudo)
bash Miniconda3-latest-Linux-x86_64.sh

安装过程会问你是否同意许可、安装路径。我一般直接回车用默认 ~/miniconda3。最后一步会问要不要初始化 conda,选 yes 让它自动写 .bashrc。

macOS 用户注意:如果下载的是 .pkg 图形安装包,双击安装即可,结尾同样有初始化选项。不过我更推荐命令行方式,干净可控。

Windows 安装

Windows 上有两种方式:

  • 图形安装器(推荐新手)
  • 通过 PowerShell + winget(老手)
# 使用 winget(Windows 10 1709+ 自带包管理器)
winget install Miniconda3

图形安装器一路 Next,注意勾选 Add Miniconda3 to my PATH environment variable。我以前没勾,结果打开命令行敲 conda 找不到,又重新配环境变量,烦.

安装路径避免包含中文或空格,否则后续某些工具(包括 Cromwell 的 Conda 后端)可能会炸。我见过同事因为路径里有“用户”两个字,折腾半天。

基本配置:初始化与环境变量

安装完第一件事:让 shell 认得 conda 命令。

# 如果安装时选了“yes”,这条实际上已执行过
conda init

# 手动重载配置
source ~/.bashrc

# 验证
conda --version

你会看到类似 conda 24.1.0 的输出。嗯,这就成了。

配置 channels(软件源)

Conda 默认从官方源下载包,但国内速度慢。我一般加两个国内镜像:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes

建议把渠道优先级调成:先找 conda-forge,再找主渠道。很多 bioinfo 工具只在 conda-forge 有。

conda config --add channels conda-forge
conda config --set channel_priority flexible

设置代理(如果需要)

我在内网环境吃过亏。千万注意,conda 默认不读系统代理变量,得手动指定:

conda config --set proxy_servers.http http://your-proxy:8080
conda config --set proxy_servers.https http://your-proxy:8080

如果你用环境变量,也可以写进 .bashrc:

export HTTP_PROXY=http://your-proxy:8080
export HTTPS_PROXY=http://your-proxy:8080
曾经有次我忘了配 proxy,Cromwell 在集群上跑 task 时,conda create 一直在超时重试。后来发现是 worker 节点没走代理。记住:Cromwell 的 Conda 后端也是通过 conda 命令安装包,代理必须全路径打通。

验证安装与常用命令速览

装好了,咱们跑几个命令确认下:

# 查看 conda 版本
conda --version

# 查看已安装的包
conda list

# 创建测试环境
conda create -n test_env python=3.9

# 激活环境
conda activate test_env

# 退出环境
conda deactivate

# 删除环境
conda env remove -n test_env

如果你看到 conda: command not found,八成是 shell 初始化没生效。检查 .bashrc 末尾有没有:

__conda_setup="$('/home/yourname/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/yourname/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/home/yourname/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/yourname/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup

没有的话手动贴进去,source ~/.bashrc 即可。

知识体系:安装与配置全流程图

Conda 安装与基本配置流程 选择发行版 Miniconda(推荐) Anaconda 选择操作系统 Linux / macOS 命令行 Windows 图形 / winget Windows PowerShell 初始化配置 → channels → 代理 → 验证

避坑指南:我遇到过的配置陷阱

  • PATH 被覆盖:conda init 会自动调整 PATH 顺序。如果你自己又在 .bashrc 里写了 export PATH=...:$PATH,可能把 conda 排到后面。我一般在 conda 的初始化块之后再追加其他路径。
  • cache 占用过大:conda 会把下载的 .tar.bz2 包缓存到 pkgs 目录,用久了能到几个 GB。定期跑 conda clean --all 清理。
  • Python 版本冲突:base 环境不要动。创建新环境时指定 Python 版本,避免 base 污染。
  • conda init 对 zsh 的影响:我切到 zsh 后忘了重跑 conda init zsh,导致终端打开慢。后来发现是 conda 初始化脚本重复了。记得只用一次。
建议安装完立刻跑 conda update conda 升级到最新版。新版 conda 在依赖解析和速度上提升明显,特别是 23.10 之后的 mamba 兼容体验。

基础夯实了,后面就可以用 conda 创建 Cromwell 需要的运行时环境了。记住:Conda 是你的软件包工厂,Cromwell 是调度平台。工厂运转正常,调度才能流畅。