2011-02-16 188 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模块::安装

做起来难。