1

我目前有一个带有 XAMPP 的 Windows XP Pro SP3 服务器。我今天早些时候下载了 XAMPP 的 Perl 插件,它安装没有问题。安装后,我可以使用浏览器访问服务器上的 .pl 文件,并且它们可以正常执行。我现在正在尝试使用 CPAN 安装一些 Perl 模块,并且在此过程中我收到了一些错误消息,并且模块没有安装。我不熟悉 Perl,如果有任何帮助,我将不胜感激。以下是我尝试安装模块时发生的情况:

cpan[4]> install Task::Kensho
Running install for module 'Task::Kensho'
Running make for A/AP/APEIRON/Task-Kensho-0.31.tar.gz
CPAN: LWP::UserAgent loaded ok (v5.817)

I would like to connect to one of the following sites to get 'authors/id/A/AP/AP
EIRON/Task-Kensho-0.31.tar.gz':

 http://www.perl.org/CPAN/
 ftp://ftp.perl.org/pub/CPAN/

Is it OK to try to connect to the Internet? [yes] yes
Fetching with LWP:
  http://www.perl.org/CPAN/authors/id/A/AP/APEIRON/Task-Kensho-0.31.tar.gz
CPAN: Digest::SHA loaded ok (v5.45)
Fetching with LWP:
  http://www.perl.org/CPAN/authors/id/A/AP/APEIRON/CHECKSUMS
Checksum for \.cpan\sources\authors\id\A\AP\APEIRON\Task-Kensho-0.31.tar.gz ok
Scanning cache \.cpan\build for sizes
............................................................................DONE

The system cannot find the path specified.
Uncompressed \.cpan\sources\authors\id\A\AP\APEIRON\Task-Kensho-0.31.tar.gz succ
essfully
Using Tar:"C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\bin\tar.EXE" xvf "
Task-Kensho-0.31.tar":
The system cannot find the path specified.
Couldn't untar Task-Kensho-0.31.tar
CPAN: File::Temp loaded ok (v0.18)
Package seems to come without Makefile.PL.
  (The test -f "\.cpan\build\APEIRON-zQFric\Makefile.PL" returned false.)
  Writing one on our own (setting NAME to TaskKensho)
  Had problems unarchiving. Please build manually
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Failed during this command:
 APEIRON/Task-Kensho-0.31.tar.gz              : unwrapped NO -- untar failed

这个特定的行:

Using Tar:"C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\bin\tar.EXE" xvf "

正在引用我的系统上没有的文件和目录。我不确定这有什么意义,但我想我会指出这一点。

任何帮助是极大的赞赏!

更新:@daxim,谢谢你的建议。我安装了 Strawberry Perl,并且能够为我尝试使用 cpan install [模块名称] 运行的脚本安装所有必需的模块。但是,当我使用 Web 浏览器访问脚本时,它无法编译,并且我在 Apache 错误日志中得到了这个:

[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1] Can't load 'C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll' for module XML::LibXML: load_file:The specified module could not be found at C:/strawberry/perl/lib/DynaLoader.pm line 200.\r
[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1]  at C:/strawberry/perl/site/lib/XML/LibXML.pm line 154\r
[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1] BEGIN failed--compilation aborted at C:/strawberry/perl/site/lib/XML/LibXML.pm line 154.\r
[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1] Compilation failed in require at C:/strawberry/perl/site/lib/XML/LibXML/SAX.pm line 17.\r
[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1] BEGIN failed--compilation aborted at C:/strawberry/perl/site/lib/XML/LibXML/SAX.pm line 17.\r
[Sun Jan 08 13:03:15 2012] [error] [client 192.168.1.1] Compilation failed in require at (eval 27) line 1.\r

我确实安装了 XML::LibXML 以及其他必需的模块。再次感谢任何帮助!

4

2 回答 2

1

我也在为来自 Strawberry Perl 的相同错误消息而苦苦挣扎。

无法加载“C:/strawberry/perl/site/lib/auto/XML/LibXML/LibXML.dll”

我只看到 XML::LibXML 这个错误。也许与草莓 Perl 的 XML::LibXML 打包的 DLL 版本存在一些问题,但我不确定。

我终于安装了 Activestate Perl 并使用 Perl 附带的 PPM 工具来安装丢失的包,一切都很顺利。您还可以在 Windows 中尝试 PPM GUI:

开始菜单 → 所有程序 → ActivePerl 5.14.2 Build 1402 → Perl 包管理器。

于 2012-07-14T17:11:15.973 回答
1

我在工作中为此苦苦挣扎了 2 天。

问题实际上是 tar (和其他基于 Unix 的程序)的全局路径设置不正确。如果你在 Strawberry Perl 之前安装了 Git 或 Cygwin 之类的东西,就会发生这种情况,因为它们里面有 Perl,我认为这会导致这个问题。

诊断

cpan -J

检查 tar 是否设置为不正确的路径/usr/bin/tar

如果是...

解决方案

在命令行中:

perl -MCPAN -e shell

o conf init /tar/

从那里输入正确的完整路径到 Git 或 Cygwin 中的 tar 程序:

C:\\cygwin64\\bin\tar.exe

之后no当它询问您是否要使用外部命令而不是在 Perl 模块中构建时输入。

于 2017-07-19T12:18:33.227 回答