有很多的生信软件都可以通过conda安装,省去了很多的安装、修bug的烦恼。经常是安装到崩溃的软件,conda一行命令就搞定了。前两天有个胖友问我gatk 3.8的版本在哪里下,下载好了之后怎么安装,我果断打开了https://anaconda.org/search ,告诉他安装conda吧,只要一行命令
conda install gatk
就行了。
然后他很可爱的问我conda怎么装。。果断就把这篇教程丢给他了. 写都写了, 那顺便就把教程发出来以飨读者。
conda简介
Conda 是一个几乎支持所有编程语言的开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。适用于 Linux,OS X 和Windows,
conda、miniconda和anaconda的关系
[图片上传失败...(image-ca1b3c-1660281353100)]
conda是内核主体, 在conda的基础上, miniconda还包含了python和一些基础模块。anaconda则是在miniconda的基础上又增加了150个模块和一个用户界面. 大家按需安装即可~ 如果是在linux的命令行里使用conda的话, 推荐使用miniconda。
下载网址
miniconda官网:https://conda.io/miniconda.html
conda清华镜像地址: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
conda北外镜像地址: https://mirrors4.bfsu.edu.cn/help/anaconda/
选择适合自己的版本,用wget命令下载。
wget -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
wget -c https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 这个版本是适合于linux的,要看清楚噢。第一个是清华镜像的下载地址, 第二个是北外的下载地址. 随便挑其中之一就好
# mac用户请用:
curl -O https://mirrors.bfsu.edu.cn/anaconda/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
mac用户选择带有图形化界面的anaconda版本也可。
传送门:https://www.anaconda.com/products/individual
往下翻,选择64-Bit Graphical Installer
这里选择的是latest-Linux
版本,所以下载的程序会随着python的版本更新而更新(现在下载的版本默认的python版本已经是3.9了)
安装七步走:
- 运行 bash Miniconda3-latest-Linux-x86_64.sh
- 查看软件license
- 同意license
- 选择安装位置
- 同意conda初始化
- 重新加载~/.bashrc文件或者重新开shell窗口
- 设置是否要默认启动base环境(可选)
1. 运行conda安装脚本
# 直接调用bash即可, 不需要对其进行修改权限等操作
bash Miniconda3-latest-Linux-x86_64.sh
此处直接回车即可.
2. 查看conda的license
在这一步里, conda会用more打开一个conda的license(服务条款), 这个相当于我们安装软件的时候需要勾选“同意服务协议和隐私政策”, 可以直接按q键
跳过或者用空格一页一页往下翻读.
3. 同意licnese
conda会问你是否接受这个服务条款. 跟很多的软件一样, 不同意就使用不了~所以输入yes就好. (此处我尝试过只输入y, 是会报错的. 所以就乖乖的输入yes吧~)
4.选择安装位置
在这一步里需要设置miniconda的安装位置.
特别是当你的服务器之前有安装过软件的话,conda会污染你原来的环境,把你原来设置好的东西进行更改。具体的惨痛教训请参见:
Anaconda is a snake.
只要养成好的使用习惯,灵活使用conda create 命令将不同的软件安装到自己单独的虚拟环境中就可以了。把conda这条蟒蛇关进一个一个的笼子里,才能更好的为我们的科研服务~
2020-06-14 update: 从下面不加入环境变量这一步开始,其实是非必须的(也就是正常的加入环境变量即可)。之前所谓的会污染环境等等问题可能都是将大量的软件直接安装在conda的base环境中引起的,
添加频道
这个道理跟家里的电视机是一样一样的,安装conda就相当于买了一台电视机,但是有电视了不意味着你就能看节目了,你要手动添加频道才能看你想看的电视节目。
添加频道的示例:
如果你的服务器在海外, 可以尝试添加官方频道:
注意: 此处仅为例子, 先不要急着添加这两个哦~, 建议添加下面的conda国内镜像地址:
conda config --add channels bioconda
conda config --add channels conda-forge
官方的话这两个channel应该就够了的。
2020-06-14 update:但是其实现在用国内的镜像比较多,官方的频道相较而言速度较慢。但也不是绝对的,有小伙伴跟我说他使用官方的频道也很流畅,所以见仁见智啦。另外,不建议加入大量的相同的频道,如添加了官方的bioconda之后又添加清华的bioconda镜像,没有必要,而且会拖慢速度。
顺便安利一个我hoptop学长的教程:如何搭建一个本地的conda镜像(包含bioconda)供各位爱折腾的高端玩家。
2019-06-17 update: 清华恢复了conda 的镜像了!详情请看下面:
Anaconda 镜像即将恢复
借花献佛给大家复习一遍如何添加清华的镜像channels: 来源 → 生信媛: 喜大普奔: Anaconda的清华镜像又可以用了
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/
2020-06-14 update: 为了分担清华源镜像的压力,最近北京外国语大学也开启了镜像站点,同样是由清华TUNA团队维护的,如果有小伙伴遇到清华源速度很慢的情况的话,可以考虑换成北外的镜像。
新闻传送门:https://mirrors.tuna.tsinghua.edu.cn/news/bfsu-mirror/
镜像传送门:https://mirrors.bfsu.edu.cn/help/anaconda/
2020-08-05 update: 为了方便大家(当然主要是自己偷懒用), 把北外的链接也给写出来, 这样就可以直接复制粘贴了~当然两者取其一就可以了, 不用重复添加.
另外, 我查看了中科大的镜像https://mirrors.ustc.edu.cn/anaconda, 点击这个地址会直接跳转到清华tuna的镜像站点. 所以目前看起来国内是只有清华和北外两个镜像站点可用了~如果有小伙伴知道还有别的镜像可以用的话欢迎在下面留言或者私信我鸭!
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/
下面这个我没用过, 但是看起来像是R的频道, 可以添加一下试试看.
conda config --add channels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/
如果你需要其他的更多的频道,请访问这个地址👉: https://mirrors.bfsu.edu.cn/help/anaconda/ 里面有详细的指导哒
2021-04-27 update: 更新了提供conda镜像的大学的列表
目前国内提供conda镜像的大学
清华大学: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
北京外国语大学: https://mirrors.bfsu.edu.cn/help/anaconda/
南京邮电大学: https://mirrors.njupt.edu.cn/
南京大学: http://mirrors.nju.edu.cn/
重庆邮电大学: http://mirror.cqupt.edu.cn/
上海交通大学: https://mirror.sjtu.edu.cn/
哈尔滨工业大学: http://mirrors.hit.edu.cn/#/home
如果清华的或者北外的
显示安装的频道
conda config --set show_channel_urls yes
查看已经添加的channels
conda config --get channels
已添加的channel在哪里查看
vim ~/.condarc
利用conda安装生物信息软件
安装命令:
conda install gatk
搜索需要的安装包:
提供一个网址,用于事先查找想安装的软件存不存在
conda available packages
2020-06-14 update: 链接已挂,请选择用下面的conda search命令或者开头提供的更新的网址
当然, 也可以用这个命令进行搜索(会稍微慢一点)
conda search gatk
安装完成后,可以用“which 软件名”来查看该软件安装的位置:
which gatk
如需要安装特定的版本:
conda install 软件名=版本号
conda install gatk=3.7
这时conda会先卸载已安装版本,然后重新安装指定版本。
查看已安装软件:
conda list
更新指定软件:
conda update gatk
卸载指定软件:
conda remove gatk
退出conda环境
退出也很简单,之前我们是. ./activate 或者 (. ~/miniconda3/bin/activate)
现在退出只要:
. ./deactivate
# 或者用
conda deactivate
就退出当前的环境了
创建软件的软链接(非必须步骤)
跟着命令一路敲到这里的小旁友们估计发现了,现在退出conda环境之后之前安装的软件全都GG了,敲命令没法执行了!
怎么办呢!其实只要把安装好的软件软连接到一个处在环境变量里的位置就可以使用了。三步走:
- 第一步,创建一个文件夹
我一般的习惯是在/home
目录下创建一个.soft
文件夹 - 第二步,将这个文件夹添加到环境变量中
export PATH="~/.soft:$PATH"
- 第三步,软链接
ln -s ~/miniconda3/bin/gatk ~/.soft
这样就可以运行啦~如果还是不行建议试试初始化一下bashrc:. ./bashrc
创建conda环境(常用步骤,强烈推荐)
之前创建的时候显示的是(base)这是conda的基本环境,有些软件依赖的是python2的版本,当你还是使用你的base的时候你的base里的python会被自动降级,有可能会引发别的软件的报错,所以,可以给一些特别的软件一些特别的关照,比如创建一个单独的环境。
在conda环境下,输入conda env list
(或者输入conda info --envs
也是一样滴)查看当前存在的环境:
conda env list
# 这是我相当常用的一条命令了,建议记一记
目前只有一个base
conda create -n python2 python=2
# -n: 设置新的环境的名字
# python=2 指定新环境的python的版本,非必须参数
# 这里也可以用一个-y参数,可以直接跳过安装的确认过程。
conda会创建一个新的python2的环境,并且会很温馨的提示你只要输入conda activate python2就可以启动这个环境了
退出环境
如上面的截图提到的,只要
conda deactivate
2019-6-28 update: 如何删除和重命名一个已存在的环境
删除环境
删除也很容易的
conda remove -n myenv --all
就可以退出当前环境。
掌握了创建和删除我们就可以实现重命名的操作了
重命名环境
实际上conda并没有提供这样的功能,但是可以曲线救国,原理是先克隆一个原来的环境,命名成想要的名字,再把原来的环境删掉即可
参考自:conda 创建/删除/重命名 环境
接下来演示把一个原来叫做py2的环境重新命名成python2:
conda create -n python2 --clone py2
conda remove -n py2 --all
骚操作:allias简化启动(非必须步骤)
linux提供了一个给大家偷懒的命令叫alias,只要在你的
.bashrc
里设置一下就好了,我添加了一条叫做condaup
的命令,这样就可以免去每次敲. ~/miniconda/bin/dactivate
的麻烦,一步搞定~技术宅改变世界!报错信息集锦
2020-08-06 update: 我最近用conda总是发生一些奇怪的问题, 所以想把报错的信息及解决方式给收集整理一下.
报错1: 网络错误
Collecting package metadata (current_repodata.json): failed
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/genomedk/linux-64/current_repodata.json>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
u'https://conda.anaconda.org/genomedk/linux-64'
一般这种问题就只要重新运行一下上一条命令就可以了. 有的时候网络不稳定而已.
报错2: 其他的错误等我找到解决方法再更新上来~
参考及感谢
-
感谢青山屋主在知乎的专栏文章~
我为什么能知道这么多呢?因为我看了我洲更学长hoptop的课啊!推荐给你们!
https://ke.qq.com/course/310838
2020-07-08 update: 洲更学长的课程免费在b站放送啦!~快来白嫖!~
https://www.bilibili.com/video/BV1JJ411p7fXconda的cheatsheet。conda官方提供的小抄了解一下~
https://conda.io/docs/user-guide/cheatsheet.html
ps:简书终于提供markdown编辑器的同步滚动了!开心!