第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 + 少量核心包。
我建议怎么选?看场景:
| 对比维度 | Anaconda | Miniconda |
|---|---|---|
| 安装包大小 | ~500 MB | ~50 MB |
| 预装内容 | numpy, pandas, jupyter, R基础等上百个包 | 只有conda和python |
| 适用人群 | 刚入门、不想折腾依赖的新手 | 老手、服务器环境、需要定制化的用户 |
| 灵活性 | 低(大而全,但版本固定) | 高(需要什么装什么) |
| 推荐场合 | 个人笔记本做数据分析 | HPC集群、Docker、CI/CD流水线 |
我自己一直用Miniconda。原因很简单:我们装生物信息软件——比如DESeq2、edgeR——这些在默认频道里根本不在Anaconda预装列表里,装完还得手动加。Miniconda轻量、灵活,你想想看,一个几百兆的Anaconda在集群上解压都得半天。
1.3 安装前的准备
不管什么系统,安装前需要确认:
- 网络畅通:Conda默认从国外源下载,建议提前配置国内镜像。
- 磁盘空间:Miniconda装完约200MB,但后续环境会膨胀,每个R环境大概几百MB。我建议留出至少10GB。
- 权限:如果服务器上没有sudo权限,完全可以装在自己的用户目录下,Conda不需要root。
/home配额太小,结果环境装到一半磁盘满了。后来我改用--prefix指定到有足够空间的路径,才解决问题。
1.4 Windows安装步骤
Windows安装稍微麻烦点,因为Conda本质上是个Unix工具。不过现在有Windows Terminal + Miniconda的安装包,已经很友好了。
- 打开 Miniconda官网,下载Windows x86_64安装包(注意64位系统选64位版本)。
- 双击安装包,一路默认,但记得勾选“Add Miniconda3 to my PATH environment variable”。
- 安装完成后,打开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安装包
- 下载macOS版本的Miniconda pkg文件。
- 双击安装,一路默认。
- 安装后重启终端,运行
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。以下步骤适用于所有发行版:
- 用wget或curl下载Miniconda安装脚本:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
- 运行安装脚本:
bash Miniconda3-latest-Linux-x86_64.sh
安装过程中会问你是否同意协议,输入yes;然后问安装路径,建议默认/home/用户名/miniconda3;最后问是否运行conda init,建议选yes。
- 让配置生效:
source ~/.bashrc
- 验证:
conda --version
conda info
如果你用的是zsh(比如很多新Ubuntu默认),记得在安装完成后手动执行:
conda init zsh
source ~/.zshrc
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是什么、选哪个版本、怎么装。核心就三个动作:下载Miniconda、运行安装脚本、配置频道。
好了,环境装好了,下一关我们就要正式用Conda搭建R环境,然后安装DESeq2和edgeR。对了,别忘了先测试一下conda list能否正常输出,如果看到报ModuleNotFoundError: No module named 'conda',大概率是Python环境乱了,重新跑一遍安装脚本的conda init就行。