安装 CPAN 模块时“目标 'pm_to_blib' 的配方失败”(Text::CSV、Tie::RegexpHash、Log::Log4perl)

Posted

技术标签:

【中文标题】安装 CPAN 模块时“目标 \'pm_to_blib\' 的配方失败”(Text::CSV、Tie::RegexpHash、Log::Log4perl)【英文标题】:"recipe for target 'pm_to_blib' failed" when installing CPAN modules (Text::CSV, Tie::RegexpHash, Log::Log4perl)安装 CPAN 模块时“目标 'pm_to_blib' 的配方失败”(Text::CSV、Tie::RegexpHash、Log::Log4perl) 【发布时间】:2020-11-11 07:11:24 【问题描述】:

新电脑 Windows 10.0.17763 ActivePerl 5.28 MinGW(2020 年 7 月下载) 以管理员权限安装

当我尝试安装 Text::CSV(Text::CSV::Encoded 需要)时,我收到以下错误:

Writing Makefile for Text::CSV  
Writing MYMETA.yml and MYMETA.json  
ISHIGAKI/Text-CSV-2.00.tar.gz  
C:\Perl64\bin\perl.exe Makefile.PL INSTALLDIRS=site -- OK  
Running make for I/IS/ISHIGAKI/Text-CSV-2.00.tar.gz  
to undefined at C:/Perl64/site/lib/ExtUtils/Install.pm line 141.  

Makefile:945: recipe for target 'pm_to_blib' failed  
dmake: *** [pm_to_blib] Error 255
ISHIGAKI/Text-CSV-2.00.tar.gz  
C:\MinGW\bin\dmake.exe -- NOT OK  

当我尝试安装 Tie::RegexpHash 时会发生类似的情况。 据我所知,失败的步骤是将文件从一个位置复制到另一个位置,所以我认为这是一个设置问题。 任何帮助将不胜感激。

历史

以前的电脑死机,重新安装。安装程序在以前的安装中运行良好(使用以前版本的 ActivePerl)。 我尝试安装之前设置中安装的 CPAN 模块(Text::CSV、Text::CSV::Encoded、Tie::RegexpHash),但尝试时收到 pm_to_blib 错误。 我更新了 CPAN,效果很好。

完整安装日志:

C:\Windows\system32>cpan "Text::CSV"  
Loading internal logger. Log::Log4perl recommended for better logging  
Reading 'C:\Perl64\cpan\Metadata'  
  Database was generated on Tue, 21 Jul 2020 02:17:03 GMT  
Running install for module 'Text::CSV'  
CPAN: Digest::SHA loaded ok (v6.01)  
CPAN: Compress::Zlib loaded ok (v2.092)  
Checksum for C:\Perl64\cpan\sources\authors\id\I\IS\ISHIGAKI\Text-CSV-2.00.tar.gz ok  
CPAN: Archive::Tar loaded ok (v2.30)  
CPAN: YAML::XS loaded ok (v0.69)  
CPAN: CPAN::Meta::Requirements loaded ok (v2.140)  
CPAN: Parse::CPAN::Meta loaded ok (v2.150010)  
CPAN: CPAN::Meta loaded ok (v2.150010)  
CPAN: Module::CoreList loaded ok (v5.20181129_28)  
Configuring I/IS/ISHIGAKI/Text-CSV-2.00.tar.gz with Makefile.PL  
Welcome to Text::CSV (v.2.00)  
=============================  
You have Text::CSV_XS (v.1.34), so Text::CSV can work very fast!!  
  
Checking if your kit is complete...  
Looks good  
Generating a dmake-style Makefile  
Writing Makefile for Text::CSV  
Writing MYMETA.yml and MYMETA.json  
  ISHIGAKI/Text-CSV-2.00.tar.gz  
  C:\Perl64\bin\perl.exe Makefile.PL INSTALLDIRS=site -- OK  
Running make for I/IS/ISHIGAKI/Text-CSV-2.00.tar.gz  
to undefined at C:/Perl64/site/lib/ExtUtils/Install.pm line 141.  
Makefile:945: recipe for target 'pm_to_blib' failed  
dmake: *** [pm_to_blib] Error 255  
  ISHIGAKI/Text-CSV-2.00.tar.gz  
  C:\MinGW\bin\dmake.exe -- NOT OK  

【问题讨论】:

你试过Strawberry Perl 吗?另见dmake is not recognized command when installing module from CPAN、ppm doesn't work after installing ActiveState Perl、Why will it not install DBI? 谢谢,Håkon Hægland。我确实看到了很多使用 Strawberry Perl 的建议。我试图避免改变,尤其是当 ActivePerl 以前对我工作得很好的时候。我能够使用 dmake(实际上是 MinGW 的 make)升级 CPAN,并且我认为它确实包括 DBI。 (我跳过了特定于进度的驱动程序。)我会看看你提供的链接。非常感谢! 【参考方案1】:

卸载 ActivePerl 并安装 Strawberry Perl 确实成功了。

可能是因为最新版本的 ActivePerl 不再具有 ppm(您必须将 CPAN 模块构建到您下载的 Perl 中——如果它们有的话),cpan 不再起作用。

再次感谢 Håkon Hægland

【讨论】:

以上是关于安装 CPAN 模块时“目标 'pm_to_blib' 的配方失败”(Text::CSV、Tie::RegexpHash、Log::Log4perl)的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CPAN 模块安装到本地目录中?

如何安装PAMIE模块

安装 CPAN 模块时“目标 'pm_to_blib' 的配方失败”(Text::CSV、Tie::RegexpHash、Log::Log4perl)

centos环境下使用CPAN安装perl模块

如何获取已安装 CPAN 模块的列表?

我用 CPAN 成功安装了一个模块,但是 perl 找不到它。为啥?