Как определить версию Perl при создании пакета с использованием 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
Документ для conda-build: https://conda.io/projects/conda-build/en/latest/resources/commands/conda-build.html
Итак, сначала я создал рецепт с файлом meta.yaml и файлом build.sh. Версия 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. Я думаю, что я делаю это неправильно, но документация мне не помогает, или я не нашел соответствующую часть.
Любые выводы будут очень признательны.
Хорошего дня / ночи!
редактировать: что я мог сделать?
Использовать мой локальный Perl, расположенный в usr/bin/Perl?
Загрузите пакет Perl 5.18.2 по адресу: https://www.cpan.org/src/README.html и каким-то образом связали его в файле meta.yaml?
1 ответ
Я нашел решение своей проблемы. Я не уверен, что это правильный способ сделать все же.
Я загружаю пакет conda для Perl 5.18.2 здесь: 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
Затем мы ищем новейшую версию Perl, доступную в conda-forge.
Я надеюсь, что это поможет вам, если вы застряли с той же проблемой.