【发布时间】:2019-11-10 12:49:10
【问题描述】:
我正在尝试为我拥有的 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 环境中安装包时,控制台提示:
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 文件中?
【问题讨论】:
-
您的模块不能与 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: Unsatisfiable dependencies for 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 但如果可能的话我真的不知道可以采取哪些步骤。 -
不知道;在这个问题之前,我什至没有听说过 conda 。 :-)
标签: linux perl package conda conda-build