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