Linux 如何在使用conda build创建包时精确设置Perl版本
我试图为我拥有的Perl模块创建一个包,然后将其放入本地通道,以便能够在conda环境中安装它。我正试图遵循康达文件,但由于这是我第一次尝试这样做,我有点迷失了自己 从头开始创建conda包的文档: 文档以了解meta.yaml文件的元数据: 要进行构建的文档: 首先,我创建了一个包含meta.yaml文件和build.sh文件的菜谱。我的conda中包含的Perl版本是5.26.2。然而,Perl模块是用Perl5.18.2编写的。我找不到修改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
$ 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。我想我做得不对,但是文档并没有真正帮助我,或者我还没有找到相应的部分
任何线索都将不胜感激
祝你白天/晚上愉快
编辑:
我能做什么
我已经找到了解决问题的办法。但我不确定这样做是否正确 我在这里下载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