我试图在32位Strawberry Perl 5.18.2.2和/或5.20.2.1中运行cpan App :: cpanminus,并且两个实例都失败并出现相同的错误:
以下是最后几行日志:
Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for App::cpanminus
Writing MYMETA.yml and MYMETA.json
MIYAGAWA/App-cpanminus-1.7030.tar.gz
C:\Strawberry\perl\bin\perl.exe Makefile.PL -- OK
Running make for M/MI/MIYAGAWA/App-cpanminus-1.7030.tar.gz
C:Strawberryperlbinperl.exe: not found
dmake.exe: Error code 255, while making 'blib\lib\App\.exists'
MIYAGAWA/App-cpanminus-1.7030.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Stopping: 'install' failed for 'App::cpanminus'.
环境是在OS X 10.8.5上的Parallels vm 9.0.24251中运行的XP SP3。这是一个很长的故事,为什么我这样运行XP。我只想说,我必须说。草莓Perl运行得非常好,比OS X中的原生Perl 5.12.4更好或更好,但事实上我无法让cpan App :: cpanminus工作让我非常,非常不舒服。用OJ来解释:"如果手套不合适,你就不能定罪" ..."如果脚本无法构建,则您无法信任该傻瓜。"
注意该错误消息如何挤出dir节点之间的斜杠。我用“' /'编码$ PATH和' \'并且错误是一样的。
我从5.18升级到5.20,看看是否能解决问题。它没有...所以问题几乎肯定在我的环境中......或者它的飞行员错误: - (
非常感谢任何想法并感谢您的阅读。
答案 0 :(得分:0)
你安装了mks吗?要查看是否使用cmd.exe,请尝试
reg query "HKCU\Software\Microsoft\Command Processor"
根据How can I make Strawberry Perl's cpan(1) find perl? mks设置一个env var shell,你应该在运行cpan之前禁用它
set shell=
或者如果这不起作用,并且cmd.exe扩展名编辑你的perl配置(lib\Config_heavy.pl
)以忽略/禁用命令扩展名,意味着从
$ perl -V:sh
sh='cmd /x /c';
更改为cmd /E:off /c
又名cmd /y /c
,表示/E:OFF Disable command extensions
答案 1 :(得分:0)
谢谢@ikegami,但我几乎从不运行cmd.exe;总是sh.exe,正如@optional正确推断的那样。