Как определить версию 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. Я думаю, что я делаю это неправильно, но документация мне не помогает, или я не нашел соответствующую часть.

Любые выводы будут очень признательны.

Хорошего дня / ночи!

редактировать: что я мог сделать?

  1. Использовать мой локальный Perl, расположенный в usr/bin/Perl?

  2. Загрузите пакет 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.

Я надеюсь, что это поможет вам, если вы застряли с той же проблемой.

Другие вопросы по тегам