только начинаю с perl (пытаюсь заставить работать Request Tracker): По какой-то причине я не могу установить 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», но безрезультатно). Конечно, я мог бы установить что-то принудительно, но мне, как новичку, не очень комфортно с этим просто обходить '--force' все, так как я знаю, что это не обязательно сработает, и это то, что мне говорят тесты .
Я вижу, что мне не хватает других модулей, некоторые из которых не могут быть установлены, упомянутые выше, и, кроме того, 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
Есть ли причина, по которой вы устанавливаете модули из 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.