一文掌握Conda软件安装:虚拟环境、软件通道、加速solving、跨服务器迁移

节选自 - 这个为生信学习打造的开源Bash教程真香!!!
2.4 Conda安装配置生物信息软件
2.4.1 Conda安装和配置
2.4.2 Conda基本使用
2.4.3 Conda的channel
2.4.4 创建不同的软件运行环境
2.4.5 移除某个conda环境
2.4.6 Conda配置R
2.4.7 Conda环境简化运行
2.4.8 Conda环境备份
2.4.9 Conda环境导出和导入
2.4.10 Conda软件安装 core dump error/Segment fault/段错误 怎么办
2.4.11 Conda为什么越来越慢?
2.4.12 Conda是如何工作的
2.4.13 Conda哪一步慢?
2.4.14 如何提速Conda solving environment
2.4.15 从了通道外还能怎么下载提速
2.4.16 使用conda-pack直接从已经安装好的地方拷贝一份 (同一操作系统)
Conda安装配置生物信息软件
Conda是一种通用包管理系统,旨在构建和管理任何语言的任何类型的软件。通常与Anaconda (集成了更多软件包,https://www.anaconda.com/products/individual)和Miniconda (只包含基本功能软件包, https://conda.io/miniconda.html)一起分发。
最初接触到Anaconda是用于Python包的安装。Anaconda囊括了100多个常用的Python包,一键式安装,解决Python包安装的痛苦。但后来发现,其还有更多的功能,尤其是其增加了 (https://bioconda.github.io/index.html)通道后,生物信息分析的7925多个软件都可以一键安装了 (具体列表在:https://anaconda.org/bioconda/repo),免去了编译时间浪费和解决库文件安装的问题。另外其最有吸引力的是它的概念,可以简单的配置不同Python版本的环境、不同Python包的环境、不同R环境和R包的环境,对于生物信息软件繁杂的应用和频繁的更新提供了很大的便利。
图片
Conda安装和配置
在链接https://www.anaconda.com/products/individual下载或对应版本的分发包之后,安装就是运行下面的命令,根据提示一步步操作,主要是修改安装路径 (如果是根用户,可以安装到下,其它任意目录都可以,但路径短还是有好处的;普通用户安装到自己有权限的目录下,如)。
安装完成之后,记得把安装路径下的文件夹加入到环境变量中 (上面命令中我们已经帮您加进去了)。
Conda基本使用
在Conda安装配置好之后,就可以使用了。
以搜索为例:
安装包
安装R
更新包
获取帮助信息
只是这些命令就可以省去不少安装的麻烦了,但是如果软件没搜索到呢?
Conda的channel
Conda默认的源访问速度有些慢,可以增加国内的源;另外还可以增加几个源,以便于安装更多的软件,尤其是安装生信类工具。通道是Conda社区维护的包含很多不在默认通道里面的通用型软件。通道是向后兼容性通道,尤其是使用版本时会用到,现在则不需要单独添加了。后加的通道优先级更高,因此一般用下面列出的顺序添加。清华镜像具体见https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ (有时清华镜像也不稳定,不稳定时直接用官方镜像,早上下载速度还是好的)。
注意通道的顺序是会影响和软件包下载的速度的。
conda通道的配置文件一般在里面,内容如下。全局控制conda的安装在,具体操作见https://conda.io/docs/user-guide/configuration/admin-multi-user-install.html。
创建不同的软件运行环境
这是最有特色的地方,可以通过创建不同的环境,同时运行不同软件的多个版本。
新创建的软件环境的目录为,具体见下面的3个例子。
创建一个环境安装常用转录组分析软件
不少软件不激活环境也可以使用全路径调用,比如就可以直接使用程序,这样我们就可以根据前面的介绍,把目录放入环境变量,就可以直接调用这个环境中的大部分程序了。
新版的默认会使用激活环境。
初次使用时会弹出一个提示,需要运行:
不过,个人更喜欢用激活环境,用起来更灵活一些。而且如果是根用户安装时,不建议把环境默认加到环境变量中,会引起不必要的系统冲突。可以给个用户自己使用是自己配置对应的环境变量。
激活环境后,会看到命令行提示前多了一个环境名字,比如下面激活环境后的展示。
在环境中安装
起因是使用官方的推荐命令安装时出了问题,py3.5的包装到了py2.7环境下。解决办法,新建一个的环境,然后安装。
创建R环境 Reference1
列出所有的环境
移除某个conda环境
如果环境不需要了,或出了错,则可以移除。比如需要移除环境,执行。
Conda配置R
在添加了不同的源之后,有些源更新快,有些更新慢,经常会碰到版本不一的问题。而且软件版本的优先级,低于源的优先级。保险期间,先做下搜索,获得合适的版本号,然后再选择安装。
从上面可以看到清华的源版本同步于, 都比较老,还是指定通道安装。
会安装于中,软链到位于环境变量的目录中即可正常使用。这就是环境变量的活学活用。
Conda环境简化运行
为了方便不同环境里面程序的运行,我写了一个shell脚本 (),具体运行如下:
内容如下
Conda环境备份
有的时候会出现装一个新包,装着装着就把当前环境搞装崩了的情况,所以备份一个环境还是必要的,,把备份为。
Conda环境导出和导入
做培训时需要给参加培训的老师提供配置环境的脚本,之前都是提供一个文件全部运行下来就可以完成整个环境的配置,更简单的方式是可以导出环境,自己配置时再导入就好了。
Conda软件安装 core dump error/Segment fault/段错误 怎么办
Conda为什么越来越慢?
Conda中包含的软件越来越多,而且软件的不同版本都保留了下来,软件的索引文件越来越大,安装一个新软件时搜索满足环境中所有软件依赖的软件的搜索空间也会越来越大,导致越来越慢。
Conda是如何工作的
从设定的通道 ()处下载通道中所有软件的索引信息 () (Collecting package metadata (repodata.json))
解析中的信息获取所有依赖的包的信息
采用算法决定需要下载包的哪个版本和它们的安装顺序
下载并安装包
Conda哪一步慢?
主要是第步,确定待安装包的依赖包之间的兼容和已安装软件之间的兼容,获得需要下载的包和对应版本。
如何提速Conda
采用最新版的 (Conda4.7相比Conda4.6提速3.5倍, Conda 4.8应该不会比4.7慢)
安装时指定版本减少搜索空间
安装R包时指定R的版本也会极大减小搜索空间 (R包因其数目众多,也是生物类软件依赖解析较慢的原因之一)
采用加速软件依赖解析 [mamba采用重写了部分解析过程,这个提速效果是很明显的] (安装好后就可以用替换进行安装了)
,默认conda解析软件依赖时优先考虑允许的最高版本,设置通道优先级权限高于软件版本新旧后,conda会能更快的解决依赖关系,避免和通道的奇怪组合导致软件依赖解析迟迟不能将结束的问题: (这个命令只需要运行一次)。
创建一个新环境 ()再安装软件,这样就不用考虑与已有的软件的兼容问题了,也可以大大降低搜索空间和提高解析软件依赖的速度。
如果安装的软件提供了那么用起来,文件中对应的软件版本都很明确,解析依赖关系时更快。也可以按前面提供的方式导出一个已经配置好的环境的文件,在其它电脑配置时直接读取。(具体导出方式见Bioconda软件安装神器:多版本并存、环境复制、环境导出
添加Bioconda通道时,注意顺序,给予最高优先级,其次是。如果之前已经添加好了通道,自己在中调整顺序。
综合以上组合,之前尝试多次都没安装好的工具,直接搞定。
下载提速
国内镜像,见软件安装不上,可能是网速慢!Conda/R/pip/brew等国内镜像大全拿走不谢~~
换个网或从朋友处拷贝已经下载好的压缩包一般在下,拷贝放在自己的下面,再次下载时系统会识别已经下载好的包而跳过 (并不总是有效)。
获取所有相关包的名字,从朋友处拷贝下载好的安装包。
如果拷贝过来未能自动识别,可手动安装 。
使用conda-pack直接从已经安装好的地方拷贝一份 (同一操作系统)
安装
打包已经安装好的环境
拷贝打包好的环境到目标机器,并解压到任何目录,一般推荐放到目录下 。(注意:anaconda_root改为自己的conda安装路径。)