NET :: SSH :: Expect配置可以在Windows上运行

问题描述 投票:1回答:2

机器详细信息:Windows7,64位。我在eclipse中集成了perl并使用Net :: SSH :: Except模块进行脚本编写,但是因为Can't locate Net/SSH/Expect.pm in @INC (you may need to install the Net::SSH::Expect module) (@INC contains: C:/Perl64/site/lib/MSWin32-x64-multi-thread C:/Perl64/site/lib C:/Perl64/lib .)而出现错误

因此,我试图使用命令cpan>notest install IO::Tty安装IO :: Tty for Expect依赖项。我收到以下错误消息:并没有安装模块,甚至没有安装NET::SSH::Expect

cpan> notest install IO::Tty
Reading 'C:\Perl64\cpan\Metadata'
Database was generated on Mon, 11 Dec 2017 04:41:02 GMT
Fetching with LWP:
http://ppm.activestate.com/CPAN/authors/01mailrc.txt.gz
Reading 'C:\Perl64\cpan\sources\authors\01mailrc.txt.gz'

.............................................................DONE

Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/02packages.details.txt.gz
Reading 'C:\Perl64\cpan\sources\modules\02packages.details.txt.gz'
Database was generated on Tue, 12 Dec 2017 04:29:02 GMT
.............
**New CPAN.pm version (v2.16) available.
[Currently running version is v2.1101]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving
the current session.**


..............................................................DONE
Fetching with LWP:
http://ppm.activestate.com/CPAN/modules/03modlist.data.gz
Reading 'C:\Perl64\cpan\sources\modules\03modlist.data.gz'
DONE
Writing C:\Perl64\cpan\Metadata
Running install for module 'IO::Tty'
Checksum for C:\Perl64\cpan\sources\authors\id\T\TO\TODDR\IO-Tty-1.12.tar.gz 
ok
Scanning cache C:\Perl64/cpan/build for sizes
...............................................................DONE

IO-Tty-1.12/
IO-Tty-1.12/ChangeLog
IO-Tty-1.12/Makefile.PL
IO-Tty-1.12/MANIFEST
IO-Tty-1.12/META.json
IO-Tty-1.12/META.yml
IO-Tty-1.12/Pty.pm
IO-Tty-1.12/README
IO-Tty-1.12/t/
IO-Tty-1.12/try
IO-Tty-1.12/Tty.pm
IO-Tty-1.12/Tty.xs
IO-Tty-1.12/t/test.t
Configuring T/TO/TODDR/IO-Tty-1.12.tar.gz with Makefile.PL
This module requires a POSIX compliant system to work. Try cygwin if you 
need this module on windows OS unsupported at Makefile.PL line 6.
Warning: No success on command[C:\Perl64\bin\perl.exe Makefile.PL 
INSTALLDIRS=site]
TODDR/IO-Tty-1.12.tar.gz
C:\Perl64\bin\perl.exe Makefile.PL INSTALLDIRS=site -- NOT OK
Failed during this command:
TODDR/IO-Tty-1.12.tar.gz                     : writemakefile NO 
'C:\Perl64\bin\
perl.exe Makefile.PL INSTALLDIRS=site' returned status 65280

我已经尝试使用以下命令安装IO :: Tty cpanm --install IO::Tty cpanm --verbose IO::Tty cpanm --force IO::Tty全部失败,这可能是由于perl的较低版本。什么是从cmd升级cpan以及通过cmd升级perl的命令?

perl cmd cpan
2个回答
1
投票

遗憾的是,Perl Expect模块需要基于UNIX的操作系统才能运行。我已经在Windows平台上实现了几次,基本上你需要安装一个较旧的ActiveState ActiveCL发行版,然后你可以让Perl脚本调用一个外部EXPECT脚本,如下所示:

$expectOutput = `[path_to_expect_script.expect]`;

然后,您的变量将包含Expect脚本的输出。

希望这可以帮助!

编辑:您可能想重新命名您的标题,以吸引更多与在Windows上使用expect相关的答案。


0
投票

解决了!

  • 新版本的Expect与windows兼容,但需要与cygwin一起安装..
  • 在eclipse中,将解释器设为cygwin(windows - > preference - > EPIC Perl - > interpreter)。

并执行脚本:)

© www.soinside.com 2019 - 2024. All rights reserved.