2010-08-12 55 views
0

我在CentOS5.5上测试我的项目安装脚本。 我的项目需要日期:: MANIP模块需要功能模块...如何在CPAN上处理需要Perl devel版本的模块?

当我尝试安装它(功能)通过CPAN,CPAN要安装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. 

我该如何处理这类问题?

+0

当前安装了哪个版本的perl? 5.9.5约3岁。 – eldarerathis 2010-08-12 13:23:40

+0

关于CentOS 5.5,它是Perl 5.8.8 ... :(和升级到Perl 5.10只是为我的项目是不是一个选项... – sebthebert 2010-08-12 13:50:40

回答

5

日期:: MANIP需要Perl 5.10发挥作用,见到META.yml

requires: 
    ... 
    perl: 5.010 

older version (5.56)而只需要Perl 5.001发挥作用,因此应该是安全的为您安装。

换句话说,如果你想要最新版本,你必须更新你的系统的perl至少5.10。不幸的是,CentOS带有一个旧的5.8.8版本。

+0

如何安装旧版本? (从cpan cli不从cpan shell) – sebthebert 2010-08-12 13:48:28

+3

'cpan SBECK/Date-Manip-5.56.tar.gz' – daxim 2010-08-12 14:05:37

+0

或者,如果你有App :: cpanminus,cpanm http://search.cpan.org/CPAN/authors/ ID/S/SB/SBECK/Date-Manip-5.56.tar.gz – mfontani 2010-08-12 14:16:58

4

use feature是首次在5.10稳定版本中引入的Perl杂注。

这可能意味着Date::Manip需要Perl 5.10。

CPAN在这里是错误的,不要让它安装一个开发Perl版本。

+0

“CPAN在这里是错误的”不幸的是,这是解决方案 – Axeman 2010-08-12 13:29:06

+0

你怎么敢质疑伟大而强大的CPAN精灵!?!?!(对不起,刚刚注意到今天的Google涂鸦:) +1 – DVK 2010-08-12 13:44:38

+2

@DVK在我的梦中,CPAN只会建议符合系统上安装的Perl版本的模块...... :) – sebthebert 2010-08-12 14:18:32

3

在您的具体情况中,您当然可以使用5.9之后的稳定版本Perl 5.10。

在一般情况下,如果没有以后的稳定版本,首先应该尝试查看所需的模块是否具有与Perl版本兼容的旧版本。

如果不是,这是一个风险/回报权衡。在生产环境中,我个人倾向于避免任何开发分支,除非关键项目的成功只针对您需要的模块,并且您不能使用其他模块或自行开发。到目前为止,我从来没有遇到过一种情况 - 甚至不能说出一个合理的情况 - 没有解决方法。

0

Centos项目提供了一个与他们的Perl版本一起工作的Date :: Manip版本。它已预先打包,可与yum一起使用。目前似乎是Date :: Manip版本5.44(它早于Perl 5.10的要求)。

$ sudo yum install perl-Date-Manip 

另外,您确定要使用Date :: Manip吗? DateTime通常是更好的选择。