慎用Anaconda进行软件管理

img_00827c27d76a8d0ff829d2263a52b797.png
装软件就跟插线一样

在Linux里面有一个巨大的梦魇就是软件包之间的依赖关系, 安装软件的时候各种依赖库找不到, 很让人抓狂.好消息是不同的Linux发行版提提供各自的依赖管理系统, apt/yum是目前比较常见的管理工具. 如果你有管理员权限, 你能够非常开心地使用他们降低你的压力,但是有些时候你使用的服务器集群不允许你直接使用apt/yum进行更新,或者说你干脆就没有管理员权限,你就要非常蛋疼的手动安装每个软件的前置依赖.

好消息是anaconda推出了conda, 这是一款非常强大的非管理员下的软件管理工具. conda有一个官方的channel, 还有许多的第三方channel增加了conda能够安装的软件.但是事情并没有那么美好,今天我偶然间看到一篇文章 Notes on Anaconda,里面就说到了conda的channel的顺序会造成许多软件出现动态依赖库找不到的噩梦. 因此作者说了下面这一句

I’ve learned more since writing these notes. Now, I cannot recommend scientists use conda, at least to manage Python, R, and R package installations.

并且举了一个例子,如果你有一个X包来自于conda-forge,一个Y包来自于biconda才能让Z包顺利工作.但是在YAML里面不知道X,Y那个包是来自于conda-forge,那个是来自于bioconda. 比如说conda-forge有一个bzip2-1.0.6,里面有对应的动态.so文件,而defaults也有bzip2-1.0.6,但是没有.so文件. 但是根据按照顺序,conda先从default里面找到了bzip2-1.0.6, 结果你就会在运行软件的时候找不到依赖文件.

对于以上这些问题,我的建议有以下几个

  • 在写YAML的时候主要把你的channel写上去, 并且一定要把default放到最后.
  • 对于Python和R开发的工具,请尽量创建的新的环境进行管理.

如下是原文地址: http://vincebuffalo.org/notes/2017/08/28/notes-on-anaconda.html

这是我的一个YAML文件,好久没有维护了

# version1.0
# email: xuzhougeng@163.com
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
- bioconda
- defaults
dependencies:
# Workflow
- luigi
# Fastq Download And Quality Control Methods
- sra-tools
- fastx_toolkit
- fastqc
- trimmomatic
- multiqc
# Short Reads Alignment Methods
- bwa
- bowtie
- bowtie2
- hisat2
- star
# short sequence Alignment Methods
- blast
# Long Sequence Alignment Methods
- mummer
- pymummer
- gmap
- blat
- lastz
# SAM/BAM/BED Processing tools
- samtools
- bedtools
# SNP Calling Methods
- bcftools
- freebayes
- gatk4
# VCF Processing Tools
- snpeff
# Alignment-Based Gene/Exon/Transcript Estimation Methods
- htseq
# Alignment-Free Transcript Estimation Methods
- salmon
- kallisto
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/650592

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。