perl - Windows XP 上的 CPAN 问题

标签 perl cygwin cpan

我打算在 Windows 机器上安装一些 Perl 模块。这是一个客户 UAT 盒子,所以我不知道它是如何配置的或由谁配置的。我们在开发盒上进行了安装,一切都按照广告进行。

该盒子正在运行 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 也在发挥作用。


Any chance you can use Strawberry Perl and leave the Cygwin headaches behind?

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

You say you have 5.8.8 but it is looking for perl5.8.7.exe. Post the $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

Did you check what condition actually displays that message?

没有太多条件。它下载了该消息之后的所有内容。

What's the output of perl -le'print( (-x "/usr/bin/perl.exe") || 0 )'

你赢了:权限是-rwx-----。我不敢相信我错过了这一点。

What's the output of /usr/bin/perl.exe -e "require 5; print qq{VER_OK\n}" – ikegami 1 hour ago

VER_OK


由于某种原因,我能够执行/usr/bin/perl,当然CPAN也必须执行(这不是一个Perl程序吗?),但是当CPAN寻找它时,它找不到它,因为权限被搞乱了。

最佳答案

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

所以,检查你的 Perl 的权限,

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

如果上述返回 true,请确保以下运行:

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

关于perl - Windows XP 上的 CPAN 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922193/

相关文章:

linux - 是否有任何 Perl 模块来替换旧的镜像模块?

linux - Perl 脚本使用 gpg 与 CLI gpg?

c++ - cygwin pthread_mutex_timedlock 代理

windows - 无法安装 perl CPAN 模块 POSIX::strptime

perl - 如何报告 CPAN 模块错误

c# - 嵌入 Perl 解释器

perl - 如何告诉 perl 打印到文件句柄而不是打印文件句柄?

windows - Babun 或 Cygwin 与 meteor

linux - 在cygwin中执行kinit时遇到 "fatal error - NtCreateEvent(lock): 0xC0000077"