将Perl Catalyst安装到Debian

时间:2016-03-17 09:42:51

标签: perl debian catalyst

我正在重新启动使用Catalyst框架,在Debian Jessie上运行它(目前是8.3。)我已经使用apt-get install安装了Debian的这个建议:

http://wiki.catalystframework.org/wiki/installingcatalyst

但我只获得催化剂版本5.90075。 由于在以后的版本中使用unicode进行了很多更改,我想获得最新版本 - 5.90103。 我试图用命令安装它: cpan Catalyst::Runtime Catalyst::Devel Catalyst已更新,但运行催化剂服务器时出现错误(错误已更新,并在我的问题末尾列出)。

我还在搜索我的source.list apt是否有正确的链接 - 但我没有找到任何最新Debian版本的链接。

或者这在当前稳定的Debian版本中是不可能的,我应该去不稳定的Debian版本才能使用最新的Catalyst?

运行催化剂时的错误:

Caught exception in MyApp::Controller::Login->index "Can\'t locate object method "has_args_constraints" via package "Catalyst::Action" at /usr/local/share/perl/5.20.2/Catalyst.pm line 1632."

在我直接在Catalyst.pm中评论方法has_args_constraints的行后(我知道这不是正确的方式,当然...... ),我又遇到了另一个错误:

Caught exception in MyApp::Controller::Login->index "Can\'t locate object method "scheme" via package "Catalyst::Action" at /usr/local/share/perl/5.20.2/Catalyst.pm line 1660."

我再次直接在Catalyst.pm中注释了代码,其中出现了方法方案,并在向用户授权应用程序时获得了与Unicode相关的其他错误:

Caught exception in MyApp::Controller::Login->index "Wide character in subroutine entry at /usr/share/perl5/Catalyst/Authentication/Credential/ line 85."

仅在插入特殊字符 - utf8时出现。在我的应用程序的早期版本中工作。在第85行之前将代码插入Password.pm:

use Encode;
$string = encode('utf8', $string);

已经解决了问题....但是,当发送utf8字符时,会出现与unicode相同的问题:

Caught exception in MyApp::View::Email::Template->process "Wide character in print at /usr/share/perl5/Email/Sender/Transport/Sendmail.pm line 91."

这也适用于以前版本的Catalyst。 Catalyst I中根据此页面创建的所有unicode设置:

http://wiki.catalystframework.org/wiki/tutorialsandhowtos/using_unicode.view

0 个答案:

没有答案