在 conda 包中包含 GLIBC

Including GLIBC in a conda package

我正在学习如何创建 conda 包,我在使用一个可以在本地工作的包时遇到了问题,但是当从 anaconda 下载到不同的服务器时会 return 一个错误:

/lib64/libm.so.6: version `GLIBC_2.29' not found

meta.yaml 如下所示:

package:
  name: app
  version: 2.4

source:
  git_url: https://gitlab.com/user/repo.git
  git_tag: v2.4

requirements:
  build:
  host:
  run:

about:
  home: https://gitlab.com/user/repo
  license: GPL-3
  license_family: GPL
  summary: blabla.

该应用程序是使用简单的 build.sh 脚本构建的:

#!/bin/bash

set -x
echo $(pwd)
make

BIN=$PREFIX/bin
mkdir -p $BIN
cp app $BIN

我假设 requirements 下的 build: glibc >= 2.29 会完成这项工作,但是当 运行 conda build ..

时会导致错误

如何在包中包含 GLIBC?这是要手动完成的事情吗?从我可以从 anaconda 下载的包版本,我可以看到其他包也被下载(例如 libgcc-ng),我在 meta.yaml 或任何地方都没有真正提到。

How can I include GLIBC in the package?

不能,原因已解释here

您最好的选择是在具有您需要支持的最低版本 GLIBC 的系统(或在 docker 容器中构建)(即安装在您将要使用的服务器上的版本) 运行你的包裹在)。