首页 > 解决方案 > INSTALL_BASE=~/perl5 -- 不正常 - 安装 Perl 模块时

问题描述

我正在尝试在我的本地系统(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

它之前工作正常,我已经安装了几个模块,不知道突然发生了什么。

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

标签: perlmodule

解决方案


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

也就是说,如果您有权写入C:\Perl64\...,我建议您通过删除INSTALL_BASE=~/perl5.

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

由于您实际上并未INSTALL_BASE=~/perl5在命令行上指定,因此您是通过环境(PERL_MM_OPTand PERL_MB_OPT)或在cpan的配置中(o conffrom within cpan)指定它。


推荐阅读