Using the .condarc conda configuration file — conda dev documentation

修改默认 pkgs_dirs

conda 安装相关的包时,会将包缓存至 pkgs 文件夹中,避免重复的下载。

在多用户使用时候,由于权限问题,另一个用户创建的缓存文件不允许被修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ conda install --name openmmlab black -y
Collecting package metadata (current_repodata.json): failed

NotWritableError: The current user does not have write permissions to a required path.
path: /usr/local/anaconda3/pkgs/cache/5827f1d9.json
uid: 1001
gid: 2001

If you feel that permissions on this path are set incorrectly, you can manually
change them by executing

$ sudo chown 1001:2001 /usr/local/anaconda3/pkgs/cache/5827f1d9.json

In general, it's not advisable to use 'sudo conda'.

因此,可以修改 pkgs_dirs 的位置将缓存的 pkgs 保存至当前用户的个人文件夹下。通过 conda config --show 查看默认配置如下:

1
2
3
pkgs_dirs:
- /usr/local/anaconda3/pkgs
- /home/{current_user}/.conda/pkgs

修改全局配置信息 sudo vim /etc/conda/.condarc,如下:

1
2
3
pkgs_dirs:
- $HOME/.conda/pkgs
- /usr/local/anaconda3/pkgs

多用户配置 .condarc 搜索域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
if on_win:
SEARCH_PATH = (
"C:/ProgramData/conda/.condarc",
"C:/ProgramData/conda/condarc",
"C:/ProgramData/conda/condarc.d",
)
else:
SEARCH_PATH = (
"/etc/conda/.condarc",
"/etc/conda/condarc",
"/etc/conda/condarc.d/",
"/var/lib/conda/.condarc",
"/var/lib/conda/condarc",
"/var/lib/conda/condarc.d/",
)

SEARCH_PATH += (
"$CONDA_ROOT/.condarc",
"$CONDA_ROOT/condarc",
"$CONDA_ROOT/condarc.d/",
"$XDG_CONFIG_HOME/conda/.condarc",
"$XDG_CONFIG_HOME/conda/condarc",
"$XDG_CONFIG_HOME/conda/condarc.d/",
"~/.config/conda/.condarc",
"~/.config/conda/condarc",
"~/.config/conda/condarc.d/",
"~/.conda/.condarc",
"~/.conda/condarc",
"~/.conda/condarc.d/",
"~/.condarc",
"$CONDA_PREFIX/.condarc",
"$CONDA_PREFIX/condarc",
"$CONDA_PREFIX/condarc.d/",
"$CONDARC",
)