Cpan / m falha ao instalar o Cache :: Cache devido ao método “set_size”

3

começando com o perl (tentando fazer com que uma instalação do Request Tracker funcione): Por alguma razão, não consigo instalar o Cache :: Cache! (ou melhor, os testes estão falhando): Notas: perl 5.8.8 no CentOS 5.8 Final (x86_64, 2.6.18-308.13.1.el5), Apache 2.2.23 (Eu não vi nenhum relatório para 2.6.18-308 no cpan.org, mas algumas versões do 2.6.18-xyz falharam (principalmente versões alpha5 ou xend4 são as falhas), mas a maioria passa:

Eu tentei com cpan, cpanm, eu tentei usar pm-uninstall para me livrar dele, mas ele diz que não está lá ..

cpanm Cache::Cache
--> Working on Cache::Cache
Fetching http://www.cpan.org/authors/id/J/JS/JSWARTZ/Cache-Cache-1.06.tar.gz ... OK
Configuring Cache-Cache-1.05 ... OK
Building and testing Cache-Cache-1.06 ... FAIL
! Installing Cache::Cache failed. See /root/.cpanm/build.log for details.

então eu:

more /root/.cpanm/build.log

a seção relevante da saída é (parece ser):

 Manifying blib/man3/Cache::NullCache.3
PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_test_cache_interface.t ................. ok
t/2_test_memory_cache.t .................... ok

Error:
Can't call method "set_size" on unblessed reference at /root/.cpanm/work/1354840722.23539/Cache-Cache-1.06/blib/lib/Cache/BaseCache.pm line 240.

Can't call method "set_size" on unblessed reference at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 38.
    Error::_throw_Error_Simple('HASH(0x11e14db8)') called at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 310
    Error::subs::run_clauses('HASH(0x11e14d48)', 'Can\'t call method "set_size" on unblessed reference at /root...', undef, 'ARRAY(0x11efcbd8)') called at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 
430
    Error::subs::try('CODE(0x11e14ba8)', 'HASH(0x11e14d48)') called at /root/.cpanm/work/1354840722.23539/Cache-Cache-1.06/blib/lib/Cache/CacheTester.pm line 59
    Cache::CacheTester::test('Cache::CacheTester=HASH(0x11e14ae8)', 'Cache::FileCache=HASH(0x121d2ea8)') called at t/3_test_file_cache.t line 41


t/3_test_file_cache.t ...................... 
Failed 33/35 subtests 

Error:
Can't call method "set_size" on unblessed reference at /root/.cpanm/work/1354840722.23539/Cache-Cache-1.06/blib/lib/Cache/BaseCache.pm line 240.

Can't call method "set_size" on unblessed reference at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 38.
    Error::_throw_Error_Simple('HASH(0x15e77d8)') called at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 310
    Error::subs::run_clauses('HASH(0x15e7768)', 'Can\'t call method "set_size" on unblessed reference at /root...', undef, 'ARRAY(0x15a1bd8)') called at /usr/local/lib/perl5/site_perl/5.8.8/Error.pm line 43
0
    Error::subs::try('CODE(0x15e74a8)', 'HASH(0x15e7768)') called at /root/.cpanm/work/1354840722.23539/Cache-Cache-1.06/blib/lib/Cache/CacheTester.pm line 59
    Cache::CacheTester::test('Cache::CacheTester=HASH(0x15e7618)', 'Cache::SharedMemoryCache=HASH(0x15e6af8)') called at t/4_test_shared_memory_cache.t line 41


t/4_test_shared_memory_cache.t ............. 
Failed 33/35 subtests 

E então ele apenas repete por um tempo ...

Esta é a linha 240/241 de /root/.cpanm/work/1354840722.23539/Cache-Cache-1.06/blib/lib/Cache/BaseCache.pm

  $object->set_size( $self->_get_backend( )->
                 get_size( $self->get_namespace( ), $p_key ) );

Desculpe se isso parece uma questão newb total. Eu procurei por tantas combinações de strings diferentes de todos esses erros diferentes e é como se ninguém tivesse tido esse problema antes. Para começar, eu li sobre Cache :: Cache, que é tão sólido que não foi atualizado em dois anos ou algo assim, e é um dos módulos mais comuns.

Eu preciso deste módulo porque é uma dependência do HTML :: Mason, que é uma dependência do Request Tracker 4.0.8. Eu instalei quase todas as outras dependências (eu tentei instalar o IPC :: ShareLite, com sucesso, e 'mason' em vez disso, sem sucesso). Claro que eu poderia forçar a instalação de algo, mas eu realmente não estou tão confortável com isso como um novato apenas para dar a volta '- force' tudo, pois eu sei que isso não necessariamente funcionará, e é isso que os testes estão me dizendo .

Os outros módulos que eu vejo estão faltando, alguns dos quais não podem ser instalados mencionados acima, e adicionalmente o Plack não instalará:

PSGI missing dependencies:
    Plack ...MISSING

HTML::Mason ...MISSING
        Can't locate HTML/Mason.pm in @INC

HTML::Mason::PSGIHandler ...MISSING
        Can't locate HTML/Mason/PSGIHandler.pm in @INC

Plack::Handler::Starlet ...MISSING
    
por NOTjust -- user4304 07.12.2012 / 08:32

1 resposta

1

Existe algum motivo para você instalar módulos do CPAN no CentOS em vez de usar o repositório / RPMs do CentOS para os módulos perl? Se não, você pode tentar usar RPMs do repositório EPEL: link

Eles têm a versão 1.05 no EPEL para o CentOS 5: link . Você pode achar que pode satisfazer as dependências mais facilmente, localizando módulos na base do CentOS ou repos EPEL (se eles não chamarem explicitamente para a versão 1.06).

Eu sei que isso não resolve a verdadeira questão de por que a criação do módulo falhou. Mas poderia ser uma alternativa para instalar o Cache-Cache pelo menos. Se você acabar usando a rota do pacote RPM, outra boa ferramenta para verificar é o link . Eu uso o cpan2rpm para construir RPMs para módulos perl que não existem em repositórios CentOS ou EPEL e que tiveram um bom sucesso jogando bem com a versão instalada do sistema do perl.

    
por 13.02.2013 / 22:17

Tags