conda 要求与约束

conda requirements vs constraints

以下是 clang ~/conda/pkgs/clang-13.0.0-ha770c72_0/info/repodata_record.json 的包元数据的一部分,它有两个部分“constrains”和“depends”

{
  "arch": "x86_64",
  "build": "ha770c72_0",
  "build_number": 0,
  "channel": "https://conda.anaconda.org/conda-forge/linux-64",
  "constrains": [
    "libclang 13.0.0.*",
    "clang-tools 13.0.0.*",
    "llvm 13.0.0.*",
    "llvm-tools 13.0.0.*",
    "llvmdev 13.0.0.*"
  ],
  "depends": [
    "clang-13 13.0.0 default_hc23dcda_0",
    "gcc_impl_linux-64"
  ],
  ...
}

“约束”和“依赖”中列出的项目是什么?

我怀疑“取决于”意味着如果我们需要安装 clang 版本 13.0.0,我们还需要安装 clang-13 版本 13.0.0 和 gcc_impl_linux-64。这是正确的吗?

那么约束呢?这个 clang 包是否也依赖于那些包,例如 llvm?

可以在 Conda 配方中定义四种类型的要求:buildhostrunrun_constrained。最后两个在最终元数据 JSON 中分别被翻译成 dependsconstrains

run 要求确定必须共同安装的软件包; run_constrained 定义了版本约束 如果 列出的软件包是共同安装的。

有关详细信息,请参阅 the documentation on the Requirements section Conda 包配方的 meta.yaml 文件。

此外,请参阅 the Conda Forge recipe 了解 clang-{{major_version}} 软件包。