CEP 15 - 通过添加 base_url
属性分别托管 repodata.json
和软件包
标题 | 通过添加 base_url 属性分别托管 repodata.json 和软件包 |
状态 | 已接受 |
作者 | Daniel Holth <dholth@anaconda.com> |
创建日期 | 2023年8月24日 |
更新日期 | 2024年1月22日 |
讨论 | https://github.com/conda-incubator/ceps/pull/61 |
实施 |
摘要
Conda 软件包需要与 repodata.json
存储在同一目录下。
当为同一组软件包使用替代的 repodata.json
时,这可能会带来不便。例如,用户可能对基于索引数据的旧快照安装软件包感兴趣,该快照指向来自原始索引的软件包。或者,用户可能希望根据策略对 repodata.json
进行子集化。
规范
一个最小的 repodata.json
看起来像这样。
{"info": {"subdir": "linux-64"},
"packages": {},
"packages.conda": {"some-package-filename.conda":{...}},
"removed": [],
"repodata_version": 1}
将 base_url
添加到 info
对象。增加 repodata_version
。
{"info": {"subdir": "...", "base_url":"https://repo.anaconda.com/repo/main/linux-64/"},
"packages": {},
"packages.conda": {"some-package-filename.conda":{...}},
"removed": [],
"repodata_version": 2}
在为软件包组合下载 URL 时,将 base_url
前置到软件包文件名。对于上面的示例,生成的下载 URL 将是 https://repo.anaconda.com/repo/main/linux-64/some-package.conda
。
base_url
可以是绝对或相对 URL。
在没有 base_url
的情况下,软件包相对于 repodata.json
加载。没有新 base_url
的索引数据将继续具有 "repodata_version": 1
,但包含 base_url
的索引数据将具有 "repodata_version": 2
。
版权
所有 CEP 均明确采用 CC0 1.0 Universal 许可。