CPAN“。”未被识别为内部或外部命令 - Windows 10

Posted

技术标签:

【中文标题】CPAN“。”未被识别为内部或外部命令 - Windows 10【英文标题】:CPAN "." is not recognized as an internal or external command - Windows 10 【发布时间】:2020-12-09 05:50:03 【问题描述】:

尝试在 Windows 10 机器上安装 PAM 模块。目前运气不太好。不知道为什么我会收到这个错误。

cpan> install Authen::PAM
Running install for module 'Authen::PAM'
Checksum for C:\STRAWB~1\cpan\sources\authors\id\N\NI\NIKIP\Authen-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:\Strawberry\perl\bin\perl.exe Makefile.PL]
  NIKIP/Authen-PAM-0.16.tar.gz
  C:\Strawberry\perl\bin\perl.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:\Strawberry\perl\bin\perl.exe Makefile.PL' returned status 512

【问题讨论】:

. 是 Unix/Linux 系统上的内置 shell 命令。好像这个模块不能安装在 Windows 上。虽然您可以让 Bash 在 Windows 上运行,但这可能无济于事,因为 PAM 库无论如何都不支持 Windows。 @amon,它实际上使用的是./confgiure,而不是.。 Windows 认为这意味着程序 . 带有参数 /configure。用system('"./configure"')system(".\\configure")system("configure") 替换system("./configure") 将不起作用。它们都会按预期执行包含的 configure 脚本,但它是 Bourne shell 脚本,所以它不起作用。 【参考方案1】:

该模块不支持 Windows。

具体来说,该错误是由于模块的安装程序与 Windows 不兼容造成的。它尝试执行 Bourne shell 命令来调用 Bourne shell 脚本,而您的机器上没有这样的 shell。即使您可以安装这样的外壳,也无济于事。该脚本仅适用于 unixy 系统。[1]


    有多种方法可以在 Windows 上创建 unixy 环境。由 Windows Subsystem for Linux (WSL)、Cygwin 和 MSYS 创建的虚拟环境可能支持该模块,但必须使用这些环境中的 perl

【讨论】:

以上是关于CPAN“。”未被识别为内部或外部命令 - Windows 10的主要内容,如果未能解决你的问题,请参考以下文章

CMD: '■m' 未被识别为内部或外部命令

VS2012:'nmake' 未被识别为内部或外部命令

PHP:'java' 未被识别为内部或外部命令

npm 命令返回消息 -g' 未被识别为内部或外部命令

我收到此错误“'npx' 未被识别为内部或外部命令,” [重复]

tsc 未被识别为内部或外部命令