我需要在网络主机上安装两个 Perl 模块。我们称它们为 A::B 和 X::Y。X::Y 取决于 A::B (需要 A::B 运行)。他们都使用Module::Install。我已使用成功将 A::B 安装到非系统位置
perl Makefile.PL PREFIX=/non/system/location
make; make test; make install
现在我想安装 X::Y,所以我尝试了同样的事情
perl Makefile.PL PREFIX=/non/system/location
输出是
$ perl Makefile.PL PREFIX=/non/system/location/
Cannot determine perl version info from lib/X/Y.pm
*** Module::AutoInstall version 1.03
*** Checking for Perl dependencies...
[Core Features]
- Test::More ...loaded. (0.94)
- ExtUtils::MakeMaker ...loaded. (6.54 >= 6.11)
- File::ShareDir ...loaded. (1.00)
- A::B ...missing.
==> Auto-install the 1 mandatory module(s) from CPAN? [y]
它似乎在系统中找不到 A::B,尽管它已安装,并且当它尝试从 CPAN 自动安装模块时,它会尝试将其写入系统目录(忽略 PREFIX)。我曾尝试在命令行之后使用PERL_LIB
和之类的变量,但我所做的一切似乎都不起作用。LIB
PREFIX=...
我可以做到make
并且make install
成功,但是make test
因为这个问题我做不到。有什么建议么?
我在http://servers.digitaldaze.com/extensions/perl/modules.html找到了一些使用环境变量 PERL5LIB 的建议,但这似乎也不起作用:
export PERL5LIB=/non/system/location/lib/perl5/
没有解决问题。