Cpanm не может установить какой-либо модуль из-за предполагаемого отсутствия «make»

Недавно я установил 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.

Немного предыстории: я установил Strawberry Perl до установки xampp, не зная, что Perl уже встроен. Обнаружив это, я решил удалить прежний, и cpanm внезапно начал сталкиваться с этой ошибкой. Я перепроверил и не нашел следов make.exe в моей установке Strawberry Perl, но она работала вполне нормально, и хотя они сосуществовали, cpanm из xampp тоже работал.

Я пытался обратиться за помощью в Google, но он выдавал советы, похожие на sudo apt-get install build-essentials.


person ZzZombo    schedule 26.11.2015    source источник


Ответы (3)


Запись «Возможно, вам нужно иметь 'make'». в журнале означает, что cpanm не может найти точное местоположение вашего make-файла (например, dmake.exe). Это местоположение должно быть включено в ваш %PATH% перед запуском cpanm.

Например, если вы установили Perl из исходного кода с помощью MSYS и MinGW, перед запуском cpanm выполните следующую команду:

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

Исполняемый файл make должен быть таким же, который использовался для компиляции вашего Perl. Вы можете проверить точное название вашей марки, выполнив следующую команду:

perl -V:make

Затем найдите путь к этому исполняемому файлу и добавьте его в %PATH%.

person Jānis Š.    schedule 04.11.2016
comment
Я больше не могу проверить ваш ответ, так как у меня давно нет точной настройки. Надеюсь, другие читатели смогут это проверить. - person ZzZombo; 05.11.2016

У меня виндовс 10 64 бит про. Недавно я переключился с berrybrew на Strawberry perl и столкнулся с той же проблемой. Я смог решить эту проблему, полностью удалив старый perl и очистив следующие папки, где бы вы их ни нашли (выполните поиск на диске C:): .cpanm, .cpantesters и .cpanreporter. Возможно, вам нужно очистить только папку .cpanm, но я очистил и остальные. (Сохраните файл metabase_id.json, прежде чем удалять последние два). Оказывается, в моем случае App::cpanminus не был установлен новым perl, поэтому, когда я установил новый perl, он был потерян при попытке запустить cpanm. Install::Some::App так как нашел папку но не все куски где там.

person Jed Lund    schedule 22.05.2016

Моя ситуация отличается от того, что описано в вопросе, но я получил такое же сообщение об ошибке. Я использую образ докера с Ubuntu 18.04.3 LTS, в котором предустановлен Perl v5.26.1. Моя цель состояла в том, чтобы установить Perl-модуль DBI.pm для взаимодействия с базой данных. После некоторых исследований я обнаружил, что для установки модулей Perl можно использовать дополнительную программу под названием cpanminus. Короче говоря, 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

person metatron    schedule 12.10.2019