我正在尝试为已有的Perl模块创建一个软件包,然后将其放在本地通道中,以便能够将其安装在conda环境中。我正在尝试遵循conda文档,但是因为这是我第一次尝试这样做,所以我有点迷失了自己。
Doc从头开始创建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构建的文档: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环境中安装软件包时,控制台提示:
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吗?
从https://www.cpan.org/src/README.html下载Perl 5.18.2软件包并以某种方式将其链接到meta.yaml文件中?
答案 0 :(得分:1)
我找到了解决我问题的方法。我不确定这是否是正确的方法。
我在这里下载了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版本。
如果您遇到同样的问题,希望对您有所帮助。