Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >conda是旧爱,mamba为新欢

conda是旧爱,mamba为新欢

作者头像
生信技能树
发布于 2023-02-27 13:40:50
发布于 2023-02-27 13:40:50
4.8K01
代码可运行
举报
文章被收录于专栏:生信技能树生信技能树
运行总次数:1
代码可运行
前言

之前,习惯性用conda来管理环境,安装软件。大多时候都还不错,但是就是喜欢转圈圈,下载不动,最后给出些不清晰的信息~

最近服务器出问题,重新配置了一遍工作环境,换用mamba试试~

mamba

mamba 是使用C++ 对conda包管理器的重实现。

  • 使用多线程来并行下载仓库数据和包文件
  • 采用libsolv来更快的解决包依赖关联,这是Red Hat,Fedora和OpenSuse的RPM 包管理器中使用的先进的库
  • mamba核心部分使用C++来获取最大效率

最重要的是mamba有着和conda一样的命令, 没啥学习成本就可以迁移到mamba

The mamba-org 组织有多个Mamba 支持:

  • mamba 基于Pyhton命令行实现,替换conda, 提供高速,更可靠的环境管理
  • micromamba 纯C++实现,单个可执行文件
  • libmamba 一个C++库,为mambamicromamba提供低层级和高层级的API接口。

下载安装

这里我们下载安装micromamba。可以使用以下命令进行自动安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
## Linux 默认shell 使用bash
curl micro.mamba.pm/install.sh | bash

## Linux 默认shell 使用zsh
curl micro.mamba.pm/install.sh | zsh

这里我根据我个人环境,进行手动安装演示

下载micromamba

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ curl -Ls https://micro.mamba.pm/api/micromamba/linux-64/latest | tar -xvj bin/micromamba
$ ls bin/micromamba
bin/micromamba

配置shell环境变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./bin/micromamba shell init -s bash -p ~/micromamba

-p 可以设置自己想要的路径,创建的环境,配置文件等都在这个目录下。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ micromamba

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

Version: 1.0.0

这个标志和mamba不一样,不过没关系,命令功能都一样。当前调用是通过命令micromamba, 名字稍长,我们可以在~/.bashrc里加上这句来通过mamba调用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
alias mamba=micromamba

配置

rc 文件表示run commands或者runtime configuration, 命令运行时的一些配置文件或命令。我们最常见就是.bashrc文件。

mamba可以读取.condarc文件和.mambarc文件配置。mamba可以读取多个rc文件,然后合并它们的内容,不过我们也不需要配置多个,配置一个就行。mamba读取rc文件有一个优先级:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// on_unix
{
"/etc/conda/.condarc",
"/etc/conda/condarc",
"/etc/conda/condarc.d/",
"/etc/conda/.mambarc",
"/var/lib/conda/.condarc",
"/var/lib/conda/condarc",
"/var/lib/conda/condarc.d/",
"/var/lib/conda/.mambarc"
}
{ root_prefix }/.condarc
{ root_prefix }/condarc
{ root_prefix }/condarc.d
{ root_prefix }/.mambarc
~/.conda/.condarc
~/.conda/condarc
~/.conda/condarc.d
~/.condarc
~/.mambarc
{ target_prefix }/.condarc
{ target_prefix }/condarc
{ target_prefix }/condarc.d
{ target_prefix }/.mambarc
$CONDARC,
$MAMBARC;

root_prefix 为之前设置的-p 参数值, 我们就在root_prefix 添加一个.mambarc文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ vim ~/micromamba/.mambarc
## 添加以下内容,并保存
channels:
  - defaults
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
custom_channels:
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
always_yes: true
auto_activate_base: false

上述配置中,将 conda-forge, bioconda, r这三个设为了默认channel, 所以以后安装这3个channel时,不用在命令行通过-c CHANNEL 来指定这三个channel了。同时always_yes设为true, 也不用每次加-y参数或者每次手动输入y确认安装包了。

新体验

mamba/micromamba使用和conda用法一样,不多介绍了。除了速度更快些,貌似软件兼容性也解决的更好。

安装包,某个依赖不存在时、而且不能自动安装时,最后会明确指出某个包没有,这样,我们就把那个依赖包安装了,再重新安装就好了~

安装时,进度条更加动感,能感觉它是在下载东西,而不像conda那再那一直转啊转。

还有,查看按照包时,它会将你的手动安装的包,用颜色字体来展示,这个小细节做得不错~

此外,mamba还有个新功能,用于查询软件依赖。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ mamba repoquery depends -t salmon

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

Loaded current active prefix: "/home/huangsh/software/micromamba/envs/rna"

salmon[1.9.0]
  ├─ boost-cpp[1.74.0]
  │  ├─ bzip2[1.0.8]
  │  │  └─ libgcc-ng[12.2.0]
  │  │     ├─ _libgcc_mutex[0.1]
  │  │     └─ _openmp_mutex[4.5]
  │  │        ├─ _libgcc_mutex already visited
  │  │        └─ libgomp[12.2.0]
  │  │           └─ _libgcc_mutex already visited
  │  ├─ libgcc-ng already visited
  │  ├─ icu[69.1]
  │  │  ├─ libgcc-ng already visited
  │  │  └─ libstdcxx-ng[12.2.0]
  │  ├─ libstdcxx-ng already visited
  │  ├─ libzlib[1.2.13]
  │  │  └─ libgcc-ng already visited
  │  ├─ xz[5.2.6]
  │  │  └─ libgcc-ng already visited
  │  └─ zstd[1.5.2]
  │     ├─ libgcc-ng already visited
  │     ├─ libstdcxx-ng already visited
  │     └─ libzlib already visited
  ├─ bzip2 already visited
  ├─ libgcc-ng already visited
  ├─ icu already visited
  ├─ libstdcxx-ng already visited
  ├─ libzlib already visited
  ├─ libjemalloc[5.2.1]
  │  ├─ libgcc-ng already visited
  │  └─ libstdcxx-ng already visited
  └─ tbb[2021.6.0]
     ├─ libgcc-ng already visited
     └─ libstdcxx-ng already visited

更可以查询有哪些包依赖于这个包!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ mamba repoquery whoneeds libgcc-ng

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

Loaded current active prefix: "/home/huangsh/software/micromamba/envs/rna"

 Name        Version  Build      Depends           Channel
──────────────────────────────────────────────────────────────────────────────
 boost-cpp   1.74.0   h6cacc03_7 libgcc-ng >=9.4.0 anaconda/cloud/conda-forge
 bzip2       1.0.8    h7f98852_4 libgcc-ng >=9.3.0 anaconda/cloud/conda-forge
 icu         69.1     h9c3ff4c_0 libgcc-ng >=9.4.0 anaconda/cloud/conda-forge
 libjemalloc 5.2.1    h9c3ff4c_6 libgcc-ng >=9.4.0 anaconda/cloud/conda-forge
 libzlib     1.2.13   h166bdaf_4 libgcc-ng >=12    anaconda/cloud/conda-forge
 salmon      1.9.0    h7e5ed60_1 libgcc-ng >=12    anaconda/cloud/bioconda
 tbb         2021.6.0 h924138e_1 libgcc-ng >=12    anaconda/cloud/conda-forge
 xz          5.2.6    h166bdaf_0 libgcc-ng >=12    anaconda/cloud/conda-forge
 zstd        1.5.2    h6239696_4 libgcc-ng >=12    anaconda/cloud/conda-forge

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解决CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaconda***
今天做项目的时候,Python导入一个包一直有各类问题,而后最终锁定问题是CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaconda*** 这就是清华的源出问题了,配置没配对。
程序员洲洲
2024/06/07
2.6K0
解决CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaconda***
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda
大家是否有这样的经历,使用conda/anaconda进行环境配置的是否速度非常慢,进度经常卡在“Collecting package metadata”上。甚至有时候需要安装的软件比较多,或者需要用到conda-forge这个最大的channel,conda能一直卡在collecting步骤上直到http连接超时也没能处理完毕。直到有天小编发现了mamba这个工具,进而发现了micromamba(micromamba是mamba包管理器的小型版本,采用C++实现,具有mamba的核心功能,且体积更小,可以脱离conda独立运行,更易于部署),从此再也没有因为生信软件的安装配置而烦恼抓狂过。闲话少说,开始我们的教程。
INSVAST
2024/10/21
3740
「毅硕|生信教程」 micromamba:mamba的C++实现,超越conda
conda安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5
参考: paddle安装指导 torch安装指导 TensorFlow 2.x GPU版在conda虚拟环境下安装步骤 pip/conda导出 requirements.txt 注意事项 pip安装pytorch1.10.1+paddlepaddle-gpu2.2.1+cuda10.2+cudnn7.6.5
Michael阿明
2022/03/10
1.4K0
Nature Method:Bioconda解决生物软件安装的烦恼
其它之前很多人都用过Conda,特别是生信科学家近两年都在用Bioconda,那叫一个妙不可言、根本停不下来。这里我郑重通知大家,Bioconda于今年6月2号正式发表于Nature Methods(IF=26.9)。吃水不忘挖井人,用过的写文章记得引用它。
生信宝典
2019/10/14
1.7K0
Nature Method:Bioconda解决生物软件安装的烦恼
anaconda conda 切换为国内源 、windows 和 Linux配置方法、 添加清华源——【一文读懂】
会在当前用户目录下创建 .condarc 文件,可以查看更换源前后该文件内容的变化
全栈程序员站长
2022/09/01
19.1K0
anaconda conda 切换为国内源 、windows 和 Linux配置方法、 添加清华源——【一文读懂】
CondaHTTPError: HTTP 000 CONNECTION FAILED for url
问题:conda无法安装更新,报错内容如下: 参考链接:conda httperror http none none for url none Anaconda更新失败
2019/01/08
16.3K0
Conda | 轻松安装生信工具
最近有很多朋友问我生信工具安装的问题,对于初学者来说,工具安装是一个非常头疼的问题。不同的工具用不同的语言编写,有的解压后直接就可以用,有的还要编译,涉及到各种依赖关系。今天小编教大家如何使用conda安装生信工具。
生信小王子
2020/08/10
1.9K0
生信分析之conda安装
当我们使用服务器分析数据,我们使用miniconda,如果在自己的电脑上使用anaconda。Anaconda安装网上有很多教程,也可以在淘宝上买个安装服务(至少节省一上午时间)。
生信菜鸟团
2024/07/10
4540
生信分析之conda安装
使用conda安装复杂软件不妨给它独立的环境(以rmats为例)
我们已经多次强调了,之前推荐的清华大学镜像可能是人满为患,大家需要自己机智一点哦。
生信技能树
2022/03/03
4.6K0
python的环境,你再也不用愁
conda是一个包,依赖和环境管理工具,适用于多种语言,如: Python, R, Scala, Java, Javascript, C/ C++, FORTRAN。
用户10002156
2022/12/21
6460
conda安装Pytorch下载过慢解决办法(11月26日更新ubuntu下pytorch1.3安装方法)
3月5日更新ubuntu下pytorch1.0.1安装方法(Ubuntu16.04+CUDA9.0+PyTorch1.0.1)
全栈程序员站长
2022/09/12
7.1K0
conda安装Pytorch下载过慢解决办法(11月26日更新ubuntu下pytorch1.3安装方法)
PyTorch的安装与使用
PyTorch是一个非常常用的AI框架,主要归功于其简单易用的特点,深受广大科研人员的喜爱。在前面的一篇文章中我们介绍过制作PyTorch的Singularity镜像的方法,这里我们单独抽出PyTorch的安装和使用,再简单的聊一聊。
DechinPhy
2024/05/09
4600
PyTorch的安装与使用
pip/conda导出 requirements.txt 注意事项
使用 pip freeze > ./requirements.txt 导出 requirements.txt 发现很多包没有版本号,而是 @ file:///
Michael阿明
2022/03/10
7.5K0
pip/conda导出 requirements.txt 注意事项
宏宏的学习笔记Day3 Linux环境下的软件安装
conda create -n rna-seq python=3 fastqc trimmomatic -y
咕咚咕叽
2024/04/15
4680
『技术随手学』解决windows与ubuntu平台 CondaHTTPError: HTTP 000 CONNECTION FAILED 问题
最近使用conda时遇到一个问题:CondaHTTPError: HTTP 000 CONNECTION FAILED
小宋是呢
2020/10/10
4.6K0
『技术随手学』解决windows与ubuntu平台 CondaHTTPError: HTTP 000 CONNECTION FAILED 问题
欢欣雀跃还是欢呼雀跃_极空间 docker
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
3930
欢欣雀跃还是欢呼雀跃_极空间 docker
OpenFold2.0 基于NPU的推理适配与测试
1、报错 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/openfold/anaconda3/envs/openfold_env/lib/python3.9/site- packages/numpy/fft/_pocketfft_umath.cpython-39-aarch64-linux-gnu.so)
Splendid
2025/06/11
970
解密conda channels
channels是conda下载包的镜像网站,通过如下命令可以查看已有的channels
生信修炼手册
2020/12/11
1.7K0
解密conda channels
服务器被关机,不妨试试看用你的Mac电脑跑NGS流程
现在我就分享一下我自己mac电脑的conda等生物信息学环境配置,提高大家的生产力!
生信技能树
2020/04/14
1.7K0
Linux:conda 的安装和使用
下载安装包 -- bash 安装 -- 接受协议 -- 选择默认安装路径(回车) -- 重新激活环境 -- 调用帮助文档
不会写代码的医学生
2024/03/24
5720
推荐阅读
相关推荐
解决CondaHTTPError:HTTP 000 CONNECTION FAILED for url<https://mirrors.tuna.tsinghua.edu.cn/anaconda***
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验