管理多用户 conda 安装#
默认情况下,conda 及其安装的所有包都将在本地安装,并采用用户特定的配置。不需要管理权限,并且安装不会影响任何上游文件或其他用户。
您可以使 conda 和任意数量的软件包可供一个或多个用户组使用,同时防止这些用户使用 conda 安装不需要的软件包
将 conda 和允许的软件包(如果有)安装在管理员控制之下且用户可访问的位置。
在安装的根目录中创建一个 .condarc 系统配置文件。此系统级配置文件将覆盖用户安装的任何用户级配置文件。
每个用户访问中央 conda 安装,该安装从位于其主目录中的用户 .condarc
配置文件中读取设置。用户文件的路径与 conda info
显示的根环境前缀相同,如下面的 用户配置文件 所示。用户 .condarc
文件受到系统 .condarc
文件的限制。
系统配置设置通常在系统 .condarc
文件中使用,但也可以在用户 .condarc
文件中使用。所有用户配置设置也可以在系统 .condarc
文件中使用。
有关 .condarc
文件中设置的信息,请参阅 使用 .condarc conda 配置文件。
管理员控制安装示例#
以下示例描述了如何查看系统配置文件、查看设置、将其与用户的配置文件进行比较,以及确定当用户尝试从被阻止的通道访问文件时会发生什么。然后,它描述了用户必须如何修改其配置文件才能访问管理员允许的通道。
系统配置文件#
系统配置文件必须位于顶级 conda 安装目录中。检查
conda
所在路径,例如在 miniconda 安装中$ which conda /tmp/miniconda/bin/conda
查看管理员目录中
.condarc
文件的内容cat /tmp/miniconda/.condarc
以下管理
.condarc
文件使用#!final
标志来指定用户可用的通道、默认通道和 channel_alias。$ cat /tmp/miniconda/.condarc channels: #!final - admin channel_alias: https://conda.anaconda.org/ #!final
#!final
标志与 CSS 中的 !important
规则非常相似;.condarc
中任何以 #!final
结尾的参数都不能被任何其他 .condarc
源覆盖。有关此标志的更多信息,请参阅关于此主题的 Anaconda 博客。
由于已使用 #!final
标志,并且未明确指定通道默认值,因此禁止用户从默认通道下载软件包。您可以在下一个步骤中检查这一点。
用户配置文件#
检查用户 conda 安装的位置
$ conda info Current conda install: . . . channel URLs : https://repo.anaconda.com/pkgs/free/osx-64/ https://repo.anaconda.com/pkgs/pro/osx-64/ config file : /Users/username/.condarc
conda info
命令显示 conda 正在使用用户的.condarc
文件,该文件位于/Users/username/.condarc
,并且repo.anaconda.com
等默认通道被列为通道 URL。查看在步骤 1 中找到的目录中的管理
.condarc
文件的内容$ cat ~/.condarc channels: - defaults
此用户的
.condarc
文件仅指定了默认通道,但管理员配置文件已通过指定仅允许admin
来阻止默认通道。如果此用户尝试在默认通道中搜索软件包,他们会收到一条消息,告知他们允许哪些通道$ conda search flask Fetching package metadata: Error: URL 'http://repo.anaconda.com/pkgs/pro/osx-64/' not in allowed channels. Allowed channels are: - https://conda.anaconda.org/admin/osx-64/
此错误消息告诉用户将
admin
通道添加到其配置文件中。用户必须编辑其本地
.condarc
配置文件才能通过 admin 通道访问软件包channels: - admin
用户现在可以在允许的
admin
通道中搜索软件包了。