INSTALL_BASE =〜/ perl5-不好-在安装Perl模块时

时间:2019-05-27 10:41:30

标签: perl module

我正在尝试在本地系统(Windows 7)中安装Perl模块之一。但是无法安装模块

这是它的显示内容

C:\Windows\system32>perl -MCPAN -e "install Net::SFTP"
Reading 'C:\Users\AppData\Local\.cpan\Metadata'
  Database was generated on Sun, 26 May 2019 05:17:03 GMT
Running install for module 'Net::SFTP'
Checksum for C:\Users\AppData\Local\.cpan\sources\authors\id\L\LK\LKINLE
Y\Net-SFTP-0.12.tar.gz ok
Configuring L/LK/LKINLEY/Net-SFTP-0.12.tar.gz with Makefile.PL
Checking if your kit is complete...
Looks good
Warning: prerequisite Math::Int64 0.54 not found.
Warning: prerequisite Net::SSH::Perl 2.12 not found.
The getpwuid function is unimplemented at C:/Perl64/lib/ExtUtils/MakeMaker.pm li
ne 1064.
Warning: No success on command[C:\Perl64\bin\perl.exe Makefile.PL INSTALL_BASE=~
/perl5]
  LKINLEY/Net-SFTP-0.12.tar.gz
  C:\Perl64\bin\perl.exe Makefile.PL INSTALL_BASE=~/perl5 -- NOT OK

之前运行良好,我已经安装了两个模块,不知道突然发生了什么。

请帮助我解决此问题。我需要在配置中进行任何修改吗?

1 个答案:

答案 0 :(得分:1)

您要告诉Perl进入~/perl5。这不是Windows路径,ExtUtils :: MakeMaker正在使用unix特定的函数(getpwuid)对其进行扩展。如果使用Windows路径,则问题应该会消失。

也就是说,如果您有权写入C:\Perl64\...,建议您通过删除INSTALL_BASE=~/perl5将模块安装到默认目录。

如果您无权写入C:\Perl64\...,建议您将Perl本身直接安装在您有权写入的目录中,然后通过以下方式将模块安装到默认目录中:删除INSTALL_BASE=~/perl5

由于您实际上没有在命令行上指定INSTALL_BASE=~/perl5,因此可以通过环境(PERL_MM_OPTPERL_MB_OPT)或cpan来指定它配置(o conf中的cpan)。