阅读量过万的conda使用总结,跨越一年的更新

2019-10-09 15:15:33 浏览数 (1)

2019-6-28 update: 增加删除、重命名conda环境的操作 2019-6-17 update: 普大喜奔!清华恢复了conda的镜像!清华??!附上最新的添加清华镜像的命令! 2019-6-12 update: 发现了一个新的anaconda repo叫genomedk,添加了hoptop的搭建本地conda镜像的教程 2019-5-16 update: 有的小伙伴不知道怎么添加官方源,这边补充一下 2019-5-7 update: 万万没想到,腾讯的镜像比清华的先挂了…… 2019-4-29 update: 更新了新的查找软件的recipe,更新了腾讯源来取代即将挂掉的清华源


有很多的生信软件都可以通过conda安装,省去了很多的安装、修bug的烦恼。经常是安装到崩溃的软件,conda一行命令就搞定了。前两天有个胖友问我gatk 3.8的版本在哪里下,下载好了之后怎么安装,我果断打开了https://bioconda.github.io/recipes ,告诉她安装conda吧,只要一行命令conda install gatk就行了。 (2019-4-29 update:这个网址已经挂掉了,请改用https://anaconda.org/bioconda/repo) 然后她很可爱的问我conda怎么装。。果断就把这篇教程丢给她了,但是发现现在的用法和以前的不是很一样了,所以就把原来的教程更新了一下以飨读者。

你要的gatk


conda简介

Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。Conda 是为 Python 程序创建的,适用于 Linux,OS X 和Windows,也可以打包和分发其他软件。

安装conda

conda分为anaconda和miniconda。anaconda是包含一些常用包的版本(这里的常用不代表你常用 微笑.jpg),miniconda则是精简版,需要啥装啥,所以推荐使用miniconda。

下载网址

conda官网:https://conda.io/miniconda.html

选择适合自己的版本,用wget命令下载。

代码语言:javascript复制
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh

这里选择的是latest-Linux版本,所以下载的程序会随着python的版本更新而更新(现在下载的版本默认的python版本已经是3.7了)

安装命令
代码语言:javascript复制
chmod 777 Miniconda3-latest-Linux-x86_64.sh #给执行权限
bash Miniconda3-latest-Linux-x86_64.sh #运行

注意,以前的教程都是教一路yes下来的,但是会有隐患,特别是当你的服务器之前有安装过软件的话,conda会污染你原来的环境,把你原来设置好的东西进行更改。具体的惨痛教训请参见: Anaconda is a snake.

所以在询问是否将conda加入环境变量的时候选择no。

选择no

启动conda

在上一步选择no之后,输入conda是会报找不到此命令的。那要如何启动呢? 找到你刚才安装的miniconda,如果没有更改过安装位置的话应该是在/home下面,cd到miniconda3的bin目录下面,能看到有一个activate。

activate 这里需要给activate添加一下权限才能使用

代码语言:javascript复制
chmod 777 activate 

接下来启动conda

代码语言:javascript复制
. ./activate #这里的第一个点跟source是一样的效果,我比较懒。

成功启动conda 当命令行前面出现(base)的时候说明现在已经在conda的环境中了。这时候输入conda list 命令就有反应了

conda list

添加频道

2019-5-16 update: 这个道理跟家里的电视机是一样一样的,安装conda就相当于买了一台电视机,但是有电视了不意味着你就能看节目了,你要手动添加频道才能看你想看的电视节目。 官方channel:

代码语言:javascript复制
conda config --add channels bioconda
conda config --add channels conda-forge

官方的话这两个channel应该就够了的。 2019-6-12 update:最近在装raxml-ng的时候发现了一个新的channel叫genomedk,各位也可以添加到condarc里去 ?

代码语言:javascript复制
conda config --add channels genomedk

顺便安利一个我hoptop学长的教程:如何搭建一个本地的conda镜像(包含bioconda)供各位爱折腾的高端玩家。 2019-6-17 update: 清华恢复了conda 的镜像了!详情请看下面: Anaconda 镜像即将恢复 借花献佛给大家复习一遍如何添加清华的镜像channels: 来源 → 生信媛: 喜大普奔: Anaconda的清华镜像又可以用了

代码语言:javascript复制
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

2019-4-29 update: 由于anaconda授权问题,清华源即将关闭,请各位胖友添加以下腾讯源: 腾讯源已经挂掉了

代码语言:javascript复制
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/free/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/msys2/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/menpo/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/peterjc123/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/pkgs/main/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.cloud.tencent.com/anaconda/cloud/pytorch/

万万没想到,腾讯的镜像比清华的先挂了……感谢简书用户多啦A梦的时光机_648d 接下来啥镜像能用我也不知道了……大家都试试吧,或者坐等新的镜像发布。清华的近一个月应该是还能用的,我今天还测试过的。祝大家好运 显示安装的频道

代码语言:javascript复制
 conda config --set show_channel_urls yes 

查看已经添加的channels

代码语言:javascript复制
conda config --get channels

已添加的channel在哪里查看

代码语言:javascript复制
vim ~/.condarc

利用conda安装生物信息软件

安装命令
代码语言:javascript复制
 conda install gatk
搜索需要的安装包

提供一个网址,用于事先查找想安装的软件存不存在 conda available packages

当然, 也可以用这个命令进行搜索

代码语言:javascript复制
 conda search gatk

安装完成后,可以用“which 软件名”来查看该软件安装的位置:

代码语言:javascript复制
 which gatk
如需要安装特定的版本
代码语言:javascript复制
conda install 软件名=版本号
conda install gatk=3.7

这时conda会先卸载已安装版本,然后重新安装指定版本。

查看已安装软件:

代码语言:javascript复制
conda list

更新指定软件:

代码语言:javascript复制
conda update gatk

卸载指定软件:

代码语言:javascript复制
conda remove gatk

退出conda环境

退出也很简单,之前我们是. ./activate 或者 (. ~/miniconda3/bin/activate)现在退出只要:

代码语言:javascript复制
. ./deactivate

就退出当前的环境了

创建软件的软链接

跟着命令一路敲到这里的小旁友们估计发现了,现在退出conda环境之后之前安装的软件全都GG了,敲命令没法执行了! 怎么办呢!其实只要把安装好的软件软连接到一个处在环境变量里的位置就可以使用了。三步走:

  • 第一步,创建一个文件夹 我一般的习惯是在/home目录下创建一个.soft文件夹
  • 第二步,将这个文件夹添加到环境变量中
代码语言:javascript复制
export PATH="~/.soft:$PATH"
  • 第三步,软链接
代码语言:javascript复制
ln -s ~/miniconda3/bin/gatk ~/.soft

这样就可以运行啦~如果还是不行建议试试初始化一下bashrc:. ./bashrc

创建conda环境

之前创建的时候显示的是(base)这是conda的基本环境,有些软件依赖的是python2的版本,当你还是使用你的base的时候你的base里的python会被自动降级,有可能会引发别的软件的报错,所以,可以给一些特别的软件一些特别的关照,比如创建一个单独的环境。 在conda环境下,输入conda env list(或者输入conda info --envs也是一样滴)查看当前存在的环境:

目前的环境 目前只有一个base

代码语言:javascript复制
conda create -n python2 python=2
#-n: 设置新的环境的名字
#python=2 指定新环境的python的版本

conda会创建一个新的python2的环境,并且会很温馨的提示你只要输入conda activate python2就可以启动这个环境了

新的环境

退出环境

如上面的截图提到的,只要

代码语言:javascript复制
conda deactivate

2019-6-28 update: 如何删除和重命名一个已存在的环境

删除环境

删除也很容易的

代码语言:javascript复制
conda remove -n myenv --all

就可以退出当前环境。 掌握了创建和删除我们就可以实现重命名的操作了

重命名环境

实际上conda并没有提供这样的功能,但是可以曲线救国,原理是先克隆一个原来的环境,命名成想要的名字,再把原来的环境删掉即可 参考自:conda 创建/删除/重命名 环境 接下来演示把一个原来叫做py2的环境重新命名成python2:

代码语言:javascript复制
conda create -n python2 --clone py2
conda remove -n py2 --all

骚操作:allias简化启动

image.png linux提供了一个给大家偷懒的命令叫alias,只要在你的.bashrc里设置一下就好了,我添加了一条叫做condaup的命令,这样就可以免去每次敲. ~/miniconda/bin/dactivate的麻烦,一步搞定~技术宅改变世界!

参考及感谢

  • 感谢青山屋主在知乎的专栏文章~ 使用Bioconda管理Linux系统中的生物信息软件
  • 我为什么能知道这么多呢?因为我看了我洲更学长hoptop的课啊!
  • conda的cheatsheet。conda官方提供的小抄了解一下~ https://conda.io/docs/user-guide/cheatsheet.html

写在后面

conda本质上是自动化帮你查找各种软件的全部依赖,然后可以安装在不同环境就是不同文件夹,使用安装好的软件的时候只需要使用conda命令其实就是修改你的环境变量而已。

0 人点赞