使用 conda-build 创建包时如何精确确定 Perl 版本

How to precise the Perl version when creating a package using conda-build

我正在尝试为我拥有的 Perl 模块创建一个程序包,然后将其放入本地频道以便能够将其安装在 conda 环境中。我正在尝试遵循 conda 文档,但由于这是我第一次尝试这样做,我有点迷失了自己。

从头开始创建 conda 包的文档:https://docs.conda.io/projects/conda-build/en/latest/user-guide/tutorials/build-pkgs.html

了解 meta.yaml 文件元数据的文档:https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html#build-section

conda-build 文档:https://conda.io/projects/conda-build/en/latest/resources/commands/conda-build.html

所以首先我用一个 meta.yaml 文件和一个 build.sh 文件创建了一个食谱。我的 conda 中包含的 Perl 版本是 5.26.2。然而,Perl 模块是用 Perl 5.18.2 编写的。我找不到修改 Perl 版本的方法...

我试过:

$ conda-build <path_to_perl_module>/recipe --perl=5.18.2

我还尝试在 meta.yaml 文件中的要求部分放入一些 Perl 规范。

requirements:
  host:
    perl >=5.18.2

但是在conda环境下安装包时(我也尝试更改需求的run/build部分结果相同),控制台提示:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pmp-0.8.2_BSP              |                0           5 KB  file:///home/usr/BSP-channel
    ------------------------------------------------------------
                                           Total:           5 KB

The following NEW packages will be INSTALLED:

  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  perl               conda-forge/linux-64::perl-5.26.2-h516909a_1006
  pmp                BSP-channel/linux-64::pmp-0.8.2_BSP-0

如您所见,包管理器想要安装 Perl 5.26.2。我想我没有以正确的方式做,但文档并没有真正帮助我,或者我还没有找到相应的部分。

任何线索将不胜感激。

玩得开心 day/night !

编辑: 我能做什么?

  1. 使用我位于 usr/bin/Perl 的本地 Perl ?

  2. https://www.cpan.org/src/README.html 下载 Perl 5.18.2 包并以某种方式将其链接到 meta.yaml 文件 ?

我找到了解决问题的办法。不过,我不确定这是正确的做法。

我在这里下载 Perl 5.18.2 的 conda 包:https://anaconda.org/Nersc/perl/files

我也在需求栏的meta.yaml中注明:

requirements:
  run:
    perl x.x

我把包裹放在我的自定义频道里了。然后我使用 conda-build <path_to_Perl_module>/recipe/ --perl=5.18.2 创建包。当我使用 conda instal <perl_module> 安装包时,我得到这个输出:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    perl-5.18.2                |                3        14.2 MB  file:///home/usr/BSP-channel
    pmp-0.8.2_BSP              |                0           5 KB  file:///home/usr/BSP-channel
    ------------------------------------------------------------
                                           Total:        14.2 MB

The following NEW packages will be INSTALLED:

  perl               BSP-channel/linux-64::perl-5.18.2-3
  pmp                BSP-channel/linux-64::pmp-0.8.2_BSP-0

如果我在没有指明 --perl=5.18.2 的情况下创建模块,我们会在 conda-forge.

中寻找可用的最新 Perl 版本

如果您遇到同样的问题,希望对您有所帮助。