conda、miniconda、anaconda、仓库的详解

工具

conda是 由Anaconda®公司用python语言开发维护的一个支持安装并管理python多版本、包管理、包依赖管理、虚拟环境管理四大功能于一身的开源免费工具,支持任何编程语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN等。

miniconda 是 由Anaconda®公司开发维护的conda的免费最小安装程序。它是 Anaconda 的轻量级替代,仅包含 conda、python、它们所依赖的包以及少量其它有用的包,包括 pip、zlib 和其它一些包。

Anaconda 是 由Anaconda®公司开发维护的conda的安装程序,分为个人版、商业版、团队版、企业版,除了提供miniconda内容以外,各大版本还包含大量科学计算方面的包以及其他服务。个人版免费,商业版、团队版、企业版均为付费产品。

官方包仓库

repo.anaconda.com/pkgs/是 由Anaconda®公司自己构建的包的公开仓库,您仅仅具有包的使用权。此仓库仅可用于个人、教育机构学习用,如果用于商用需付费购买商业产品。

main channel

大多数由 Anaconda, Inc. 使用新编译器堆栈构建的包都托管在这里。此频道作为最高优先级别频道已包含在 conda 的默认频道中。

free channel

在没有新编译器堆栈的情况下构建的包。这些软件包中的大多数与 pkgs/main 中的软件包兼容。已包含在 conda 的默认频道中。

r channel

Microsoft R Open conda 包和 Anaconda, Inc. 的 R conda 包。已包含在 conda 的默认频道中。

mro channel

这是一个空频道。此频道中的软件包已移至 pkgs/mro-archive。新的 MRO 软件包位于 pkgs/r 频道中。

pro channel

现在已弃用——尽管仍包含在 conda 的默认频道中。最后一个软件包于 2017 年 2 月更新。包括 Anaconda, Inc. 的各个商业软件包,所有这些现在都是开源的。(MKL 优化、IOPro、加速)

archive channel

有时,发布到其他频道之一的软件包会出现问题,迫使 Anaconda, Inc. 将其从频道中删除。在这些情况下,程序包会存档到此频道,供任何仍然需要它的人使用。

mro-archive channel

pkgs/mro 频道的全部内容存档,Microsoft 的 MRO 和 MRAN 的过时版本。

msys2 channel

仅限 Windows。已包含在 conda 的默认频道中。Anaconda, Inc. 的 R conda 软件包以及 pkgs/main 和 pkgs/free 中的其他一些软件包是必需的。它提供了 bash shell、Autotools、修订控制系统等,用于使用 MinGW-w64 工具链构建原生 Windows 应用程序。

官方包服务

anaconda.org 又名 Anaconda Cloud,是由Anaconda®公司为个人或企业提供的包服务,您可以在anaconda.org搜索、下载和安装、构建分享公共软件包,也可以上传您自己创建的私人软件包。仅提供3GB免费空间,超过限额需付费。

https://anaconda.org/anaconda上的“anaconda”频道包含哪些内容?

anaconda.org 上的 “anaconda” 频道是 仅仅包含pkgs/main 中软件包的镜像。如果您使用的是 conda 的“默认”频道,则不需要anaconda.org 上的 “anaconda”频道。

conda-forge

conda-forge是一个 GitHub 组织,包含 conda 包的存储库。构建的发行版上传到anaconda.org/conda-forge 并且可以使用 conda 安装。conda-forge、miniforge由社区驱动,开源免费。

miniforge致力于提供除了类似 miniconda 的安装程序,并配置了 conda-forge 是默认(且唯一)频道。

miniforge与miniconda的区别:

  • miniforge是开源社区驱动,以防miniconda的开发者Anaconda®公司可能未来存在的法律风险。
  • miniforge默认(且唯一)conda-forge仓库,miniconda除了提供不可商用的官方仓库外,也可以添加conda-forge仓库。
  • miniforge支持Mamba(conda的C++实现版本)。
  • miniforge支持各种 CPU 架构(x86_64、ppc64le 和 aarch64,包括 Apple M1)。

为什么要使用conda-forge?

来自Anaconda, Inc.的 conda 团队打包了大量软件包,并在其default频道中免费提供给所有用户。

但是如果您要查找的包不在默认频道中怎么办?过去,用户只能选择创建Anaconda Cloud帐户并创建自己的频道。

这带来了一系列缺点:

  • 由于包裹分散在许多频道中,因此很难定位包。
  • 由于二进制不兼容,跨频道组合包并不总是可行的。
  • 包仅适用于开发人员感兴趣或可以访问的架构。
  • 频道经常被放弃,更新需要定位新频道。

conda-forge 是解决这些问题的社区努力:

  • 所有包都在名为 conda-forge 的单个频道中共享。
  • 注意所有软件包都是最新的。
  • 通用标准确保所有包都有兼容的版本。
  • 默认情况下,我们为 macOS、Linux AMD64 和 Windows AMD64 构建包。
  • 许多软件包由多个维护者更新,您可以轻松选择成为维护者。
  • 一个活跃的核心开发团队也在努力维护废弃的包。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/pythonops/6033.html

发表评论

登录后才能评论