Я пытаюсь установить пакет conda модуля Perl. Пока что я могу создать пакет, используя conda-build
. Для этого у меня есть рецепт, содержащий файлы build.sh
и meta.yaml
.
Затем я устанавливаю его с помощью conda-install
в новой среде, и я хотел бы иметь возможность запускать некоторые сценарии Perl, расположенные в только что установленном модуле Perl.
Все эти шаги работают хорошо, но когда я запускаю несколько скриптов, у меня появляется ошибка:
Can't locate PMP/util.pm in @INC (you may need to install the PMP::util module) (@INC contains: /.autofs/home/antoine/anaconda2/envs/testCustomChannel/lib/site_perl/5.26.2/x86_64-linux-thread-multi /.autofs/home/antoine/anaconda2/envs/testCustomChannel/lib/site_perl/5.26.2 /.autofs/home/antoine/anaconda2/envs/testCustomChannel/lib/5.26.2/x86_64-linux-thread-multi /.autofs/home/antoine/anaconda2/envs/testCustomChannel/lib/5.26.2 .)
Как видите, некоторые модули моего модуля Perl не распознаются, когда я выполняю Perl. Я знаю, что для решения этой проблемы я могу изменить переменную @INC и добавить bin / в PATH и lib / в PERL5LIB, но мне нужно автоматизировать этот процесс во время установки модуля.
Я действительно не знаю, где мне следует изменять переменную среды. Во время создания пакета, добавив что-то в build.sh
например? Или я должен управлять этим во время установки, и если да, то как я могу это сделать?
Любые предложения будут с благодарностью,
Спасибо
Редактировать:
meta.yaml =>
{% set name = "module_name" %}
{% set version = "0.8.3" %}
package:
name: "{{ name }}"
version: "{{ version }}"
source:
git_url: ssh://git@adress/bspcore/perl_module.git
build:
number: 0
requirements:
host:
- perl
- perl-extutils-makemaker
run:
- perl
about:
home: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
license: xxx
license_family: xxx
summary: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Build.sh =>
#!/bin/bash
if [ -f Build.PL ]; then
perl Build.PL
perl ./Build
# Make sure this goes in site
perl ./Build install --installdirs site
elif [ -f Makefile.PL ]; then
# Make sure this goes in site
perl Makefile.PL INSTALLDIRS=site
make
make install
else
echo 'Unable to find Build.PL or Makefile.PL. You need to modify build.sh.'
exit 1
fi
chmod u+rwx $PREFIX/bin/*
echo "${PREFIX}"
Редактировать 2:
Еще одно редактирование, которое может помочь вам, ребята, лучше понять мою ситуацию. Я только что понял, что когда я собираю пакет, папка lib моего модуля perl, в котором у меня есть PMP::util
, живет в lib/site_perl/5.26.0/Perl_Module
. Я уверен, что если я смогу установить его прямо в папку lib/
, это решит эту проблему. Однако я не уверен, как изменить файл build.sh, чтобы изменить место, где мы собираем модуль perl.