micromamba 如何发挥作用以及什么是“condabin”?

aba*_*ter 1 anaconda conda mamba

安装 micromamba 后(与 conda 的任何风格相同),当我的 .bashrc 加载时,我的路径中有一个条目,如下所示:

/home/users/balter/micromamba/condabin

人们很自然地认为这是可以找到 conda 可执行文件的目录,但事实并非如此:

balter@exahead1:~$ which micromamba
/usr/bin/which: no micromamba in (/home/groups/chse/Code/quality_measures:/home/groups/chse/Code/exacloud_utilities:/home/users/balter/micromamba/condabin:/home/users/balter/perl5/bin:/home/exacloud/software/spack/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/ibutils/bin:/opt/puppetlabs/bin:/opt/dell/srvadmin/bin:/home/users/balter/usr/bin:/home/users/balter/bin)
balter@exahead1:~$ ls micromamba/
bin    compiler_compat  COPYING  envs  fonts    lib      man   pyodbc.pyi  sbin   ssl  x86_64-conda_cos6-linux-gnu
cmake  conda-meta       docs     etc   include  libexec  pkgs  README      share  var  x86_64-conda-linux-gnu
balter@exahead1:~$ find . -type d -name "condabin"
balter@exahead1:~$ conda activate
(base) balter@exahead1:~$
Run Code Online (Sandbox Code Playgroud)

所以,

  1. 我的路径包含一个不存在的目录。
  2. 我可以运行一个命令,例如micromambawhich不知道的位置。

这是如何运作的,其目的是什么~/micromamba/condabin

pav*_*lzw 5

我可以运行一个命令,例如micromambawhich不知道的位置。

~/.bashrc这是因为你可能在你的某个地方(或者如果在 Windows 或 macOS 上)有曼巴初始化块~/.bash_profile,它看起来像这样:

# >>> mamba initialize >>>
# !! Contents within this block are managed by 'mamba init' !!
export MAMBA_EXE="/opt/homebrew/bin/micromamba";
export MAMBA_ROOT_PREFIX="/Users/pavel/micromamba";
__mamba_setup="$("$MAMBA_EXE" shell hook --shell bash --prefix "$MAMBA_ROOT_PREFIX" 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__mamba_setup"
else
    if [ -f "/Users/pavel/micromamba/etc/profile.d/micromamba.sh" ]; then
        . "/Users/pavel/micromamba/etc/profile.d/micromamba.sh"
    else
        export  PATH="/Users/pavel/micromamba/bin:$PATH"  # extra space after export prevents interference from conda init
    fi
fi
unset __mamba_setup
# <<< mamba initialize <<<
Run Code Online (Sandbox Code Playgroud)

在这里,在定义"$MAMBA_EXE" shell hook --shell bash --prefix "$MAMBA_ROOT_PREFIX"函数的地方被调用。micromamba

micromamba因此,即使micromamba不在其中,您也可以调用activate $PATH,因为它是一个函数。如果你打电话type micromamba你应该得到函数定义

micromamba() {
    \local cmd="${1-__missing__}"
    case "$cmd" in
        activate|deactivate)
            __mamba_activate "$@"
            ;;
        install|update|upgrade|remove|uninstall)
            __mamba_exe "$@" || \return
            __mamba_reactivate
            ;;
        self-update)
            __mamba_exe "$@" || \return

            # remove leftover backup file on Windows
            if [ -f "$MAMBA_EXE.bkup" ]; then
                rm -f $MAMBA_EXE.bkup
            fi
            ;;
        *)
            __mamba_exe "$@"
            ;;
    esac
}
Run Code Online (Sandbox Code Playgroud)

~/micromamba/condabin 的目的是什么?

condabin目录用于powershell和的 shell 初始化脚本cmd.exe在这里您可以看到哪些 shell 初始化脚本应该位于何处。bash初始化zsh脚本位于~/micromamba/etc/profile.d/cmd.exe以及powershell~/micromamba/condabin/