我有一个窗户生产箱草莓Perl安装(第5.16.3)。我假设很多月前,有人将它安装在C:驱动器上,然后将其移至D :.我不知道,我不在那里,但是当我尝试安装模块时,它工作正常。使用cpanm只会引发C:驱动器上的模块。不好。 @INC不会去那里,管理员也不想要那里的任何东西。我需要在D:上使用Perl。试图迫使CPAN在特定的目录来安装Perl的草莓
所以,我尝试使用CPAN和更改目录:
cpan> o conf mbuildpl_arg "--install_base D:/strawberry/perl"
mbuildpl_arg [--install_base D:strawberryperl]
commit: wrote 'D:\strawberry\perl\lib/CPAN/Config.pm'
cpan> o conf makepl_arg "PREFIX=D:/strawberry/perl"
makepl_arg [PREFIX=D:/strawberry/perl]
commit: wrote 'D:\strawberry\perl\lib/CPAN/Config.pm'
cpan> install Email::Simple
它安装在电子邮件简单的d:/草莓/ perl的/ lib目录 - 不完美,但它的作品。大!其他一些人也经历了相同的情况。去安装模块::运行时
cpan> install Module::Runtime
而且这在D:/草莓/ perl/lib/perl5。咦? OK,并不完美,但我@INC包括d:/草莓/ perl的/ lib以使这不应该是一个问题,对不对?去安装MooX :: Types :: MooseLike :: Base
cpan> install MooX::Types::MooseLike::Base
不会安装。这里的CPAN BARF出来:
cpan> install MooX::Types::MooseLike::Base
Running install for module 'MooX::Types::MooseLike::Base'
Running make for M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Checksum for D:\strawberry\cpan\sources\authors\id\M\MA\MATEU\MooX-Types-MooseLike-0.29.tar.gz ok
CPAN.pm: Building M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Checking if your kit is complete...
Looks good
Warning: prerequisite Module::Runtime 0.014 not found.
... Detected uninstalled Perl. Trying to continue.
Have \strawb~1\perl\lib
Want \strawberry\perl\lib
Writing Makefile for MooX::Types::MooseLike
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- MATEU/MooX-Types-MooseLike-0.29.tar.gz ----
Module::Runtime [requires]
Running make test
Delayed until after prerequisites
Running make install
Delayed until after prerequisites
Running install for module 'Module::Runtime'
Running Build for Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz
Has already been unwrapped into directory D:\strawberry\cpan\build\Module-Runtime-0.014-yHdcFp
Has already been made
Running Build test
Has already been tested successfully
Running Build install
Already done
Running make for M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Has already been unwrapped into directory D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ
CPAN.pm: Building M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Warning: Prerequisite 'Module::Runtime => 0.014' for 'MATEU/MooX-Types-MooseLike-0.29.tar.gz' already built but the resu
lt looks suspicious. Skipping another build attempt, to prevent looping endlessly.
cp lib/MooX/Types/MooseLike.pm blib\lib\MooX\Types\MooseLike.pm
cp lib/MooX/Types/MooseLike/Base.pm blib\lib\MooX\Types\MooseLike\Base.pm
MATEU/MooX-Types-MooseLike-0.29.tar.gz
D:\strawberry\c\bin\dmake.exe -- OK
Running make test
D:\strawberry\perl\bin\perl.exe "-ID:/strawberry/perl/lib" "-ID:/strawberry/perl/lib" "-MExtUtils::Command::MM" "-e" "te
st_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/basic.t ........................ Can't locate Module/Runtime.pm in @INC (@INC contains: D:\strawberry\cpan\build\MooX-
Types-MooseLike-0.29-UaWuDZ\blib\lib D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ\blib\arch D:/strawberry/p
erl/lib D:/strawberry/perl/site/lib/MSWin32-x86-multi-thread D:/strawberry/perl/site/lib D:/strawberry/perl/vendor/lib D
:/strawberry/perl/lib .) at D:/strawberry/perl/lib/Moo/_Utils.pm line 23.
BEGIN failed--compilation aborted at D:/strawberry/perl/lib/Moo/_Utils.pm line 23.
Compilation failed in require at D:/strawberry/perl/lib/Moo.pm line 13.
BEGIN failed--compilation aborted at D:/strawberry/perl/lib/Moo.pm line 13.
Compilation failed in require at t/basic.t line 4.
BEGIN failed--compilation aborted at t/basic.t line 4.
t/basic.t ........................ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/builder.t ...................... Can't locate Module/Runtime.pm in @INC (@INC contains: D:\strawberry\cpan\build\MooX-
Types-MooseLike-0.29-UaWuDZ\blib\lib D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ\blib\arch D:/strawberry/perl/lib D:/strawberry/perl/site/lib/MSWin32-x86-multi-thread D:/strawberry/perl/site/lib D:/strawberry/perl/vendor/lib
而这个错误重复几次,所有的试验失败了,等等,等等
Files=14, Tests=0, 1 wallclock secs (0.06 usr + 0.03 sys = 0.09 CPU)
Result: FAIL
Failed 14/14 test programs. 0/0 subtests failed.
dmake.exe: Error code 130, while making 'test_dynamic'
MATEU/MooX-Types-MooseLike-0.29.tar.gz
one dependency not OK (Module::Runtime); additionally test harness failed
D:\strawberry\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports MATEU/MooX-Types-MooseLike-0.29.tar.gz
Running make install
make test had returned bad status, won't install without force
Stopping: 'install' failed for 'M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz'.
Failed during this command:
MATEU/MooX-Types-MooseLike-0.29.tar.gz : make_test NO one dependency not OK (Module::Runtime); additionally test
harness failed
所以,问题....
( 1)我需要做什么才能将Module :: Runtime放在正确的位置?我以前尝试改变目录对某些人有效,但不是这个。我宁愿d:\草莓\ perl的\ site \ lib文件 - 因为它似乎cpanm会把它的模块有,但d:\草莓\ perl的\ lib中会工作也没关系。
如果我们解决数(1)这并不重要,但我很好奇,如果任何人有一个答案:
(2)为什么不能CPAN找到模块::运行,当它在一个@INC的子目录?
所以我知道一个答案是重新安装草莓在正确的位置,但是这是一个生产框定运行Perl脚本,并没有停机时间,所以没有,这是不是一种选择。无论如何,他们不会允许我这样做。
在此先感谢您的帮助。
可能的工作方式:将'D:\ strawberry \ perl \ lib5'添加到'%PERL5LIB%' – mob
@mob这将适用于短期,我可以将它放在当前会话的环境变量中,并获取其他模块加载。但是,这种感觉就像一块骨头上的创可贴,因为它不一定能解决问题的根源。你确实说过这是一个解决方法。我还需要重新启动机器来更新机器其余部分的环境,这是我不幸的。所以,我希望能够解决问题的根源。正确安装模块,所以其他问题不会发生。感谢您的输入! – FrankRalphBob
@ikegami感谢您的输入。我们可以将这个答案冲出一点吗?我不熟悉不同的模块类型(MB = Module :: Build&MM = ExtUtils :: MakeMaker?)。我搜索了一些文件,但已经干了。是否有文档解释什么类型以及使用每种类型的后果?再次感谢。 – FrankRalphBob