[SP-pm] Erro de versão de módulo ao fazer o tutorial do Catalyst

breno breno at rio.pm.org
Tue Sep 14 14:12:45 PDT 2010


2010/9/14 Otavio Pereira <otavio.pereira em gmail.com>:
> Boa tarde pessoal,

'tarde :-)

> Estou fazendo o tutorial do Catalyst e numa máquina com Ubuntu 9.04 e até
> hoje com uma instalação do perl e modulos do repositório da Canonical.

"o" tutorial do Catalyst? oO

É o Catalyst::Manual::Tutorial?

> Eu estava com a versão 0.20 do Catalyst::Model::DBIC::Schema e no tutorial pede
> o 0.4. Em princípio pensei em 20 > 4, e gerei o modelo e ele tinha o
> load_classes ao invés do load_namespaces.
> Então eu (conforme orientação do tutorial) :
> $sudo cpan Catalyst::Model::DBIC::Schema
> yadda yadda
> Instalar o Moose (s/n) S
> yadda yadda

dica: tive alguns problemas instalando módulos com "sudo". Recomendo
ou fazer em dois passos:

$ sudo su
# cpan Modulo

ou usar local::lib (procure dar preferência a esse método em vez do
anterior, especialmente se estiver lidando com módulos instalados pelo
sistema de pacotes da sua distro, como parece ser o caso):

http://search.cpan.org/perldoc?local::lib~[pt_br]

>  $ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema create=static
> dbi:SQLite:myapp.db on_connect_do="PRAGMA foreign_keys = ON"
>  exists "/home/genoa/MyApp/script/../lib/MyApp/Model"
>  exists "/home/genoa/MyApp/script/../t"
> The get_method_map method has been made private. The public version is
> deprecated and will be removed in a future release.
>  at /usr/local/lib/perl/5.10.0/Class/MOP/Deprecated.pm line 83
>
>  Class::MOP::Package::get_method_map('Moose::Meta::Class=HASH(0x347df38)')
> called at /usr/local/share/perl/5.10.0/namespace/autoclean.pm line 41
>         namespace::autoclean::__ANON__() called at
> /usr/local/share/perl/5.10.0/B/Hooks/EndOfScope.pm line 47
>         B::Hooks::EndOfScope::__ANON__('HASH(0x2390d30)',
> 'ARRAY(0x347dc20)') called at
> /usr/local/share/perl/5.10.0/Catalyst/Helper/Model/DBIC/Schema.pm line 599
>         eval {...} called at
> /usr/local/share/perl/5.10.0/Catalyst/Helper/Model/DBIC/Schema.pm line 599
>         require Catalyst/Helper/Model/DBIC/Schema.pm called at (eval 221)
> line 3
>         eval 'require Catalyst::Helper::Model::DBIC::Schema
> ;' called at /usr/share/perl5/Catalyst/Helper.pm line 159
>         Catalyst::Helper::mk_component('Catalyst::Helper=HASH(0x3111180)',
> 'MyApp', 'model', 'DB', 'DBIC::Schema', 'MyApp::Schema', 'create=static',
> 'dbi:SQLite:myapp.db', 'on_connect_do=PRAGMA foreign_keys = ON', ...) called
> at script/myapp_create.pl line 23
> Dumping manual schema for MyApp::Schema to directory
> /home/genoa/MyApp/script/../lib ...
> Schema dump completed.
>  exists "/home/genoa/MyApp/script/../lib/MyApp/Model/DB.pm"
> created "/home/genoa/MyApp/script/../lib/MyApp/Model/DB.pm.new"
>  exists "/home/genoa/MyApp/script/../t/model_DB.t"
> Tentei entender a mensagem de erro, não consegui e tentei então
> atualizar/instalar os módulos citados no erro via comando cpan. Sem efeito.
> Então desistalei os módulos instalados via cpan
> (Catalyst::Model::DBIC::Schema e Moose) e consigo novamente rodar o script
> mas gerando o Schema com o load_classes.

Não foi uma mensagem de erro, e sim um aviso de que a chamada para o
método "get_method_map" está obsoleta, com um trace do problema. Se
você atualizar o módulo "namespace::autoclean", o warning vai embora.

[]s

-b


More information about the SaoPaulo-pm mailing list