Как работать с модулями, которые требуют версию Perl devel на CPAN? - PullRequest
0 голосов
/ 12 августа 2010

Я тестирую сценарий установки моего проекта на CentOS5.5.Мой проект требует Date :: Manip модуль, который требует функция модуль ...

Когда я пытаюсь установить его ( функция ) через CPANCPAN хочет установить Perl 5.9.5 ...

*** WHOA THERE!!! ***

    This is an UNSTABLE DEVELOPMENT release.
    The version of this perl5 distribution is 9, that is, odd,
    (as opposed to even) and that signifies a development release.
    If you want a maintenance release, you want an even-numbered version.

    Do ***NOT*** install this into production use.
    Data corruption and crashes are possible.

    It is most seriously suggested that you do not continue any further
    unless you want to help in developing and debugging Perl.

    If you *still* want to build perl, you can answer 'y' now,
    or pass -Dusedevel to Configure.

Как я могу решить эту проблему?

Ответы [ 5 ]

5 голосов
/ 12 августа 2010

Date :: Manip требует Perl 5.10 для работы, см. META.yml :

requires:
  ...
  perl: 5.010

более старая версия (5.56) вместо этого требует только perl 5.001 для работы и поэтому должна быть безопасной для установки.

Другими словами, если вы хотите эту последнюю версию, вам придется обновить Perl вашей системы по крайней мере до 5.10. CentOS поставляется со старой версией 5.8.8, к сожалению.

4 голосов
/ 12 августа 2010

use feature - это прагма Perl, впервые появившаяся в стабильной версии 5.10.

Это, вероятно, означает, что Date::Manip требует Perl 5.10.

CPAN здесь не так, не позволяйте ему устанавливать версию Perl для разработки.

3 голосов
/ 12 августа 2010

В вашей конкретной ситуации вы, конечно, можете использовать Perl 5.10, который является стабильной версией следующей после 5.9.

В общей ситуации, когда более поздней стабильной версии нет, сначала вы должны попытаться проверить, совместим ли ваш модуль более старой версией с вашей версией Perl.

Если нет, то это компромисс между риском и вознаграждением. В производственной среде я лично склонен избегать любых ветвей разработки, если только успех критического проекта не ограничивается только тем модулем, который вам нужен, и вы не можете использовать другой модуль или свернуть свой собственный. До сих пор я никогда не сталкивался с ситуацией - и даже не могу придумать правдоподобную - где нет обходного пути.

1 голос
/ 15 февраля 2011

@ sebthebert, если вы хотите, чтобы CPAN.pm пытался устанавливать только те модули, которые работают с вашей версией perl, см. http://cpxxxan.barnyard.co.uk/.

0 голосов
/ 21 октября 2011

Проект Centos предоставляет версию Date :: Manip, которая работает с их версией Perl.Он предварительно упакован для работы с yum.В настоящее время это выглядит как версия Date :: Manip 5.44 (которая предшествует требованию для Perl 5.10).

$ sudo yum install perl-Date-Manip

Кстати, вы действительно хотите использовать Date :: Manip?DateTime обычно лучший выбор.

...