【问题标题】:Having trouble installing a CPAN module on Strawberry Perl running on Windows 7在 Windows 7 上运行的 Strawberry Perl 上安装 CPAN 模块时遇到问题
【发布时间】:2017-10-14 18:30:04
【问题描述】:

我在 Windows 7 系统上安装了 Strawberry Perl。还有一个 MinGW 安装位于 C:\MinGW\msys\bin (我的 make.exe 所在的位置)。 Strawberry 位于 c:\Strawberry\Perl\bin。

我正在尝试将 HTML::TableContentParser 安装到本地库中,安装模块的脚本失败并出现“找不到指定的路径”错误,并告诉我手动构建,我不知道怎么办,一直找不到有效的说明。它总是以某种方式返回到 makefile。

这是我从 c:\strawberry\perl\bin 目录运行“cpan HTML::TableContentParser”时得到的结果:

C:\Users\joel>cd c:\strawberry\perl\bin

c:\Strawberry\perl\bin>cpan HTML::TableContentParser
Loading internal null logger. Install Log::Log4perl for logging messages
CPAN: Storable loaded ok (v2.56_01)
Reading '\c\Users\joel\.cpan\Metadata'
  Database was generated on Mon, 15 May 2017 15:54:01 GMT
Running install for module 'HTML::TableContentParser'
CPAN: Digest::SHA loaded ok (v5.96)
CPAN: Compress::Zlib loaded ok (v2.07)
Checksum for \c\Users\joel\.cpan\sources\authors\id\S\SD\SDRABBLE\HTML-       TableContentParser-0.13.tar.gz ok
The system cannot find the path specified.
Uncompressed \c\Users\joel\.cpan\sources\authors\id\S\SD\SDRABBLE\HTML-TableContentParser-0.13.tar.gz successfully
Using Tar:/usr/bin/tar xf "HTML-TableContentParser-0.13.tar":
The system cannot find the path specified.
Couldn't untar HTML-TableContentParser-0.13.tar: child exited with value 1
CPAN: YAML loaded ok (v1.21)
  SDRABBLE/HTML-TableContentParser-0.13.tar.gz
  Had problems unarchiving. Please build manually

【问题讨论】:

  • 您最好依赖 MinGW 和与 Strawberry Perl 捆绑的各种实用程序,而不是混合来自不同来源的工具。另外,手动安装只是意味着tar xvf HTML-TableContentParser-0.13.tar.gz; cd HTML-TableContentParser-0.13; perl Makefile.PL; make; make test; make install
  • 我不相信你运行正确cpan。如果你改用.\cpan.bat HTML::TableContentParser,你会得到不同的结果吗?
  • 感谢您的回答。我尝试了手动步骤,运行 make 失败,我注意到输出“dmake-style makefile”中的单词“dmake”,所以我查看了 Strawberry\perl\bin 文件夹,并看到一个名为 dmake.exe 的文件。尝试运行那并且它起作用了,所以我认为我终于到达了某个地方。但是下一个手动步骤“make test”失败了,现在开始看起来有问题,这让我想到了第二个答案。我该怎么做知道我正在安装正确的 cpan 模块吗?我认为它会获得最新、最好的版本。我之前没有将 CPAN 与 Strawberry 一起使用。

标签: perl cpan


【解决方案1】:

尝试以下方法:

  1. 不要使用单独的 MinGW,它已经与 Strawberry Perl 打包在一起。确保您拥有最新版本的 Strawberry Perl。

  2. 从任何站点(Metacpan 或 Cpan)下载 perl 模块的 tar.gz。

  3. 使用 winzip 解压,将所有文件解压到一个位置。

  4. 现在打开命令提示符并将目录更改为您为 perl 模块提取 tar.gz 的目录。

  5. 然后运行以下命令:

    • perl Makefile.pl
    • dmake
    • dmake 测试
    • dmake 安装

命令 dmake test one 是可选的,如果您在此处遇到错误,请尝试跳到下一个命令并尝试在脚本中使用该模块。多次测试失败并不意味着模块无法安装或正常工作。如果有错误,模块也会在安装时出错。

确保在解压目录中有 Makefile.pl 文件。这将毫无问题地安装模块。

我假设您正在使用 Windows 系统。如果您仍然遇到任何错误,请告诉我。

【讨论】:

  • 在 dmake 测试步骤中出错:我的一些输出如下测试摘要报告 -------------------- t/1.t (Wstat: 0 次测试:10 次失败:0) 解析错误:错误的计划。您计划进行 34 次测试,但运行了 10 次。 Files=1, Tests=10, 1 wallclock secs (0.09 usr + 0.00 sys = 0.09 CPU) 结果:FAIL 1/1 测试程序失败。 0/10 子测试失败。 dmake:错误代码 255,同时制作“test_dynamic”
  • 您是否首先从环境变量中删除了您单独存在的 MinGW 的路径。我认为它仍然存在,因为该测试使用的是相同的 MinGW,而您没有使用 Strawberry perl。
  • 也可以尝试跳过测试命令直接安装。跳过 dmake 测试,看看你是否能够在你的脚本中使用它。
  • 现在知道了,安装了一个模块。做了一个 --force 安装,将它放在本地库中(在我的桌面上),但在我的笔记本电脑上失败了。然后在 cpan 网站上找到了一个提示,它说安装和使用 cpanm(我应该先这样做)。它将它安装在我的笔记本电脑上的 \strawberry\perl\site\lib 文件夹中。我已经运行了一个 Perl Cookbook 程序来测试它。工作正常,只是食谱程序显然是为不同版本的网站编写的。但我看到表数据移动到调试器中的数据结构中。谢谢大家。
  • @Mohit 我认为答案需要更新,因为我发现声明说dmakegmake 取代
猜你喜欢
  • 1970-01-01
  • 2017-12-16
  • 2017-07-19
  • 2012-07-29
  • 2011-11-02
  • 2017-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多