Strawberry Perl安装ExtUtils::MakeMaker及GD、Chart模块失败排查
Windows下Strawberry Perl通过cpanm安装GD、Chart模块失败故障解决
- 问题场景:Windows 10 Pro设备上,使用cpanm为Strawberry Perl安装GD、Chart模块时,两个模块共同依赖的ExtUtils::MakeMaker组件安装失败,报错无明确指向,无法直接定位故障点。
初始报错记录
首次执行cpanm Chart命令的终端输出:
cpanm Chart --> Working on Chart Fetching http://www.cpan.org/authors/id/L/LI/LICHTKIND/Chart-v2.402.1.tar.gz ... OK ==> Found dependencies: ExtUtils::MakeMaker --> Working on ExtUtils::MakeMaker Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.64.tar.gz ... OK Configuring ExtUtils-MakeMaker-7.64 ... N/A ! Configure failed for ExtUtils-MakeMaker-7.64. See C:\Users\..user-name..\.cpanm\work\1655122864.2228\build.log for details. Configuring Chart-v2.402.1 ... N/A ! Configure failed for Chart-v2.402.1. See C:\Users\..user-name..\.cpanm\work\1655122864.2228\build.log for details.
对应build.log日志内容:
cpanm (App::cpanminus) 1.7046 on perl 5.012003 built for MSWin32-x86-multi-thread Work directory is C:\Users\..user-name../.cpanm/work/1655122864.2228 You have make C:\Strawberry\c\bin\dmake.exe You have LWP 6.02 Falling back to Archive::Tar 1.76 Searching Chart () on cpanmetadb ... --> Working on Chart Fetching http://www.cpan.org/authors/id/L/LI/LICHTKIND/Chart-v2.402.1.tar.gz -> OK Unpacking Chart-v2.402.1.tar.gz Entering Chart-v2.402.1 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 6.58 ... No (6.56 < 6.58) ==> Found dependencies: ExtUtils::MakeMaker Searching ExtUtils::MakeMaker (6.58) on cpanmetadb ... --> Working on ExtUtils::MakeMaker Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/ExtUtils-MakeMaker-7.64.tar.gz -> OK Unpacking ExtUtils-MakeMaker-7.64.tar.gz Entering ExtUtils-MakeMaker-7.64 Checking configure dependencies from META.json Configuring ExtUtils-MakeMaker-7.64 Running Makefile.PL -> N/A -> FAIL Configure failed for ExtUtils-MakeMaker-7.64. See C:\Users\..user-name..\.cpanm\work\1655122864.2228\build.log for details. Configuring Chart-v2.402.1 Running Makefile.PL -> N/A -> FAIL Configure failed for Chart-v2.402.1. See C:\Users\..user-name..\.cpanm\work\1655122864.2228\build.log for details.
排查过程
- 第一轮尝试:将Perl升级至最新版本5.32.1.1,升级后系统自带ExtUtils::MakeMaker 7.58版本,已满足≥6.58的依赖要求,但Chart模块配置阶段依然报错失败,对应build.log内容如下:
cpanm (App::cpanminus) 1.7046 on perl 5.032001 built for MSWin32-x86-multi-thread-64int Work directory is C:\Users\...user-name.../.cpanm/work/1655143835.7588 You have make C:\Strawberry\c\bin\gmake.exe You have LWP 6.52 Falling back to Archive::Tar 2.38 Searching Chart () on cpanmetadb ... --> Working on Chart Fetching http://www.cpan.org/authors/id/L/LI/LICHTKIND/Chart-v2.402.1.tar.gz -> OK Unpacking Chart-v2.402.1.tar.gz Entering Chart-v2.402.1 Checking configure dependencies from META.json Checking if you have ExtUtils::MakeMaker 6.58 ... Yes (7.58) Configuring Chart-v2.402.1 Running Makefile.PL -> N/A -> FAIL Configure failed for Chart-v2.402.1. See C:\Users\...user-name...\.cpanm\work\1655143835.7588\build.log for details.
- 第二轮尝试:为cpanm添加
-v(详细输出)参数执行安装,Chart模块意外安装成功,暂不明确-v参数影响安装结果的原因;但使用相同参数安装GD模块时,仍出现同类配置报错,对应build.log内容如下:
cpanm (App::cpanminus) 1.7046 on perl 5.032001 built for MSWin32-x86-multi-thread-64int Work directory is C:\Users\...user-name.../.cpanm/work/1655147078.2428 You have make C:\Strawberry\c\bin\gmake.exe You have LWP 6.52 Falling back to Archive::Tar 2.38 Searching GD () on cpanmetadb ... --> Working on GD Fetching http://www.cpan.org/authors/id/R/RU/RURBAN/GD-2.76.tar.gz -> OK Unpacking GD-2.76.tar.gz Entering GD-2.76 Checking configure dependencies from META.json Checking if you have ExtUtils::PkgConfig 0 ... Yes (1.16) Checking if you have ExtUtils::Constant 0.22 ... Yes (0.25) Configuring GD-2.76 Running Makefile.PL -> N/A -> FAIL Configure failed for GD-2.76. See C:\Users\...user-name...\.cpanm/work/1655147078.2428\build.log for details.
注:上述日志最后一行提示的build.log路径即为当前展示的日志文件本身,存在自引用问题,排查时需注意该特殊情况。
根因与修复方案
- 故障根因:系统PATH环境变量缺失Windows核心系统路径,包括
C:\Windows、C:\Windows\System32、C:\Windows\System32\Wbem,导致模块配置阶段调用系统基础组件失败,且无明确错误信息抛出。 - 修复操作:将上述缺失的核心系统路径补全至系统PATH环境变量后,重新执行安装操作,GD、Chart模块均安装成功。
- 遗留问题:目前暂未明确核心系统路径从PATH中丢失的具体原因。
内容的提问来源于stack exchange,提问作者Jay C
相关产品推荐
相关产品推荐

