Windows XP上的CPAN问题

时间:2011-10-27 20:47:46

标签: perl cygwin cpan

我想在Windows机器上安装几个Perl模块。这是一个客户UAT盒子,所以我不知道它是如何配置的或者是谁。我们在Dev框上进行了安装,一切都按照宣传的方式进行。

该框正在运行Cygwin,并且已安装Perl 5.8.8。我无法更新或重新安装Cygwin。我必须使用我拥有的东西。

我尝试在系统上安装Spreadsheet :: Read,并收到以下错误:

  CPAN.pm: Going to build F/FD/FDALY/Test-Tester-0.107.tar.gz

 Checking if your kit is complete...
 Looks good
 Unable to find a perl 5 (by these names: /usr/bin/perl.exe perl.exe perl5.exe pe
 rl5.8.7.exe miniperl.exe, in these dirs: /usr/local/bin /usr/bin /bin /usr/X11R6
 /bin /cygdrive/d/oracle/product/10.2.0/client_1/bin /cygdrive/c/WINDOWS/system32
 /cygdrive/c/WINDOWS /cygdrive/c/WINDOWS/System32/Wbem /usr/bin /cygdrive/d/APPL
 IC~1/MCAFEE~1 /cygdrive/d/Applications/PowerCenter8.6.1/server/bin /usr/lib/lap

什么?它找不到Perl 5?它就在Cygwin的/usr/bin/perl.exe中!

make还存在一个问题,但一次只有一件事...... gcc安装在Cygwin上,所以这不是问题。

到底发生了什么事?我在/cygdrive/p/.cpan中有.cpan,但这是因为我的HOME目录已定义。 (这是公司的事情)。

有什么想法吗?

我需要安装Spreadsheet::ReadSpreadsheet::ParseExcelSpreadsheet::XLSX。如果CPAN没有做到这一点,或者是否需要编译的东西,是否可以进行安装?请记住,Make也在表现。


  

你有没有机会使用Strawberry Perl并留下Cygwin的头痛?

我已经问过了。答案是否定的。

  

你说你有5.8.8但它正在寻找perl5.8.7.exe。发布$ PATH。

这是Perl 5.8.7。我的错。

路径:

/usr/local/bin
/usr/bin
/bin
/usr/X11R6/bin
/cygdrive/d/oracle/product/10.2.0/client_1/bin
/cygdrive/c/WINDOWS/system32
/cygdrive/c/WINDOWS
/cygdrive/c/System32/Wbem
/usr/bin
/cygdrive/d/APPLIC~1/MFAFEE~1
/cygdrive/d/ApplicationsPowerCenter8.6.1/server/bin
/usr/lib/lapack
  

您是否检查了实际显示该消息的条件?

没有太大的条件。它下载了那条消息后的所有内容。

  

perl -le'print的输出是什么((-x“/usr/bin/perl.exe”)|| 0)'

您获胜:权限为-rwx------。我不敢相信我错过了。

  

/usr/bin/perl.exe -e的输出是什么“需要5;打印qq {VER_OK \ n}” - ikegami 1小时前

VER_OK


出于某种原因,我能够执行/ usr / bin / perl,当然CPAN必须(不是它是一个Perl程序吗?),但是当CPAN正在寻找它时,它无法找到它,因为权限搞砸了。

2 个答案:

答案 0 :(得分:2)

消息来自ExtUtils :: MakeMaker。该消息是由于找不到可以运行-e "require 5; print qq{VER_OK\n}"的目录(!-d)的可执行文件(-x)而产生的。

因此,请检查Perl的权限,

perl -le'print( (-x "/usr/bin/perl.exe") || 0 )' 

如果上述情况返回true,请确保以下操作:

/usr/bin/perl.exe -e "require 5; print qq{VER_OK\n}"

答案 1 :(得分:1)

我知道现在有点晚了(抱歉,只是看到了这个问题),这真的不能回答你的问题,但是对于那些你不能“搞乱”机器的情况你做的很多,我我们发现portable strawberry perl是解决某些问题的好办法。