Как определить версию Perl при создании пакета с использованием conda-build - PullRequest
1 голос
/ 28 июня 2019

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

Буду признателен за любые выводы.хорошего дня / ночи!

edit: Что я могу сделать?

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

  2. Загрузить пакет Perl 5.18.2 из: https://www.cpan.org/src/README.html и каким-то образом связать его внутри файла meta.yaml?

1 Ответ

1 голос
/ 03 июля 2019

Я нашел решение своей проблемы.Я не уверен, что это правильный способ.

Я загружаю пакет 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.

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

...