Lor*_*ist 2 perl dependencies cpan perl-module dependency-management
我正在开发一个项目,需要将所有第三方(读取:CPAN)perl模块安装在perforce存储库中,这样任何依赖于它们的代码都可以成功运行,而无需其他人手动安装它们.我使用cpanminus来安装我的CPAN模块,所以我cpanm -L . Moose在所需的目录中运行,并且所有内容都安装成功.但是,当我尝试编译我用Moose制作的模块时,我有时会收到此错误:
Undefined subroutine &Carp::longmess_heavy called at /usr/lib/perl5/5.8.8/Carp.pm line 235.
Run Code Online (Sandbox Code Playgroud)
看起来,即使Carp与Moose一起安装到我的本地目录中,它也在使用(过时的)版本/user/lib/perl5/5.8.8.我可以在我的机器上升级Carp,但是一旦我将我的代码检查到存储库中,其他人使用过时的Carps就会遇到同样的问题.那么我如何强迫Moose使用本地安装的Carp,而不是那个/usr/lib/perl5/5.8.8?
你不强迫麋鹿perl.您已将模块安装在一个perl不了解的位置,因此您需要告诉perl它.
由于您希望影响所有脚本,因此您需要将其放入登录脚本中.
export PERL5LIB=/home/.../lib
Run Code Online (Sandbox Code Playgroud)
如果您只想影响该程序,则可以使用以下命令启动该程序:
PERL5LIB=/home/.../lib script
Run Code Online (Sandbox Code Playgroud)
或者您将以下内容添加到脚本中:
use lib '/home/.../lib';
Run Code Online (Sandbox Code Playgroud)