使用带有 'read-only' 基础安装的 Conda 环境

Using Conda Environments with a 'read-only' base installation

我已经通过 bash 脚本在一个有很多用户的 linux 系统上安装了 miniconda-3。我将此基本安装设置为对所有人只读。理想情况下,大多数用户只需 运行 以下内容即可 运行 他们系统上的 python 应用程序。

eval "$(/path/to/bin/conda shell.bash hook)"

如果他们需要自定义包,他们可以通过

创建一个 conda 克隆
conda create -p /path/to/new/env --clone $CONDA_PREFIX

但是,在这种情况下,用户的环境仍在使用基础 conda 及其配置,如果用户 运行s conda install ... 如下所示,则会导致权限错误:

NotWritableError: The current user does not have write permissions to a required path.
  path: /path/to/miniconda3/pkgs/cache/9e0f62c3.json

有没有办法让新环境使用自己的 pkg_dirsenv_dirs 而无需用户手动更改它们?

您应该创建一个共享 pkg_dirs。简而言之,这是一个缓存目录。当 运行 conda install 时,它从 public 频道下载软件包到此目录,然后安装它们。

让每个用户都使用相同文件夹的好处是它会加快安装速度,因为如果包已经在另一个用户的缓存中,它会减少下载。

有关详细信息,请参阅 this guide。基本上,你只需要添加

pkgs_dirs:
    - /path/to/shared_directory

给你的.condarc