Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在使用conda build创建包时精确设置Perl版本_Linux_Perl_Package_Conda_Conda Build - Fatal编程技术网

Linux 如何在使用conda build创建包时精确设置Perl版本

Linux 如何在使用conda build创建包时精确设置Perl版本,linux,perl,package,conda,conda-build,Linux,Perl,Package,Conda,Conda Build,我试图为我拥有的Perl模块创建一个包,然后将其放入本地通道,以便能够在conda环境中安装它。我正试图遵循康达文件,但由于这是我第一次尝试这样做,我有点迷失了自己 从头开始创建conda包的文档: 文档以了解meta.yaml文件的元数据: 要进行构建的文档: 首先,我创建了一个包含meta.yaml文件和build.sh文件的菜谱。我的conda中包含的Perl版本是5.26.2。然而,Perl模块是用Perl5.18.2编写的。我找不到修改Perl版本的方法 我试图: $ conda-bu

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

从头开始创建conda包的文档:

文档以了解meta.yaml文件的元数据:

要进行构建的文档:

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

我试图:

$ conda-build <path_to_perl_module>/recipe --perl=5.18.2
但在这两种情况下(我也尝试更改需求的run/build部分,结果相同),当我在conda环境中安装包时,控制台提示:

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。我想我做得不对,但是文档并没有真正帮助我,或者我还没有找到相应的部分

任何线索都将不胜感激

祝你白天/晚上愉快

编辑: 我能做什么

  • 是否使用位于usr/bin/Perl中的本地Perl

  • 从下载Perl 5.18.2包:并将其链接到meta.yaml文件中


  • 我已经找到了解决问题的办法。但我不确定这样做是否正确

    我在这里下载Perl 5.18.2的conda包:

    我还在需求字段的meta.yaml中指出:

    requirements:
      run:
        perl x.x
    
    我把包放在我的自定义频道。然后我使用
    conda build/recipe/--perl=5.18.2
    创建包。当我使用
    conda instal
    安装软件包时,我得到以下输出:

    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版本


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

    您的模块不能与Perl 5.26一起使用吗?如果是这样,为什么您的要求是
    =5.18.2
    ,而不是
    5.18.2
    5.18.*
    ?Perl 5.26.2还不支持该模块。如果我只是
    perl 5.18.2
    perl 5.18.*
    我在尝试构建包时收到了以下错误消息:
    conda_build.exceptions.DependencyNeedsBuildingError:platform linux-64的不可满足依赖项:set(['perl=5.18.2'])
    我不知道conda从何处提取包。也许他们没有perl 5.18.2的包?我在conda外部使用的perl在
    usr/bin/perl
    下,这是一个好版本。我还没有找到在meta.yaml文件中本地链接Perl的方法。可能吗?--我还有另一个选择,那就是下载Perl 5.18.2包,把它放在我的本地通道中,然后精确地放在meta.yaml中,将这个包作为Perl使用,但如果可能的话,我真的不知道接下来的步骤是什么;在这个问题之前,我甚至没有听说过康达。:-)
    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