2015-08-21 53 views
2

我試圖從cpanm像這樣安裝PAR: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是一個雙重生命的模塊,這意味着它作爲perl分佈as well as的一部分在第二個發行版中分發。

cpanm正試圖通過安裝perl distribution而不是ExtUtils-Embed distribution來安裝ExtUtils :: Embed。爲什麼?我不確定。也許是因爲它更新(1.32而不是1.2505)。

cpanm明智地不願意升級perl本身。

現在,最新的App :: Packer :: PAR的META沒有指定ExtUtils :: Embed的最低版本,因此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