2011-02-16 540 views
2

我想部署一個Catalyst應用程序。我已經把所有包含在Makefile.PL文件中的思想放到了目標機器上。但是,當我嘗試構建Makefile時,我得到以下內容:問題與催化劑中的Makefile.PL

$ perl Makefile.PL 
Bareword "WriteAll" not allowed while "strict subs" in use at Makefile.PL line 47. 
Execution of Makefile.PL aborted due to compilation errors. 

任何人都可以告訴我做錯了什麼嗎?我已經安裝了 - 模塊::安裝 - 本地:: lib中 - 催化劑::運行時(後來還催化劑::傑韋利可以肯定的)

我想管理好Makefile.PL的整個想法是容易安裝到生產機器?

+7

問題不在於您包含或沒有包含在Makefile.PL中。問題是`Makefile.PL`不是很好的Perl代碼,並且不能編譯。從`Makefile.PL`向我們展示44-50行。 – mob 2011-02-16 22:49:21

回答

2

嘛Makefile.PL好Perl代碼,我談論的開箱Makefile.PL爲催化劑的應用程序(WriteAll是在催化劑的Makefile標準)

顯然,你必須「讓DIST」上開發機器,使應用程序的tarball。該tarball包含一個可以在生產機器上運行的Makefile.PL。我忽略了開發Makefile.PL中的Catalyst評論,它聲明當它沒有'make dist'時它應該'大聲抱怨並且死掉'...

奇怪的是Catalyst沒有提供更多的信息錯誤在這種情況下......可惜沒人認出默認的Makefile設置。感謝您的評論,但暴徒。

1

我有同樣的問題。

我發現刪除inc/解決了它。 YMMV

+0

你不能認爲你的解決方案是相關的; Makefile.PL是他進一步編輯的自定義生成的文件。 – itsbruce 2012-10-26 11:48:42

0

我得到錯誤,這是因爲我沒有安裝Module::Install。我改變了一個更新版本的Perl(5.14 - > 5.16),而新版本沒有這個庫。

  • cpanm模塊::安裝

做起來難。