Cpan/m не может установить Cache::Cache из-за метода "set_size"

Я только начинаю с Perl (пытаюсь заставить работать установку отслеживания запросов): Почему-то я не могу установить Cache::Cache! (или, скорее, тесты не пройдены): Примечания: Perl 5.8.8 в CentOS 5.8 Final (x86_64, 2.6.18-308.13.1.el5), Apache 2.2.23 (я не видел отчетов для 2.6.18-308 на cpan.org, но некоторые версии 2.6.18-xyz терпят неудачу (в основном это ошибки alpha5 или xend4), но большинство проходит:

Я пытался с cpan, cpanm, я пытался использовать pm-uninstall, чтобы избавиться от него, но он говорит, что это не там..

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.

так что я:

больше /root/.cpanm/build.log

соответствующий раздел вывода (кажется, что):

 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 

А потом это просто повторяется на некоторое время...

Это строка 240/241 из /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 ) );

Извините, если это кажется совершенно новым вопросом. Я искал так много разных строковых комбинаций из всех этих разных ошибок, и, похоже, никто никогда не сталкивался с такой проблемой раньше. Для загрузки я прочитал о Cache::Cache, он настолько прочен, что не обновлялся два года или около того, и это один из самых распространенных модулей.

Мне нужен этот модуль, потому что это зависимость от HTML::Mason, которая зависит от Request Tracker 4.0.8. Я установил почти все другие зависимости (я попытался успешно установить IPC::ShareLite и вместо этого 'mason', но безрезультатно). Конечно, я мог бы заставить что-то установить, но мне как новичку не очень удобно просто "обойти" все, так как я знаю, что это не обязательно будет работать, и это то, что тесты говорят мне,

Другие модули, которые я вижу, мне не хватает, некоторые из которых не могут быть установлены, упомянутые выше, и дополнительно Plack не будет установлен:

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

1 ответ

Есть ли причина, по которой вы устанавливаете модули из CPAN в CentOS вместо использования CentOS-репозитория /RPM для модулей perl? Если нет, то вы можете попробовать использовать RPM из репозитория EPEL: http://fedoraproject.org/wiki/EPEL

У них есть версия 1.05 в EPEL для CentOS 5: http://mirrors.kernel.org/fedora-epel/5/x86_64/perl-Cache-Cache-1.05-1.el5.noarch.rpm. Вы можете обнаружить, что легче удовлетворить зависимости, найдя модули в базе CentOS или репозиториях EPEL (если они не вызывают явно для версии 1.06).

Я знаю, что это не решает реальный вопрос о том, почему сборка модуля не удалась. Но может быть альтернативой установке Cache-Cache по крайней мере. Если вы в конечном итоге пойдете по маршруту пакета RPM, то другим хорошим инструментом для проверки является http://perl.arix.com/cpan2rpm/. Я использую cpan2rpm для создания RPM для модулей perl, которые не существуют в репозиториях CentOS или EPEL и которые добились хорошего успеха, играя хорошо с установленной системой версией perl.

Другие вопросы по тегам