Conda glibc 依赖冲突

Conda glibc dependency conflict

我在尝试构建 conda 包时遇到奇怪的错误。

$ conda-build pkg2

....
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed   
....
The following specifications were found to be incompatible with your system:

  - feature:/linux-64::__glibc==2.17=0
  - feature:|@/linux-64::__glibc==2.17=0
  - pkg1 -> __glibc[version='>=2.17,<3.0.a0']

Your installed version is: 2.17

在我看来 glibc 2.17 满足所有三个要求,但是 conda 认为存在冲突。

澄清一下,pkg2 依赖于我在本地构建的另一个包 pkg1pkg1 是一个具有 python 接口的 C++ 库,它依赖于 libfftw。我在 conda 上找不到 libfftw,所以不得不通过 yum 在构建主机上安装它,它运行 CentOS7 glibc 2.17,因此存在依赖关系。

pkg1meta.yaml我有:

requirements:
  build:
    - sysroot_linux-64  >=2.17  [linux]

pkg2 meta.yaml:

requirements:
  host:
    - pkg1
  run:
    - pkg1

感谢@merv 的 fftw 提示。

我强烈怀疑这个问题是由来自 conda-forge 和 Anaconda default 渠道的软件包混合在同一环境中引起的。根据 conda 开发人员的说法,这被认为是一种不好的做法。一旦我将其更改为仅使用 conda-forge,问题就消失了。