使用 Mamba 而不是 Conda 作为 Anaconda 的包管理器怎么会有问题?

How could using Mamba instead of Conda as package manager for Anaconda be problematic?

Mamba 将自己定位为 Conda 的更快直接替代品。使用 Mamba 而不是 Conda 作为 Anaconda 的包管理器怎么会有问题?

我很高兴地通知您,使用 Mamba 基本上没有严格的缺点!它始于 2019 年 3 月,作为 Conda 的精简包装器,并通过使用等效的新高效 C++ 代码逐步重写 Conda 实现了显着增长。他们添加了 Mamba 独有的功能,例如 mamba repoquery。 Conda 和 Mamba 都使用 BSD 3-Clause 许可证,所以没有区别。像 Conda,Mambda has good cross-platform support。综上所述,有几点需要注意:

  • 与 Conda 相比,Mamba 相对较新且不受欢迎。这意味着可能有更多未发现的错误,并且新的错误可能需要更长的时间才能被发现。也就是说,Mamba 开发人员表现出的敏捷性让我认为他们可能会更快地修复新发现的错误。
  • There are a considerable number of known bugs, although that's also true of Conda.
  • 前面提到的一些错误是 Mambda 和 Conda 之间的不一致。由于 Mamba 是对 Conda 的重写,因此您无法确定您会从中获得与从 Conda 中获得的行为完全相同的行为。您可以判断这对您有多重要。大多数 Mamba 用户永远不会 运行 陷入这些矛盾之一。
  • 如果您使用 Mamba,运行 遇到错误并报告它,那么处理您的错误报告的人可能不会欣赏您使用他们未正式支持的程序包管理器。随着时间的推移,这可能会变得不那么重要。
  • 如果您在脚本(例如 shell 脚本、makefile 等)中使用 Mamba,那么如果这些脚本的用户有 Conda 但没有 Mamba,他们可能 运行 会遇到问题。在大多数情况下,他们可以简单地将命令 conda 替换为 mamba,但如果您使用独有的 Mamba 功能,他们将必须安装 mamba.
  • 一些组织已批准使用 Conda,但未批准使用 Mamba。在上述情况下,这意味着来自这些组织的用户将不得不用 conda 重写所有 mamba 命令(即安装 Mamba 不是这些用户的选择,除非他们想等待他们的法律团队等批准使用 Mamba),如果您使用独有的 Mamba 功能,那么他们就不走运了,将无法 运行 这些命令。
  • Mamba 的机构支持(目前只有彭博在撰写本文时资助的 QuantStack)不如 institutional backing that Conda has, though they do seem to be quite lively 强大,所以我暂时不担心。最坏的情况:项目被放弃,没有人分叉它,它变得陈旧。你和所有其他使用它的人必须回到 Conda(或一些新的替代品),并相应地更新你的 mamba 命令。所有使用 Mamaba 独有功能的命令都必须删除或替换为更精细的命令。但这是最坏的情况,似乎不太可能。

总而言之,这些都是相当小的问题。我预计随着时间的推移 Mamba 将继续流行,甚至可能在未来将其代码集成到 Conda 中。