我正在重新启动使用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