mamba和conda的比较,以及在ubuntu24.04 LTS上安装mamba

mamba和conda的比较,以及在ubuntu24.04 LTS上安装mamba

听我说一句:这是我的学习笔记,仅供参考

最近由于装了新电脑,基础配置比较多,

目前在慢慢一点一点的配置环境,于是今天下午就在思考mamban和conda

把mamba装在2024最新版ubuntu 24.04 LTS 下

1 conda简介

img

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

放弃conda拥抱mamba

它始于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

bs4beautifulsoup4 的别名,是一个用于解析HTML和XML文件的Python库。

lxml:一个快速而灵活的库,用于处理XML和HTML。

selenium:一个用于自动化Web浏览器的工具,常用于Web应用程序测试。

pyppeteer:一个用于控制Headless Chrome或Chromium的Python库,提供高级浏览器自动化功能。

可以再次尝试安装bedtools

mamba install bedtools
mamba install vcftools

我是安装成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值