第1章:Conda简介与安装

做生物信息分析,尤其是用R语言处理转录组数据时,环境管理是个头疼事。我早期经常遇到这种情况:某个R包依赖的库版本冲突,一装就是半天,最后还把系统搞崩了。

后来接触了Conda,才算是彻底解放。说白了,Conda就是一个包管理和环境管理工具,它能让你在同一个机器上隔离出多个独立的环境,互不干扰。你可以在环境A装Python 3.8+R 4.1,环境B装Python 3.10+R 4.3,完全没问题。

1.1 Conda到底是个什么

Conda最初是Anaconda公司为Python科学计算开发的,但它不只管Python——它能管R、C/C++、Perl、Java等等。你想想看,生物信息学里软件依赖有多乱?不同工具要不同版本的库,Conda用一个environment.yaml文件就能把整套环境复现给别人。

它的核心工作原理很简单:

  • 环境隔离:每个环境有自己的目录,互不污染。
  • 二进制包分发:直接下载预编译好的包,不用从源码编译。
  • 依赖解析:自动处理包之间的版本冲突(虽然有时也会失败,但比手工强太多)。

我个人习惯把Conda看作“虚拟机的轻量版”。它不虚拟操作系统,只虚拟软件栈。在HPC集群上,Conda更是救命稻草——系统管理员不会给你随便装软件,但你可以用自己的环境。

1.2 Miniconda vs Anaconda:我选哪个

新手经常问:Anaconda那么大,是不是功能更全?其实Anaconda = Conda + 预装好的150多个科学包 + 图形界面Navigator。Miniconda = 只有Conda + Python + 少量核心包。

我建议怎么选?看场景:

对比维度AnacondaMiniconda
安装包大小~500 MB~50 MB
预装内容numpy, pandas, jupyter, R基础等上百个包只有conda和python
适用人群刚入门、不想折腾依赖的新手老手、服务器环境、需要定制化的用户
灵活性低(大而全,但版本固定)高(需要什么装什么)
推荐场合个人笔记本做数据分析HPC集群、Docker、CI/CD流水线

我自己一直用Miniconda。原因很简单:我们装生物信息软件——比如DESeq2、edgeR——这些在默认频道里根本不在Anaconda预装列表里,装完还得手动加。Miniconda轻量、灵活,你想想看,一个几百兆的Anaconda在集群上解压都得半天。

我的小技巧:如果你在Windows上,Anaconda自带的Navigator确实方便,但如果你要写脚本、跑流水线,Miniconda + 命令行才是王道。

1.3 安装前的准备

不管什么系统,安装前需要确认:

  • 网络畅通:Conda默认从国外源下载,建议提前配置国内镜像。
  • 磁盘空间:Miniconda装完约200MB,但后续环境会膨胀,每个R环境大概几百MB。我建议留出至少10GB。
  • 权限:如果服务器上没有sudo权限,完全可以装在自己的用户目录下,Conda不需要root。
我曾经踩过的坑:在集群上安装时,没注意/home配额太小,结果环境装到一半磁盘满了。后来我改用--prefix指定到有足够空间的路径,才解决问题。

1.4 Windows安装步骤

Windows安装稍微麻烦点,因为Conda本质上是个Unix工具。不过现在有Windows Terminal + Miniconda的安装包,已经很友好了。

  1. 打开 Miniconda官网,下载Windows x86_64安装包(注意64位系统选64位版本)。
  2. 双击安装包,一路默认,但记得勾选“Add Miniconda3 to my PATH environment variable”。
  3. 安装完成后,打开Anaconda Prompt(或者PowerShell),输入conda --version测试。
C:\Users\Admin> conda --version
conda 23.11.0

如果报错conda不是内部命令,说明PATH没加进去。手动加一下系统环境变量,或者重新安装并勾选那个选项。

Windows特别提醒:Conda在Windows上默认把环境放在C:\Users\用户名\.conda\envs。如果你用WSL2,强烈建议在WSL2里装Linux版Miniconda,性能更好,且后续编译R包不会出Windows特有的路径问题。

1.5 macOS安装步骤

macOS用户比较幸福,大多数命令和Linux通用。推荐用Homebrew安装,或者直接下载pkg安装包。

方法一:Homebrew(我推荐)

brew install --cask miniconda
conda init zsh    # 如果shell是zsh的话

方法二:pkg安装包

  1. 下载macOS版本的Miniconda pkg文件。
  2. 双击安装,一路默认。
  3. 安装后重启终端,运行conda init。
conda init
source ~/.zshrc   # 或者 source ~/.bash_profile

我遇到过一个问题:安装后终端没自动激活base环境。解决办法是手动执行conda config --set auto_activate_base true。不过我个人习惯不自动激活base,而是每次手动conda activate,这样避免和系统Python冲突。

1.6 Linux安装步骤

Linux服务器是生物信息学的主战场。大多数HPC集群使用Rocky Linux或Ubuntu。以下步骤适用于所有发行版:

  1. 用wget或curl下载Miniconda安装脚本:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  1. 运行安装脚本:
bash Miniconda3-latest-Linux-x86_64.sh

安装过程中会问你是否同意协议,输入yes;然后问安装路径,建议默认/home/用户名/miniconda3;最后问是否运行conda init,建议选yes。

  1. 让配置生效:
source ~/.bashrc
  1. 验证:
conda --version
conda info

如果你用的是zsh(比如很多新Ubuntu默认),记得在安装完成后手动执行:

conda init zsh
source ~/.zshrc
重要注意:服务器上如果之前已经装了Anaconda,千万别直接覆盖安装Miniconda。我曾经因为没先卸载旧版,导致两个conda冲突,环境变量全乱。正确的做法是先rm -rf ~/anaconda3(当然要确认没有重要环境),再装Miniconda。

1.7 Conda的基本配置

装好后第一件事:配置国内镜像源。默认源在国外,下载速度惨不忍睹。我用的是清华Tuna镜像:

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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

再设置bioconda频道(后面装DESeq2和edgeR需要它):

conda config --add channels bioconda
conda config --add channels r

配置好后,可以用conda config --show channels检查一下频道优先级,一般顺序是:defaults -> conda-forge -> bioconda -> r。注意,顺序很重要,conda会从优先级高的频道解析依赖。

我的经验:如果你在服务器上跑作业,建议把conda-forge放在defaults之前,因为很多新包在conda-forge更新更快。但要注意包名冲突,我踩过几次不同频道同名包的坑。

1.8 Conda环境快速入门

熟悉几个最常用的命令,然后就可以收尾了:

  • 创建环境:conda create -n myenv python=3.9
  • 激活环境:conda activate myenv
  • 安装包:conda install r-base=4.2
  • 退出环境:conda deactivate
  • 查看所有环境:conda env list

到此,Conda安装完成。下一步我们就可以用它搭建R环境了。不过先别急,让我们先看一眼本章的整体结构——下面这张图可以帮你快速回忆:

Conda安装与选择知识图谱 Conda 包管理 + 环境管理 Miniconda vs Anaconda 安装步骤 二进制分发 环境隔离 个人笔记本:Anaconda / 服务器:Miniconda Windows / macOS / Linux 提示 选择Miniconda + 配置国内镜像 + 添加bioconda频道 是后续安装DESeq2和edgeR最顺畅的组合

这张图帮大家理清了关系:Conda是什么、选哪个版本、怎么装。核心就三个动作:下载Miniconda、运行安装脚本、配置频道。

好了,环境装好了,下一关我们就要正式用Conda搭建R环境,然后安装DESeq2和edgeR。对了,别忘了先测试一下conda list能否正常输出,如果看到报ModuleNotFoundError: No module named 'conda',大概率是Python环境乱了,重新跑一遍安装脚本的conda init就行。