什么是 conda shell 激活?

What is conda shell activation?

Anaconda Installing in silent mode

The installer will not prompt you for anything, including setup of your shell to activate conda. To add this activation in your current shell session:

eval "$(command conda 'shell.bash' 'hook' 2> /dev/null)"

这一行实际上做了什么以及哪些文件(例如更新 bashrc 或 bash_profile 等)受到影响?

完成此操作后,当我打开 bash shell 或开始新登录时会发生什么情况?

如果有详细的文档,请建议。

TLDR; Conda shell 激活是定义一些 shell 函数的过程,这些函数有助于激活和停用 Conda 环境,以及一些可选功能例如更新 PS1 以显示活动环境。


在 Conda v4.4 中,对 Conda 管理环境隔离的方式进行了重大改革。其中一部分是使用 shell 函数 conda() 来管理环境的激活,该函数采用 activateinstall 等参数,而不是让用户使用 activate 脚本以前必须 source activate.

OP 中的特定命令生成 bash 代码来定义 conda() 函数、它需要的一些辅助函数和环境变量,然后在您当前的 shell 中评估此代码.这不是固定脚本的原因是 Conda 在这里所做的是使用 conda 入口点(即 Python 代码)动态生成的,并考虑了在中找到的配置设置~/.condarc.

您可以完全检查此代码,而无需仅通过 运行

对其进行评估
conda shell.bash hook

这会将代码输出为字符串。每个人都会看到的常见元素是 conda() 函数及其辅助元素(例如,以 __conda_ 开头)。其他方面取决于配置。例如,如果 auto_activate_base 为真(默认值),那么最后将发出 conda activate base