自定义镜像#
本节解释了如何自定义您的 PyPI 或 Anaconda 仓库镜像。
开始之前#
您的Anaconda Enterprise 4 仓库应该已经安装并配置好了,以及镜像工具 cas-mirror
。请参阅 镜像Anaconda仓库。
自定义你的镜像#
以下命令可以与cas-mirror
工具一起使用:
cas-sync
: 创建或更新现有的本地Anaconda包仓库。这些包会被保存到一个本地目录中。这个目录由mirror_dir
配置设置定义。cas-sync-api-v4
: 创建或更新一个远程的Anaconda包仓库。这些包会被上传到一个现有的Anaconda Enterprise 4仓库实例的账户中。该账户和实例由dest_channel
和dest_site
配置设置控制。cas-merge
: 将增量仓库合并到现有的Anaconda包仓库中。增量仓库包含本地和远程Anaconda包仓库之间的更改。增量仓库由cas-sync
使用delta
配置设置生成。
所有命令都可以读取由--file
(或-f
)命令行选项指定的YAML配置文件。YAML文件可以包含以下任何有效键:
remote_url#
Conda 包、Anaconda 安装程序和 Miniconda 安装程序是从这个远程 URL 获取的。
默认值:https://repo.anaconda.com/
频道#
Conda 包是从这些远程渠道获取的。
默认:这些频道的列表:
/pkgs/main/ /pkgs/free/ /pkgs/pro/
mirror_dir#
镜像保存在此本地目录中。
注意:Anaconda Enterprise 4 仓库的完整镜像大约需要 650 GB 的磁盘空间。 请确保镜像目录有足够的空间。
默认值: /opt/cas-mirror
平台#
此平台列表的Conda包和安装程序已被镜像。
默认值:所有平台的列表。这是:
['osx-32', 'osx-64', 'win-32', 'win-64', 'linux-32', 'linux-64', 'linux-armv6l', 'linux-armv7l', 'linux-ppc64le']
获取安装程序#
是否从remote_url
获取所有Anaconda和Miniconda安装程序。
如果 fetch_installers
设置为 false
,则不会获取安装程序。
默认值:true
python_版本#
要镜像的Python版本。
默认:所有版本。
示例: ['2.7', '3.6']
pkg_list#
要镜像的包名称的显式列表。
当提供此列表时,不允许设置license_blacklist
、blacklist
和whitelist
键。
license_blacklist#
要从镜像中排除的许可证列表。
可以被列入黑名单的许可证系列有:
AGPL
APACHE
BSD
GPL2
GPL3
LGPL
麻省理工学院
专有
公共领域
PSF
其他
无
黑名单#
要从镜像中排除的包名称列表。
白名单#
要包含在镜像中的包名称列表。
白名单覆盖黑名单。如果一个包同时被列入黑名单和白名单,那么它将被包含并镜像。
示例:包 numpy
的许可证属于 BSD
许可证系列。
如果 license_blacklist
包含 BSD
并且 whitelist
为空,
那么 numpy
和所有其他 BSD 许可的包将被排除并不被镜像。
如果 license_blacklist
包含 BSD
并且 whitelist
包含
numpy
,那么 numpy
包将被包含并镜像,而其他 BSD
许可的包将被排除并不进行镜像。
目标通道#
与本地存储库实例同步时使用的可选通道。
默认值:“anaconda”
目标站点#
与本地仓库实例同步时使用的可选站点。
默认值:无
delta#
如果 delta
为真,则从 mirror_dir
生成一个增量。
如果 delta
为 false,则更改将直接应用。
delta_dir#
增量生成(或合并)到此目录。
如果未指定此选项,生成的增量目录将被命名为
delta-
。
将被替换为时间戳。
最大重试次数#
在失败之前允许的重试次数。
当设置为0时,cas-mirror
在第一次错误时失败。默认值为0。
这仅支持cas-sync
和cas-sync-api-v4
命令。
默认值: 0
安全#
如果 safe
是 true
,同步仓库或合并增量目录时不会删除任何内容。
默认值:false
repodata_source#
使用repodata.json
(或repodata.json.bz2
)作为现有包的来源。
此文件必须位于特定平台的镜像目录中。
示例:/mirror/linux-64/repodata.json
镜像平台特定列表#
默认情况下,cas-sync
和 cas-sync-api-v4
镜像所有平台。
如果您不需要所有平台,可以通过编辑 yaml
文件来指定您想要镜像的平台,从而节省时间和磁盘空间。
示例:
platforms:
- linux-64
- win-32
镜像特定软件包列表#
您可能只想镜像存储库的一小部分。与其黑名单列出您不想镜像的包,不如简单地列举您想要镜像的包列表。
示例:此示例仅镜像三个包 Accelerate、PyQt 和 Zope。所有其他包将被忽略:
package_list:
- accelerate
- pyqt
- zope
镜像特定Python版本的包#
您可能只想镜像一部分版本。
示例:此示例仅镜像为Python 3.3构建的Anaconda包:
python_versions:
- 3.3
使用许可证黑名单进行镜像#
截至 Repository 2.26.0,Anaconda 镜像脚本支持对以下许可证系列进行许可证黑名单处理:
AGPL
APACHE
BSD
GPL2
GPL3
LGPL
麻省理工学院
专有
公共领域
PSF
其他
无
示例:此示例镜像了存储库中的所有包,除了那些使用GPL2、GPL3或BSD许可证的包:
license_blacklist:
- GPL2
- GPL3
- BSD
使用黑名单进行镜像#
blacklist
允许访问所有包,除了明确列出的那些。
示例:此示例镜像整个仓库,除了bzip2、tk和openssl包:
blacklist:
- bzip2
- tk
- openssl
使用白名单进行镜像#
白名单功能与license_blacklist或blacklist参数结合使用,并重新添加被先前参数排除的包。
示例:此示例镜像了整个仓库,除了任何GPL2或GPL3许可的包,但包括readline,尽管它是GPL3许可的:
license_blacklist:
- GPL2
- GPL3
whitelist:
- readline
组合多个镜像配置#
你可能会发现,结合上述两个或多个参数是获取你所需确切包组合的最简单方法。
platforms 参数会在任何其他参数之前被评估。
示例:此示例仅镜像dnspython、shapely和gdal包的linux-64发行版:
platforms:
- linux-64
package_list:
- dnspython
- shapely
- gdal
如果结合使用license_blacklist和blacklist参数, 首先评估license_blacklist,而blacklist是 一个补充修饰符。
示例:在此示例中,镜像配置不镜像GPL2许可的软件包。它也不镜像GPL3许可的软件包PyQt,因为它已被列入黑名单。它确实镜像了存储库中的所有其他软件包:
license_blacklist:
- GPL2
blacklist:
- pyqt
如果同时使用了黑名单和白名单参数,首先评估黑名单,白名单则作为修改器使用。
示例:此示例镜像了存储库中除astropy和pygments之外的所有包。尽管Accelerate被列入了黑名单,但由于它也在白名单上,因此仍然被镜像:
blacklist:
- accelerate
- astropy
- pygments
whitelist:
- accelerate