2015-06-10 14 views
4

我打算立即將模塊上傳到CPAN。這是我貢獻的第一個模塊。我已經將模塊應用於我認爲是「測試」階段的模塊。我使用ExtUtils :: MakeMaker通過Makefile.PL生成一個Makefile(我粘貼了下面的內容)。 Makefile.PL腳本具有列出的所有prereq模塊。我想知道安裝過程中的哪一點,prereq模塊是否安裝,如果他們不存在?我想知道是因爲我運行了Makefile.PL,接着make然後make install在一個單獨的環境中,缺少一些prereq模塊。但是,他們沒有安裝?我的印象是他們會,但也許我錯過了什麼?我正在尋找一個人來提供一些清晰。在此先感謝〜CPAN模塊prereqs

Makefile.PL

#!/usr/bin/env perl 

use strict; 
use warnings; 
use ExtUtils::MakeMaker; 

WriteMakefile(
    NAME  => 'Imgur', 
    VERSION => '0.01', 
    PREREQ_PM => { 
     'JSON'      => 2.90, 
     'LWP::UserAgent'   => 6.05, 
     'HTTP::Request::Common'  => 6.04, 
     'Data::Dumper'    => 2.154, 
     'DateTime::Format::ISO8601' => 0.08, 
     'Config::IniFiles'   => 2.86, 
     'Scalar::Util'    => 1.42, 
     'Class::Std::Utils'   => 0.0.3, 
     'MIME::Base64'    => 3.15, 
     'File::Slurp'    => 9999.19 
    } 
); 
+2

在附註中,您應該將版本指定爲字符串(例如''JSON'=>'2.90',')。這可以避免浮點轉換問題。 – cjm

回答

6

的Makefile.PL不會安裝的先決條件;它只是抱怨,如果他們沒有安裝。 CPAN客戶端的工作是安裝先決條件。

注意:Module::Install有這樣做的auto_install功能,但普遍的共識似乎是使用它是一個壞主意。

+2

如果使用Module :: Build代替ExtUtils :: MakeMaker,則可以使用'./Build installdeps'。然而,有些人認爲M :: B是一個失敗的實驗(我認爲包括它的維護者)。 – ikegami

+0

Module :: Build也不再是5.22.0的核心 –