配置 Anaconda Client#

Anaconda Client 使您能够将包上传到本地 Anaconda Enterprise 4 仓库,并提供高度精细的访问控制功能。以下说明描述了如何配置 Client 以使用本地仓库而不是 Anaconda Cloud。

Client 配置#

在每台访问本地仓库的机器上,以机器的本地用户身份运行此命令

anaconda config --set url http://your.server.name:<port>/api

或者,要在系统范围内设置默认仓库,请运行此命令

anaconda config --set url http://your.server.name:<port>/api --site

注意:将 your.server.name 替换为本地仓库的名称,并将 <port> 替换为仓库使用的端口名称。

仅当不存在用户级 config 文件时,才使用系统级 config 文件。

显示系统和用户 config 文件位置和配置设置

anaconda config --show

Conda 配置#

完成上述 anaconda config 步骤后,您可以从本地仓库而不是公共 Anaconda.org 访问所有包和通道。

然后,用户可以通过运行以下命令将个人帐户添加到他们的 .condarc 文件中

conda config --add channels USERNAME

如果您仍然想从公共 Anaconda.org 访问某些通道,请运行

conda config --add channels http://conda.anaconda.org/USERNAME

注意:将 USERNAME 替换为您的用户名。

Conda 通道优先级#

要为 conda 搜索包安装的通道设置首选优先级,请编辑您的 ~/.condarc file 文件并更改顺序。顶部的通道首先被搜索。

例如

channels:
  - channel
  - https://conda.anaconda.org/t/<token>/<channel2>
  - http://conda.anaconda.org/<channel1>
  - defaults

搜索顺序为

  1. 私有本地仓库通道。

  2. 私有 Anaconda.org 通道 2。

  3. 公共 Anaconda.org 通道 1。

  4. 本地仓库上的默认通道。

Pip 配置#

要从您的仓库安装 PyPI 包,请将您的通道添加到您的 ~/.pip/pip.conf 配置文件。

编辑文件并将 extra-index-url 条目添加到 global config 部分

[global]
extra-index-url = http://your.server.name:<port>/pypi/USERNAME/simple

注意:将 your.server.name 替换为本地仓库的名称,将 <port> 替换为仓库使用的端口名称,并将 USERNAME 替换为您的用户名。

Kerberos 配置#

如果您已按照 配置仓库以使用 Kerberos 中的描述启用 Kerberos 身份验证,则您的浏览器和 Client 应该能够使用 Kerberos 对仓库进行身份验证。

在 macOS/Unix 中,配置文件 /etc/krb5.conf

[libdefaults]
default_realm = YOUR.DOMAIN

[realms]
YOUR.DOMAIN = {
  kdc = your.kdc.server
}

[domain_realm]
your.anaconda.repository = YOUR.DOMAIN

注意:将 YOUR.DOMAIN 替换为您的域名,将 your.kdc.server 替换为您的 Kerberos 密钥分发中心 (KDC),并将 your.anaconda.repository 替换为您的本地仓库服务器。

如果您的配置正确,您应该能够使用命令行工具 kinit 进行身份验证

kinit jsmith
anaconda login

注意:将 jsmith 替换为您的用户名。

浏览器设置#

许多浏览器默认情况下不显示您的 Kerberos 凭据,以防止凭据泄露给不受信任的方。为了使用 Kerberos 身份验证,您必须将仓库列入白名单,作为接收凭据的可信方。

您必须在配置白名单后重新启动浏览器,更改才能生效。

Safari#

Safari 不需要配置——它会自动显示您的凭据,无需列入白名单。

Chrome#

必须将 AuthServerWhitelist 策略设置为 your.anaconda.repository,以允许 Chrome 将凭据呈现给主机名为 your.anaconda.repository 的仓库。根据您的 DNS 配置,可能还需要 DisableAuthNegotiateCnameLookup 以防止 Chrome 在生成服务名称之前规范化主机名。

注意:将 your.anaconda.repository 替换为您的本地仓库服务器。

在 macOS 上配置

defaults write com.google.Chrome AuthServerWhitelist "your.anaconda.repository"

在 Linux 上

mkdir -p /etc/opt/chrome/policies/managed
mkdir -p /etc/opt/chrome/policies/recommended
chmod -w /etc/opt/chrome/policies/managed
echo '{"AuthServerWhitelist": "your.anaconda.repository"}' > /etc/opt/chrome/policies/managed/anaconda_repo_policy.json

在 Windows 上,使用组策略对象将身份验证服务器白名单设置设置为 your.anaconda.repository

有关更多信息,请参阅 Chrome 的 SPNEGO 身份验证管理 文档。

Firefox#

  1. 导航到配置页面 about:config

  2. 搜索 negotiate

  3. 将配置项 network.negotiate-auth.trusted-uris 设置为 your.anaconda.repository

注意:将 your.anaconda.repository 替换为您的本地仓库服务器。

Internet Explorer#

  1. 在“工具”菜单中,选择“Internet 选项”。

  2. 在“高级”选项卡上的“安全”部分中,选择“启用集成 Windows 身份验证”。