cpan App::cpanminus завершается ошибкой с идентичной ошибкой в ​​Straw 5.18 и 5.20

Я пытаюсь запустить cpan App::cpanminus в 32-битном Strawberry Perl 5.18.2.2 и / или 5.20.2.1, и оба экземпляра завершаются с ошибкой:

Вот последние несколько строк журнала:

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'.

Средой является XP SP3, работающий в Parallels vm 9.0.24251 на OS X 10.8.5. Это длинная история, почему я запускаю XP таким образом. Достаточно сказать, что я ДОЛЖЕН. Strawberry Perl работает превосходно, так же хорошо или лучше, чем родной Perl 5.12.4 в OS X, но тот факт, что я не могу заставить работать cpan App::cpanminus, делает меня очень, очень неудобным. Перефразируя OJ: "если перчатки не подходят, вы не можете осудить"... "если сценарий не удастся построить, вы не можете доверять присоске".

Обратите внимание, как это сообщение об ошибке выдавливает косые черты между узлами dir. Я кодировал $PATH с помощью '/' и '\', и ошибка та же.

Я обновил до 5.20 с 5.18, чтобы посмотреть, решит ли это проблему. Это не... так что проблема почти наверняка в моей среде... или это ошибка пилота:-(

Любые идеи будут с благодарностью и спасибо за чтение.

2 ответа

Решение

У вас установлен мкс? Чтобы увидеть, если вы делаете из cmd.exe попробуйте

reg query "HKCU\Software\Microsoft\Command Processor"

В соответствии с тем, как я могу сделать так, чтобы cpan(1) Strawberry Perl находил perl? mks устанавливает оболочку env var, которую вы должны отключить перед запуском cpan

set shell=

или если это не работает, и его расширения cmd.exe отредактируйте ваш Perl Config (lib\Config_heavy.pl) игнорировать / отключать расширения команд, то есть менять их с

$ perl -V:sh
sh='cmd /x /c';

изменить в cmd /E:off /c ака cmd /y /c где это значит /E:OFF Disable command extensions

Спасибо @ikegami, но я почти никогда не запускаю cmd.exe; всегда sh.exe, как правильно понял @optional.

Другие вопросы по тегам