Perl DateTime:: Часовой пояс не найден (установка Bugzilla)

#perl #bugzilla #centos5

#perl #bugzilla #centos5

Вопрос:

Я пытаюсь установить Bugzilla на свой сервер Centos. но я получил эту ошибку:

 Checking for   DateTime-TimeZone (v0.71)    not found 
  

и

     COMMANDS TO INSTALL REQUIRED MODULES (You *must* run all these commands
    and then re-run this script):
    /usr/bin/perl install-module.pl DateTime::TimeZone
  

Если я запущу: /usr/bin/perl install-module.pl DateTime::TimeZone

тогда я получаю это:

     CPAN: Storable loaded ok (v2.15)Reading '/root/.cpan/Metadata'
    Database was generated on Sun, 09 Oct 2011 17:27:24 GMT
    Installing DateTime::TimeZone version 1.39...
    CPAN: Module::CoreList loaded ok (v2.56)
    DateTime::TimeZone is up to date (1.39).
  

Как я могу это исправить?

Комментарии:

1. ИМХО, это ошибка в Bugzilla, при сравнении версий. Сообщите об этом в собственный баг-трекер Bugzilla.

2. Я согласен с Александром. Bugzilla ищет версию 0.71, но у вас установлена версия 1.39 (что является довольно большим скачком в управлении версиями). Я пытался выяснить, как выполняется эта проверка. Возможно, требуется версия, равная или превышающая, точное совпадение или, возможно, что-то с аналогичной основной версией. Я попытался разобраться в логике, но не хотел тратить так много времени на эту проблему. Если вы не застряли на Bugzilla, вы можете попробовать MantisBT . Mantis был специально разработан для замены Bugzilla более простой в настройке системой.

3. Может быть, первое сообщение пришло от perl другого, чем /usr/bin/perl ? У вас установлено более одной сборки Perl? Попробуйте запустить perl install-module.pl DateTime::TimeZone (без ввода /usr/bin ).

Ответ №1:

У меня была такая же проблема при обновлении. Модуль DateTime::TimeZone, похоже, был установлен, но скрипт Bugzilla checksetup.pl всегда сообщал, что он не найден. Следующее исправило проблему для меня (запуск из каталога установки Bugzilla):

 $ perl install-module.pl Params::Util
$ perl install-module.pl Module::Runtime
  

Я нашел это, написав двухстрочный perl-скрипт для имитации проверки, выполняемой Bugzilla:

 use lib qw(. lib);
use DateTime::TimeZone;
  

а затем запустите его, чтобы увидеть ошибки:

 perl /tmp/foo.pl
  

После установки вышеуказанных модулей foo.pl скрипт проходит, как и Bugzilla checksetup.pl .

Комментарии:

1. Вторая команда, perl install-module.pl Module::Runtime, сделал это за меня. Это для Bugzilla 4.2.3! Я думаю, что это НЕ было упомянуто как необязательное / обязательное, но оно обходит требование зоны даты и времени, хотя у меня уже был установлен этот модуль.

2. Для меня отсутствующий модуль имел отношение к YAML. Запуск perl install-module.pl сценарий был определенно правильным решением (в отличие от запуска yum install или cpan напрямую).

Ответ №2:

У меня такая же проблема, и решение приведено в этой ссылке

Что-то вроде /usr/bin/perl install-module.pl Module::Build может быть достаточно, хотя я бы подумал, что Module::Bundle является стандартным perl

Ответ №3:

Я бы предположил, что вы установили DateTime-TimeZone под своей учетной записью пользователя, которая недоступна для веб-сервера или учетной записи ‘root’. Попробуйте просто установить через свой менеджер пакетов:

 yum install 'perl(DateTime::TimeZone)'
  

Ответ №4:

Я тоже столкнулся с этой проблемой. Я не уверен, почему он не находит часовой пояс.

Я немного покопался в коде и попытался изменить номера версий часового пояса, чтобы заставить его работать, но он всегда говорит «не найден».

В конце концов, я просто прокомментировал строки, в которых он пытался выполнить проверку. Затем это позволило мне установить. (Добавьте хэши в начало каждой строки)

 #    {
#        package => 'DateTime-TimeZone',
#        module  => 'DateTime::TimeZone',
#        version => ON_WINDOWS ? '0.79' : '0.71'
#    },
  

Это действительно похоже на ошибку в Bugzilla. Я предлагаю сообщить об этом.