管理多用户 conda 安装#
默认情况下,conda 及其安装的所有软件包都以用户特定的配置在本地安装。不需要管理员权限,并且安装不会影响上游文件或其他用户。
您可以使 conda 和任意数量的软件包可供一个或多个用户使用,同时阻止这些用户使用 conda 安装不需要的软件包
在管理员控制且用户可访问的位置安装 conda 和允许的软件包(如果有)。
在安装的根目录中创建一个 .condarc 系统配置文件。这个系统级配置文件将覆盖用户安装的任何用户级配置文件。
每个用户访问中央 conda 安装,该安装从位于其主目录中的用户 .condarc
配置文件读取设置。用户文件的路径与 conda info
显示的根环境前缀相同,如以下 用户配置文件 所示。用户 .condarc
文件受到系统 .condarc
文件的限制。
系统配置设置通常在系统 .condarc
文件中使用,但也可能在用户 .condarc
文件中使用。所有用户配置设置也可能在系统 .condarc
文件中使用。
有关 .condarc
文件中设置的信息,请参阅 使用 .condarc conda 配置文件。
管理员控制安装示例#
以下示例描述如何查看系统配置文件、查看设置、将其与用户的配置文件进行比较,并确定用户尝试从被阻止的频道访问文件时会发生什么。然后,它描述用户必须如何修改其配置文件才能访问管理员允许的频道。
系统配置文件#
系统配置文件必须位于顶级 conda 安装目录中。检查 conda 所在的位置
$ which conda /tmp/miniconda/bin/conda
查看管理员目录中
.condarc
文件的内容cat /tmp/miniconda/.condarc
以下管理员
.condarc
文件使用#!final
标志来指定用户可用的频道、默认频道和频道别名。$ 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
通道中搜索包。