我正在尝试安装 Perl 模块的 conda 包。到目前为止,我可以使用conda-build
. 为此,我有一个包含 abuild.sh
和 ameta.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
,例如添加一些东西?或者我应该在安装过程中管理它,如果是这样,我该怎么做?
任何建议将不胜感激,
谢谢
编辑 :
元.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
构建.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:
另一个可以帮助你们更好地了解我的情况的编辑。我刚刚意识到,当我构建包时,我所在的 perl 模块的 lib 文件夹PMP::util
位于lib/site_perl/5.26.0/Perl_Module
. 我很确定,如果我能够直接在lib/
文件夹下安装它,它将解决这个问题。但是我不确定如何修改 build.sh 文件来修改我们构建 perl 模块的位置。