2015-08-21 10 views
2

Я пытаюсь установить PAR из cpanm как так: cpanm App::Packer::PAR, но это дает мне эту ошибку:Почему не будет устанавливать зависимости cpanm?

skipping R/RJ/RJBS/perl-5.22.0.tar.bz2 
! Installing the dependencies failed: Module ExtUtils::Embed is not installed 
! Bailing out the installation for PAR-Packer-1.026. 

Несмотря на то, cpanm должен автоматически устанавливать зависимости, я попытался установить его вручную: cpanm ExtUtils::Embed, но только получили ту же ошибку: skipping R/RJ/RJBS/perl-5.22.0.tar.bz2 Любые идеи относительно того, почему это не удается и как я могу заставить его работать?

ответ

2

ExtUtils :: Embed - это модуль с двойным сроком службы, что означает, что он распространяется как часть распределения perlas well as во втором дистрибутиве.

cpanm пытается установить ExtUtils :: Вставить, установив perl distribution вместо ExtUtils-Embed distribution. Зачем? Я не уверен. Может быть, потому что он новее (1.32 вместо 1.2505).

cpanm разумно не хочет обновлять perl сам.

В последнем случае App :: Packer :: PAR's META не указывает минимальную версию ExtUtils :: Embed, поэтому версия в дистрибутиве вполне может быть достаточно хорошей. Следующая команда позволит:

cpanm D/DO/DOUGM/ExtUtils-Embed-1.14.tar.gz 

ОДНАКО, как я уже упоминал ранее, ExtUtils :: Embed поставляется с Perl. Это сделано уже более 15 лет (начиная с Perl 5.4). Нет никакого смысла, что вы должны установить его.

Вы обнаружили, что используете систему, поставщик которой решил причинить головные боли, разбив распределение perl на несколько пакетов. Вы должны использовать диспетчер пакетов вашей системы (apt-get, yum или что-то еще) для установки недостающих частей perl вместо использования cpanm.

+2

Отлично! Все, что мне нужно было сделать, это «yum install» perl (ExtUtils :: Embed) », а затем cpanm работал так, как ожидалось. Благодаря! – bsmedley