【问题标题】:Cpanm fails to install any module due to supposed lack of 'make'由于假定缺少“make”,Cpanm 无法安装任何模块
【发布时间】:2019-10-12 15:33:49
【问题描述】:

我最近安装了 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 也可以工作。

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

【问题讨论】:

    标签: cpanm


    【解决方案1】:

    条目“你可能需要'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%。

    【讨论】:

    • 我真的无法再检查你的答案了,因为我已经很长时间没有确切的设置了。希望其他读者可以检查一下。
    【解决方案2】:

    我的情况与所描述的不同,但我收到了相同的错误消息。 我正在使用带有 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 提供的here 解决方案:

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

    我安装了 build-essential 包并尝试执行 cpanm DBI 并且效果很好:

    成功安装 DBI-1.642

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-04-04
        • 1970-01-01
        • 2019-04-11
        • 1970-01-01
        • 2022-10-16
        • 2021-12-29
        • 2011-10-11
        • 2016-06-04
        • 1970-01-01
        相关资源
        最近更新 更多