为 conda 和 mamba 定制通道和存储库

更改 "conda或 mamba 频道配置以访问私有软件库,或在访问公共 "conda和 "mamba软件库时使用代理服务器作为中介。

conda通道是存储库和软件包的位置 URL,启动运行时可从该 URL 下载软件包。

您可以使用以下格式来指代频道。 conda"和 "mamba都支持这种语法:
  • defaults:指定自动搜索的默认公共频道集。
  • https://some.custom/channel:允许指定存储库频道的完整 URL ,例如 https://yoururl.com:port/conda/channel。 这种格式可以访问私人资源库服务器。
  • file:///some/local/directory:支持通过前置 file:/// 来指定装载的网络驱动器,包括驱动器路径。 此格式支持访问文件系统上的专用存储库。

如果您想定义一个独立、安全的网络,并对库库进行细粒度访问控制,您可以配置 "conda和 "mamba使用二进制库管理器(例如 JFrogArtifactory)来存储和访问库库。

您可以在 /cc-home/_global_/config/conda/.condarc 全局文件中设置 condamamba 使用的配置。 这些设置适用于所有 "Watson Studio运行时和所有用户。 /cc-home/_global_/config/conda/.condarc文件为只读文件。 本文档中的说明介绍了如何使用 REST API 命令修改文件。

开始之前,请设置 "CPD_URL和 "TOKEN环境变量,并确保存在 "cc-home存储卷。 有关说明,请参阅生成 API 授权令牌设置存储卷以存储common core services的定制

修改后,运行 "conda info或 "conda config --show,检查 ".condarc中的修改是否正确应用。

启动运行时会激活对 ".condarc的更新。 如果要将更改应用到全局 ".condarc文件,必须重新启动现有运行时。

配置 "conda或 "mamba使用代理服务器

conda和 "mamba都可以使用代理服务器作为连接公共 "conda和 "mamba资源库的中介。 您可以使用公司代理,或在二进制版本库管理器中创建一个远程版本库,作为公共 "conda和 "mamba资源的代理。 将 "conda配置文件 ".condarc用于 "mamba和 "conda配置。

要配置 "conda或 "mamba,以便在代理服务器后面使用:
  1. 通过运行此代码读取任何现有的 ".condarc文件:
    curl -fSsk ${CPD_URL}/zen-volumes/cc-home/v1/volumes/files/%2F_global_%2Fconfig%2Fconda%2F.condarc -H "Authorization: ZenApiKey ${TOKEN}" > .condarc
  2. 将 "proxy_servers:键添加到 "conda配置文件 ".condarc中。 通过使用 HTTP 或 HTTPS 协议,输入您在选定二进制存储库管理器中配置和创建的公司代理服务器或远程代理服务器的 URL。 格式如下所示:
    proxy_servers:
         http: http://username:password@corp.com:8080
         https: https://username:password@corp.com:8080

    例如:

    proxy_servers:
         https: https://u:a@127.0.0.1:8080
         http: http://u:a@127.0.0.1:8080
  3. 运行此代码,上传修改后的 ".condarc文件:
    curl -k -X PUT \
    "${CPD_URL}/zen-volumes/cc-home/v1/volumes/files/%2F_global_%2Fconfig%2Fconda" \
    -H "Authorization: ZenApiKey ${TOKEN}" \
    -H "content-type: multipart/form-data" \
    -F upFile=@.condarc
该代理服务器可用于运行 Notebook 和作业。 启动运行时会激活对 ".condarc的更新。 如果要将更改应用到全局 ".condarc文件,必须重新启动现有运行时。

配置 "conda和 "mamba使用本地存储库

您可以将 "conda和 "mamba配置为使用具有细粒度访问控制的本地现场版本库服务器。 利用本地存储库,您还可以控制所要使用的软件包版本,以避免运行时启动时发生库依赖关系冲突。 您可以在公司服务器上或二进制资源库管理器中创建本地资源库,并在其中添加您选择的 "conda或 "mamba库和软件包。

要配置 "conda或 "mamba使用本地现场版本库:
  1. 通过运行此代码读取任何现有的 ".condarc文件:
    curl -fSsk ${CPD_URL}/zen-volumes/cc-home/v1/volumes/files/%2F_global_%2Fconfig%2Fconda%2F.condarc -H "Authorization: ZenApiKey ${TOKEN}" > .condarc
  2. 将映射到本地存储库 URL 的默认频道添加到位于 /cc-home/_global_/config/conda/.condarcconda 配置文件 .condarc 中。 将 <your_local_repository_name> 替换为通过代理服务器连接到本地存储库的 URL。
    channel_alias: http://<your_local_repository_name>:8080/conda/
    
    channels:
        - http://<your_local_repository_name>:8080/conda/anaconda
        - http://<your_local_repository_name>:8080/conda/wakari
        - http://<your_local_repository_name>:8080/conda/r-channel
  3. 运行此代码,上传修改后的 ".condarc文件:
    curl -k -X PUT \
    "${CPD_URL}/zen-volumes/cc-home/v1/volumes/files/%2F_global_%2Fconfig%2Fconda" \
    -H "Authorization: ZenApiKey ${TOKEN}" \
    -H "content-type: multipart/form-data" \
    -F upFile=@.condarc
  4. 可选:上传要使用的任何证书。 每个文件必须使用 CRT 文件格式,文件名必须以 .crt 结尾。

配置 "conda和 "mamba使用文件通道

您可以通过文件位置提供 condamamba 软件包,只需将其上传到共享目录,即可通过 file:// 和 URL 访问库文件。

创建自定义文件通道:
  1. 创建一个 "conda或 "mamba软件包,将软件文件打包成一个文件,方便安装和管理。 有关构建软件包的详情,请参阅 "conda和 "mamba文档。

  2. 将压缩档案文件上传到通道文件夹:
    1. 为自定义套餐创建自定义频道。
    2. 将自定义频道文件夹创建为 "custom-channel.tgz文件的压缩包。
    3. 运行此代码,将压缩归档文件上传到共享卷:
      curl -k -X PUT "${CPD_URL}/zen-volumes/cc-home/v1/volumes/files/%2F_global_%2Fconfig%2Fconda%2Fcustom-channel?extract=true" -H "Authorization: ZenApiKey ${TOKEN}" -H "content-type: multipart/form-data" -F upFile=@custom-channel.tgz
  3. 如果您的环境是 air-gapped 环境,并且您不打算使用任何来自外部的 "conda软件包,请创建一个包含以下内容的 ".condarc文件:
    offline: True
    这样可以确保 "conda过滤掉所有不使用 "file://协议的通道。