由于缺乏'make',Cpanm无法安装任何模块

时间:2015-11-26 01:23:05

标签: cpanm

我最近安装了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.用于表示错误,但我确实将make.exe与cpanm放在同一目录中。

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

我试图在Google上寻求帮助,但它提出了sudo apt-get install build-essentials - 就像建议一样。

3 个答案:

答案 0 :(得分:2)

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

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

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

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

perl -V:make

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我的情况与所描述的情况不同,但是出现了相同的错误消息。 我将docker image与Ubuntu 18.04.3 LTS一起使用,该镜像已预安装了Perl v5.26.1。 我的目标是安装DBI.pm Perl模块以与数据库进行交互。 经过一番研究,我发现可以使用名为cpanminus的其他软件来安装Perl模块。长话短说cpanm DBI返回了OP用You probably need to have 'make'错误消息描述的内容。然后,我尝试了michael.stapelberg提供的here解决方案:

  

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

我安装了build-essential软件包并尝试做cpanm DBI,但效果很好:

  

成功安装了DBI-1.642