mamba和conda的比较,以及在ubuntu24.04 LTS上安装mamba
听我说一句:这是我的学习笔记,仅供参考
最近由于装了新电脑,基础配置比较多,
目前在慢慢一点一点的配置环境,于是今天下午就在思考mamban和conda
把mamba装在2024最新版ubuntu 24.04 LTS 下
1 conda简介
1.1 给conda下各种定义
Conda是一个开源的软件包管理和环境管理系统,在生物信息学上,我们常用来进行软件管理安装等。
Conda是适用于任何语言的软件包、依赖项和环境管理系统–包括Python,R,Ruby,Lua,Scala,Java,JavaScript,C / C ++,FORTRAN等。
Conda是在Windows、macOS和Linux上运行的开源软件包管理系统和环境管理系统。
Conda可以快速安装、运行和更新软件包及其依赖项。
Conda可以轻松地在本地计算机上的环境中创建,保存,加载和切换。它是为Python程序创建的,但可以打包和分发适用于任何语言的软件。
Conda作为软件包管理器,可以帮助您查找和安装软件包。如果您需要一个能够使用不同版本Python的软件包,则无需切换到其他环境管理器,因为conda也是环境管理器。仅需几个命令,您就可以设置一个完全独立的环境来运行不同版本的Python,同时继续在正常环境中运行喜欢的Python版本。
总的来说,Conda是一个辅助进行包管理和环境管理的工具。
1.2 conda存在的问题
最早conda是Anaconda提供的包管理工具,用于管理python相关库,以及安装一些和Python相关的C/C++环境。
既然C/C++环境能够配置,那么Java, Fortran, JavaScript等编程语言应该也可以支持,于是conda能够管理的软件包变得越发的多。尤其是社区引导的开源项目conda-forge的出现,几乎市面上所有开源工具都可以通过conda进行管理。
但一个可怕的问题也随之而来,那就是原本的包管理工具conda执行速度实在是太慢了,无法处理那么庞大的依赖环境。尤其是当我想去安装一个生物信息学的分析流程时(conda create -c conda-forge -c bioconda -n EDTA EDTA
),conda的安装界面转了一个晚上都没能处理完。
为了处理慢的问题,大家用上了manba
2 manba
它始于2019年,由Wolf Vollprecht开发,拥有和conda完全一样的使用体验,你完全可以用 alias conda=mamba
让mamba作为conda的别名。虽然使用方法完全一样,但是在速度上,mamba则是远超自己的前辈,还是以之前的EDTA安装为例,mamba只需要不到1分钟就可以完成依赖环境的解析,同时它还支持异步下载安装,使得整体速度都有一个质的飞跃。
mamba是用于管理环境的 CLI 工具。相比于 conda,mamba 是用 c++重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使用 rpm 包管理工具中的 libsolv,可以更快的解决环境依赖问题。mamba 的使用也比较简单,首先使用 conda 安装 mamba,后面所有用到 conda 的地方,都可以使用 mamba 替换即可。
mamba之所以比较快,有以下几方面原因:
- 多线程进行下载;
- 使用libsolv更快的解决依赖问题
- 核心部分使用C++编写
3 Ubantu 24.04 LTS下安装mamba
mamba
依赖于 conda
,所以在安装 mamba
的时候,conda
会被默认一起安装。
命令行下载guihub上的安装包并安装(推荐)
可以在github下载地址查看已有安装包(https://github.com/mamba-org/mamba?tab=readme-ov-file)
使用命令行下载mamba安装包并安装
// 下载安装包,这个命令会自动下载最新对应版本的安装包,可以自行替换文件名
wget "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-$(uname)-$(uname -m).sh"
// 查看下载下来的文件名称
ls
// 安装,注意替换成下载的文件名
bash Mambaforge-$(uname)-$(uname -m).sh
3.1 bash Mambaforge- ( u n a m e ) − (uname)- (uname)−(uname -m).sh这一步安装
bash Mambaforge-$(uname)-$(uname -m).sh
在执行这个命令后,会有一个图片
步骤1:输入yes
步骤二:输入你要安装的路径,(是绝对路径)
注:运行安装包后,和安装anaconda一样,需要阅读用户协议,选择安装路径,是否替换conda,这里一路yes/enter就好
安装完毕后,可以输入命令查看mamba是否安装成功
mamba list
值得注意的是,直接输入命令可能会报错 ModuleNotFoundError: No module named ‘mamba’,只要关掉命令行重启一下就好。ps:我第一次遇到的时候还以为没装上,重装好几遍
3.2 配置channels
我在准备安装bedtools的时候,给我报错:
Could not solve for environment specs
The following package could not be installed
└─ bedtools does not exist (perhaps a typo or a missing channel).
看样子是没有配置channels
于是我自己手动配置
需要明白:mamba 是用 c++重写了 conda 的部分功能,所以mamba还是从conda中走出来的
配置channels也是用conda,依次输入这几行
#配置channels
conda config --add channels defaults
conda config --add channels r
conda config --add channels conda-forge
conda config --add channels bioconda
## 使用--remove可以移除bioconda
conda config --remove channels bioconda
这是根据我前年的笔记配置的这五行,
如果是自己写这五行,顺序不能错,空格不能多,空格不能少,一比一还原。(他们这么告诉我的,不知道为什么,或许在耍我)
#查看channels
conda config --show channels
#格式如下(这五行)
channels:
- bioconda
- conda-forge
- r
- defaults
3.3 安装软件——测试是否安装成功
我来安装busco看看能行吗
Benchmarking Universal Single-Copy Orthologs (BUSCO)是用于评估基因组组装和注释的完整性的工具。通过与已有单拷贝直系同源数据库的比较,得到有多少比例的数据库能够有比对,比例越高代表基因组完整度越好。基于进化信息的近乎全基因单拷贝直系同源基因内容预期,BUSCO指标是对像N50这样的技术指标的补充。
# 搜索busco的软件包
mamba repoquery search busco
#安装busco,这应该就能安装成功
mamba install busco
#但是我遇到的报错
An unexpected error has occurred. Conda has prepared the above report.
If you suspect this error is being caused by a malfunctioning plugin,
consider using the --no-plugins option to turn off plugins.
Example: conda --no-plugins install <package>
Alternatively, you can set the CONDA_NO_PLUGINS environment variable on
the command line to run the command without plugins enabled.
Example: CONDA_NO_PLUGINS=true conda install <package>
#解决
export CONDA_NO_PLUGINS=true
mamba install busco -c conda-forge -c bioconda
#仍未解决
这个问题不慌,是依赖的问题,放下,先去耍
#最后一步查看版本
busco --version
# 查看busco安装包所需依赖,没做
mamba repoquery depends busco
#mamba安装拓展,没做
mamba install bs4 lxml selenium pyppeteer
bs4
:beautifulsoup4
的别名,是一个用于解析HTML和XML文件的Python库。
lxml
:一个快速而灵活的库,用于处理XML和HTML。
selenium
:一个用于自动化Web浏览器的工具,常用于Web应用程序测试。
pyppeteer
:一个用于控制Headless Chrome或Chromium的Python库,提供高级浏览器自动化功能。
可以再次尝试安装bedtools
mamba install bedtools
mamba install vcftools
我是安装成功了