CPAN «.» не распознается как внутренняя или внешняя команда — Windows 10

#windows #perl #cpan #pam #strawberry-perl

#Windows #perl #cpan #pam #strawberry-perl

Вопрос:

Пытаюсь установить модуль PAM на компьютер с Windows 10. в настоящее время не очень повезло. не уверен, почему я получаю эту ошибку.

 cpan> install Authen::PAM
Running install for module 'Authen::PAM'
Checksum for C:STRAWB~1cpansourcesauthorsidNNINIKIPAuthen-PAM-0.16.tar.gz ok
Configuring N/NI/NIKIP/Authen-PAM-0.16.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
'.' is not recognized as an internal or external command,
operable program or batch file.
Error in configuring the Authen::PAM module.
Warning: No success on command[C:Strawberryperlbinperl.exe Makefile.PL]
  NIKIP/Authen-PAM-0.16.tar.gz
  C:Strawberryperlbinperl.exe Makefile.PL -- NOT OK
Stopping: 'install' failed for 'Authen::PAM'.
Failed during this command:
 NIKIP/Authen-PAM-0.16.tar.gz                 : writemakefile NO 'C:Strawberryperlbinperl.exe Makefile.PL' returned status 512
  

Комментарии:

1. . является встроенной командной оболочкой в системах Unix / Linux. Похоже, этот модуль не может быть установлен в Windows. Хотя вы могли бы заставить Bash работать в Windows, это, скорее всего, не поможет, потому что библиотека PAM все равно не поддерживает Windows.

2. @amon, на самом деле он использует ./confgiure , а не . . Windows принимает это за программу . с аргументом /configure . Однако замена system("./configure") на system('"./configure"') , system(".\configure") или system("configure") не сработает. Все они выполнят включенный configure скрипт по назначению, за исключением того, что это скрипт Bourne shell, поэтому он не будет работать.

Ответ №1:

Модуль не поддерживает Windows.

В частности, ошибка возникает из-за того, что установщик модуля несовместим с Windows. Он пытается выполнить команду Bourne shell для вызова сценария Bourne shell, а на вашем компьютере такой оболочки нет. Даже если бы вы могли установить такую оболочку, это не помогло бы. Скрипт в значительной степени предназначен только для систем unixy.[1]


  1. Существуют способы создания unixy-сред в Windows. Виртуальные среды, такие как созданные подсистемой Windows для Linux (WSL), Cygwin и MSYS, могут поддерживать модуль, но perl из этих сред придется использовать.