6

我最近安装了 XAMPP。到目前为止一切都很好,但有一件事让我无法休息:我无法通过 cpanm 获取任何模块。典型的安装日志如下所示:

cpanm (App::cpanminus) 1.6005 on perl 5.016003 built for MSWin32-x86-multi-thread
Work directory is C:\Users\2B86~1/.cpanm/work/1448496711.6352
You have LWP 6.04
You have C:\Users\boss\AppData\Local\Atlassian\SourceTree\git_local\bin\tar.exe, C:\Users\boss\AppData\Local\Atlassian\SourceTree\git_local\bin\gzip.exe and C:\Users\boss\AppData\Local\Atlassian\SourceTree\git_local\bin\bzip2.exe
You have C:\Users\boss\AppData\Local\Atlassian\SourceTree\git_local\bin\unzip.exe
Searching DateTime::Tiny on cpanmetadb ...
--> Working on DateTime::Tiny
Fetching http://www.cpan.org/authors/id/A/AD/ADAMK/DateTime-Tiny-1.04.tar.gz
-> OK
Unpacking DateTime-Tiny-1.04.tar.gz
Entering DateTime-Tiny-1.04
Checking configure dependencies from META.yml
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.64)
Configuring DateTime-Tiny-1.04
Running Makefile.PL
-> OK
Checking dependencies from MYMETA.json ...
Checking if you have ExtUtils::MakeMaker 0 ... Yes (6.64)
-> FAIL Can't configure the distribution. You probably need to have 'make'. See C:\Users\2B86~1\.cpanm\build.log for details.

该行-> FAIL Can't configure the distribution. You probably need to have 'make'. See C:\Users\2B86~1\.cpanm\build.log for details.旨在指示错误,但我确实在与 cpanm 相同的目录中有 make.exe。

有点史前史,我在安装 xampp 之前安装了 Strawberry Perl,但不知道它已经内置了 Perl。发现我决定卸载前者后,cpanm突然开始遇到这个错误。我仔细检查了一下,在我安装的 Strawberry Perl 安装中没有发现 make.exe 的痕迹,但它工作得很好,虽然它们共存,但来自 xampp 的 cpanm 也可以工作。

我试图在谷歌上寻求帮助,但它提出了sudo apt-get install build-essentials类似的建议。

4

3 回答 3

4

条目“你可能需要'make'”。在日志中意味着 cpanm 无法找到您的 make 文件(例如 dmake.exe)的确切位置。在运行 cpanm 之前,该位置必须包含在您的 %PATH% 中。

例如,如果您使用 MSYS 和 MinGW 从源安装 Perl,请在运行 cpanm 之前执行以下命令:

set PATH=C:\MinGW\msys\1.0\bin;%PATH%

make 可执行文件必须与用于编译 Perl 的相同。您可以通过执行以下命令来检查您的 make 的确切名称:

perl -V:make

然后找到该可执行文件的路径并将其添加到 %PATH%。

于 2016-11-04T12:17:25.713 回答
1

我的情况与所描述的不同,但我收到了相同的错误消息。我正在使用带有 Ubuntu 18.04.3 LTS 的 docker 映像,它预装了 Perl v5.26.1。我的目标是安装 DBI.pm Perl 模块以与数据库交互。经过一番研究,我发现可以使用名为 cpanminus 的附加软件来安装 Perl 模块。长话短说cpanm DBI就是返回 OP 描述的You probably need to have 'make'错误消息。然后我尝试了 michael.stapelberg提供的解决方案:

显然,您的系统没有 make 命令,您需要安装 Perl 模块。在 Debian 上,使用:sudo apt-get install build-essential

我安装了 build-essential 包并尝试这样做cpanm DBI,它工作得很好:

成功安装 DBI-1.642

于 2019-10-12T07:33:49.070 回答
0

我在 Windows 10 64 位专业版上。我最近从 berrybrew 切换回 Strawberry perl 并且遇到了同样的问题。我能够通过完全卸载旧的 perl 并清除以下文件夹(在 C: 驱动器上搜索).cpanm、.cpantesters 和 .cpanreporter 来解决它。您可能只需要清除 .cpanm 文件夹,但我清除了其他文件夹。(在删除最后两个之前保存文件 metabase_id.json)事实证明,在我的情况下,新 perl 没有安装 App::cpanminus,所以当我安装新 perl 时,当我尝试运行 cpanm 时它丢失了Install::Some::App 因为它找到了文件夹,但不是所有的部分。

于 2016-05-22T19:53:39.847 回答