让我看看谁还在用conda?

目录

  • 前言
  • 下载方式
  • 安装命令
  • 使用方式及小技巧
    • 一些常用的命令
    • 安装软件小技巧
    • 一些关于conda环境的建议
  • 最后

前言

相信大家在用conda的时候都遇到过各种各样的问题吧,比如创建环境非常缓慢、安装软件并解析依赖的速度非常感人等,有时候等待半小时甚至更久最后还不一定能安装成功。

除此之外,conda本身包含的软件比较多,文件数目和空间占用较大,即使是miniconda也存在同样的问题。

为了解决这些问题,Wolf Vollprecht开发了mamba(其推出mamba的blog:https://medium.com/@QuantStack/open-software-packaging-for-science-61cecee7fc23),并将其称为conda的”drop-in replacement”,浅浅翻译为即时替代产品或者普适性替代产品,总之就是用来替换conda的,各方面都比conda要好。

下载方式

安装mamba的方式见:https://mamba.readthedocs.io/en/latest/installation/mamba-installation.html

该教程推荐安装miniforge3,因为miniforge3包含了conda和mamba,并且使用conda-forge作为默认channel。

miniforge的官网:https://github.com/conda-forge/miniforge

点击该网站,往下滑找到Download,并选择适合自己操作系统的链接:
在这里插入图片描述

比如我的系统是x86,那么就下载x86对应的那个脚本,下载命令如下:

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh

注意:由于该软件是存放在github上的,可能需要使用魔法才可以下载。

下载完成以后就准备安装!

安装命令

安装命令很简单(和conda类似),直接通过bash运行刚刚下载的脚步即可:

bash Miniforge3-Linux-x86_64.sh

接下来会出现一些信息说明安装的步骤,通常来说只需要一直按回车即可,这样该软件就会安装到用户的主目录(home)下面。

下面是详细的安装记录:

  • 在这一步直接按回车

    在这里插入图片描述

  • 在这一步输入yes

    在这里插入图片描述

  • 这一步不需要修改,它会将miniforge安装到主目录下,如果想安装到别的目录,则需要输入目录全称

    在这里插入图片描述

  • 最后输入Yes来激活conda环境。

    在这里插入图片描述

使用方式及小技巧

安装完miniforge3退出当前shell,再打开一个新的shell(这一步的目的是激活miniforge3),然后输入conda或mamba,就会出现它们的帮助文档,如下:

$ conda
usage: conda [-h] [-v] [--no-plugins] [-V] COMMAND ...conda is a tool for managing and deploying applications, environments and packages.options:-h, --help          Show this help message and exit.-v, --verbose       Can be used multiple times. Once for detailed output, twice for INFO logging, thrice for DEBUG logging, four times for TRACE logging.--no-plugins        Disable all plugins that are not built into conda.-V, --version       Show the conda version number and exit.commands:The following built-in and plugins subcommands are available.COMMANDactivate          Activate a conda environment.clean             Remove unused packages and caches.compare           Compare packages between conda environments.config            Modify configuration values in .condarc.create            Create a new conda environment from a list of specified packages.deactivate        Deactivate the current active conda environment.doctor            Display a health report for your environment.export            Export a given environmentinfo              Display information about current conda install.init              Initialize conda for shell interaction.install           Install a list of packages into a specified conda environment.list              List installed packages in a conda environment.notices           Retrieve latest channel notifications.package           Create low-level conda packages. (EXPERIMENTAL)remove (uninstall)Remove a list of packages from a specified conda environment.rename            Rename an existing environment.repoquery         Advanced search for repodata.run               Run an executable in a conda environment.search            Search for packages and display associated information using the MatchSpec format.update (upgrade)  Update conda packages to the latest compatible version.$ mamba
usage: mamba [-h] [-v] [--no-plugins] [-V] COMMAND ...conda is a tool for managing and deploying applications, environments and packages.options:-h, --help          Show this help message and exit.-v, --verbose       Can be used multiple times. Once for detailed output, twice for INFO logging, thrice for DEBUG logging, four times for TRACE logging.--no-plugins        Disable all plugins that are not built into conda.-V, --version       Show the conda version number and exit.commands:The following built-in and plugins subcommands are available.COMMANDactivate          Activate a conda environment.clean             Remove unused packages and caches.compare           Compare packages between conda environments.config            Modify configuration values in .condarc.create            Create a new conda environment from a list of specified packages.deactivate        Deactivate the current active conda environment.doctor            Display a health report for your environment.export            Export a given environmentinfo              Display information about current conda install.init              Initialize conda for shell interaction.install           Install a list of packages into a specified conda environment.list              List installed packages in a conda environment.notices           Retrieve latest channel notifications.package           Create low-level conda packages. (EXPERIMENTAL)remove (uninstall)Remove a list of packages from a specified conda environment.rename            Rename an existing environment.repoquery         Advanced search for repodata.repoquery         Query repositories using mamba.run               Run an executable in a conda environment.search            Search for packages and display associated information using the MatchSpec format.update (upgrade)  Update conda packages to the latest compatible version.

一些常用的命令

  • 查看所有的环境:mamba info -e
  • 创建新环境:mamba create -n env-name ,其中env-name是新的环境名
  • 激活环境:mamba activate env-name ,其中env-name是新的环境名
  • 安装软件:这里以安装R为例,命令为:mamba install conda-forge::r-base ,即后面接对应的软件名即可

安装软件小技巧

想要知道某个软件是否可以用conda安装,可以在搜索引擎搜索”软件名 conda”,然后点击Anaconda.org网站的那个结果,进去以后就会显示安装该软件的命令。

比如我想安装R,那么去Bing搜索,结果如下:
在这里插入图片描述

通常来说第一个结果就是Anaconda的官网,点击进去以后可以发现安装命令有很多:
在这里插入图片描述

选择第一条即可,并将conda换成mamba。

如果搜索软件名+conda时搜不到Anaconda官网的结果,则说明Anaconda官网并未收录该软件,那么则无法通过conda或mamba安装。

一些关于conda环境的建议

生信分析通常需要用到很多软件,也会有很多流程,比如RNA-seq、ChIP-seq、GWAS、variant calling等流程,那么大部分情况下都需要建立多个conda环境,因为不同流程用到的软件可能并不兼容。

如果每个流程都建立一个单独的环境的话,就会面临一个问题,即不同的流程用到了相同的软件,这样许多流程中的软件就会存在冗余,而每个环境所占的空间以及文件数目会很多(文件数目在几万左右),从而导致性能下降或者服务器存储告急。

因为建议严格控制conda环境的数目,并且不要根据流程建立环境,而是根据软件名或编程语言名称来建立。

举例来说,生信分析大多数都需要用到R语言和python语言,那么就可以建立一个R环境,并加上版本号,例如r4.3,该环境仅安装r 4.3版本以及相应的R包;用到python包时可以建立一个py3.10环境,其中安装3.10版本的python;有些软件可能依赖python 2.7,那么可以建立一个py2.7环境。

这样做的好处是可以保证软件之间的独立性,并且会最大程度降低软件的冗余。

下面是我目前的环境:

$ mamba info -emamba version : 1.5.8
# conda environments:
#
base                     /public/home/fan_lab/wangjie/miniforge3
gcc                      /public/home/fan_lab/wangjie/miniforge3/envs/gcc
py2.7                    /public/home/fan_lab/wangjie/miniforge3/envs/py2.7
py3.10                   /public/home/fan_lab/wangjie/miniforge3/envs/py3.10
r4.3                     /public/home/fan_lab/wangjie/miniforge3/envs/r4.3

其中gcc环境是因为有些C++软件安装时需要高版本的gcc,而服务器自带的gcc版本较低,便单独建立了gcc环境。

有的流程可能既需要用python又需要用R,那么可以在不同的环境之间切换,只需要将该环境的bin路径加入到环境变量PATH中即可。

当我需要使用py3.10环境中的软件时,便可以运行下面命令:

export PATH=/public/home/fan_lab/wangjie/miniforge3/envs/py3.10/bin/:$PATH

最后

本文同步发表于微信公众号:水木的生信与编程世界,如果觉得本文对您有帮助欢迎关注公众号,我会持续分享更多关于生信的分析经验和实用技巧。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/807011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql查询某条记录所在的行号

有时候我们想知道某条记录在表中的多少行,这样我们就可以开始继续上一次的任务了。 下面是SQL,可以直接执行,把表名改成自己真实的表名就好了,还得注意下子查询的排序,也得按自己真实需求来即可: SET row…

Mongodb入门--头歌实验MongoDB数据库安全

MongoDB 默认的启动是不验证用户名和密码的,启动 MongoDB 服务后,可以直接用命令 mongo 连接上来,对所有的库具有 root 权限。 这种情况下数据就像在“裸奔”一样,任何人都能修改我们的数据,所以我们要添加一些限制&a…

小样本计数网络FamNet(Learning To Count Everything)

小样本计数网络FamNet(Learning To Count Everything) 大多数计数方法都仅仅针对一类特定的物体,如人群计数、汽车计数、动物计数等。一些方法可以进行多类物体的计数,但是training set中的类别和test set中的类别必须是相同的。 为了增加计数方法的可拓…

构建你的第一个知识图谱项目:从零开始

构建你的第一个知识图谱项目:从零开始 引言 在数据驱动的世界中,知识图谱不仅仅是一个概念上的创新,它已经成为了连接复杂信息、提供深入见解的强大工具。无论您是数据科学家、软件开发人员还是业务分析师,构建知识图谱可以帮助您…

二百三十、MySQL——MySQL表的索引

1 目的 梳理一下目前MySQL维度表的索引情况,当然网上也有其他博客专门讲MySQL索引的,我这边只是梳理一下目前的索引状况而已 2单列索引 2.1 索引截图 2.2 建表语句 3 联合索引 3.1 索引截图 3.2 建表语句 4 参考的优秀博客 http://t.csdnimg.cn/ZF7…

Ubuntu Desktop:创建桌面启动图标

Ubuntu Desktop:创建桌面启动图标 在Ubuntu Desktop上创建桌面启动图标是一个相对简单的过程,可以帮助用户快速访问他们最常用的应用程序。本文旨在指导你完成创建一个桌面启动图标的步骤,从而使你能够轻松启动你的应用程序。 为什么创建桌…

网络IO模型以及实际应用

网络IO模型 本文主要介绍了几种不同的网络IO模型,以及实际应用中使用到的Reactor模型等。 我们常说的网络IO模型,主要包含阻塞IO、非阻塞IO、多路复用IO、信号驱动IO、异步IO。 根据第一个阶段:是否需要阻塞,分为阻塞和非阻塞IO。…

Linux双网卡默认路由优先级设置不正确,导致网络不通问题定位

问题描述 RHEL9 双网卡环境,两个网卡配置如下:(eth0 走内网,eth1 走外网) eth0 192.168.10.20/24 网关: 192.168.10.254 eth1 10.206.216.92/24 网关: 10.206.216.254配置完成后,curl https://www.baidu.com访问百度失…

国税发票查验接口、电子增值税发票查验接口、数电票查验接口

翔云发票查验接口支持增值税发票管理系统开具发票的真伪,通过发票代码、号码、日期、金额、校验码四要素信息进行真伪的查验,支持返回全票面信息,API接口便于集成,可适用于多种应用场景。 发票查验接口python调用示例:…

外包干了17天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…

web自动化测试系列-selenium xpath定位方法详解(六)

1.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。而html中也应用了这种语言 ,所以 ,我们定位html页面元素时也会用到xpath这种方法 。 2.xpath定位方式 xpath主要通过以下四种方法定位 &#…

白帽工具箱:Metasploit框架中的db_nmap扫描艺术

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…

有趣的css - 太极八卦图

大家好,我是 Just,这里是「设计师工作日常」,今天分享的是用css 实现一个动态的太极八卦图。 《有趣的css》系列最新实例通过公众号「设计师工作日常」发布。 目录 整体效果核心代码html 代码css 部分代码 完整代码如下html 页面css 样式页面…

Netty出坑记

NIO: 一个线程处理多个请求 BIO: 阻塞 netty 编码解码 TFO: 校验cookie合法性,不合法 TCP流程 设计QQ: 登录过程,client TCP协议向server发送信息,HTTP协议下载信息 发消息:clie…

云服务器上Docker启动的MySQL会自动删除数据库的问题

一、问题说明 除了常见的情况,例如没有实现数据挂载,导致数据丢失外,还需要考虑数据库是否被攻击,下图 REVOVER_YOUR_DATA 就代表被勒索了,这种情况通常是数据库端口使用了默认端口(3306)且密码…

Harmony鸿蒙南向驱动开发-SDIO

SDIO(Secure Digital Input and Output)由SD卡发展而来,与SD卡统称为MMC(MultiMediaCard),二者使用相同的通信协议。SDIO接口兼容以前的SD卡,并且可以连接支持SDIO接口的其他设备。 运作机制 …

力扣HOT100 - 54. 螺旋矩阵

解题思路&#xff1a; 设置四个边界 class Solution {public List<Integer> spiralOrder(int[][] matrix) {if (matrix.length 0) return new ArrayList<Integer>();int l 0;int r matrix[0].length - 1;int t 0;int b matrix.length - 1;List<Integer>…

PyCharm如何调出Run窗口的搜索功能

搜索快捷键 搜索&#xff08;查找&#xff09;的快捷键默认有两个 Ctrl F Alt F3 只需要点击运行窗口的区域&#xff0c;再使用上面的快捷键就好了。 也可以在代码中查找&#xff0c;也是上述操作。 如果按了没反应怎么办&#xff1f; 1、可能是有些软件的某些功能的快捷…

使用Pandas解决问题:对比两列数据取最大值的五种方法

目录 一、使用max方法 二、使用apply方法结合lambda函数 三、使用np.maximum函数 四、使用clip方法 五、使用where方法结合条件赋值 总结&#xff1a; 在数据处理和分析中&#xff0c;经常需要比较两个或多个列的值&#xff0c;并取其中的最大值。Pandas库作为Python…

Linux(CentOS7)安装 Docker 以及 Docker 基本使用教程

目录 安装 基础依赖 安装 docker 开机自启 启动 docker 配置国内镜像源 使用教程 帮助命令 镜像命令 容器命令 容器终端 构建镜像 安装 基础依赖 如果直接安装 docker 时报错&#xff0c;提示缺少依赖&#xff0c;则根据提示将前置依赖安装即可&#xff0c;这里直…