Conda 多用户配置


先安装 conda ,这里用了 root 用户,安装后的文件都是 root:root 用户/组,保证文件不会被随便修改。

conda init 生成的代码粘贴到 /etc/profile.d/conda.sh:

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/data/opt/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/data/opt/miniconda3/etc/profile.d/conda.sh" ]; then
        . "/data/opt/miniconda3/etc/profile.d/conda.sh"
    else
        export PATH="/data/opt/miniconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<

编辑 /etc/bash.bashrc ,加入:

source /etc/profile.d/conda.sh

这样 non-login shell 也能正常运行 conda 。

先关掉 auto_activate_base ,防止有人不小心往 base 里装包(然后发现装不上)。

root:~# conda config --system --set auto_activate_base false
root:~# conda config --show-sources
==> /data/opt/miniconda3/.condarc <==
auto_activate_base: False

下面的设置需要在所有人都受信任的环境下做!硬盘够了就建议不设置,让每个人的环境都放自己目录里面。 安装 acl 包,设置文件夹权限

# 设置 envs 文件夹权限
root:~# sudo chgrp $YOURGROUP /data/opt/miniconda3/envs
root:~# sudo chmod 775 /data/opt/miniconda3/envs

# 让 conda 优先在 conda root 下的 envs 文件夹里建包,需要设置一个 magic file 的写权限
# https://github.com/conda/conda/blob/7ec97d67e05f63260628c33647c68cf455dfbc40/conda/base/context.py#L644
root:~# sudo chgrp $YOURGROUP /data/opt/miniconda3/conda-meta/history
root:~# sudo chmod 775 /data/opt/miniconda3/conda-meta/history

# 设置 pkgs 文件夹权限,包括下载的包、缓存
root:~# sudo chmod g+s pkgs
root:~# sudo setfacl -d -R -m g::rwx /data/opt/miniconda3/pkgs
root:~# sudo setfacl -d -R -m o::rx /data/opt/miniconda3/pkgs