无法安装Date :: Calc perl模块

时间:2013-05-20 15:38:20

标签: perl solaris

我在我的机器上运行Solaris,我需要安装Date :: Calc perl模块才能让我的一个脚本工作。

当我运行以下命令时:

sudo perl -MCPAN -e 'install Date::Calc'

我收到以下错误:

Tests succeeded but one dependency not OK (Bit::Vector)
  STBEY/Date-Calc-6.3.tar.gz
  [dependencies] -- NA
Running make install
  make test had returned bad status, won't install without force

我在Perl开发方面没有任何经验,所以我不知道错误可能是什么或从何处获取更多信息。

我该怎么做才能解决这个问题?


首先尝试安装Bit :: Vector时,即运行以下命令时:

sudo perl -MCPAN -e 'install Bit::Vector'

我收到以下错误消息:

Checking if your kit is complete...
Looks good
Writing Makefile for Bit::Vector
Writing patchlevel.h for /usr/bin/perl (5.012003)
cp lib/Bit/Vector/Overload.pm blib/lib/Bit/Vector/Overload.pm
cp Vector.pm blib/lib/Bit/Vector.pm
cp Vector.pod blib/lib/Bit/Vector.pod
cp lib/Bit/Vector/Overload.pod blib/lib/Bit/Vector/Overload.pod
cp lib/Bit/Vector/String.pod blib/lib/Bit/Vector/String.pod
cp lib/Bit/Vector/String.pm blib/lib/Bit/Vector/String.pm
cc -c    -DPTR_IS_LONG -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DPERL_USE_SAFE_PUTENV -xO4    -DVERSION=\"7.2\"  -DXS_VERSION=\"7.2\" -KPIC "-I/usr/perl5/5.12/lib/i86pc-solaris-64int/CORE"   BitVector.c
sh: line 1: cc: not found
*** Error code 127
make: Fatal error: Command failed for target `BitVector.o'
  STBEY/Bit-Vector-7.2.tar.gz
  /usr/bin/make -- NOT OK
'YAML' not installed, will not store persistent state
Running make test
  Can't test without successful make
Running make install
  Make had returned bad status, install seems impossible

我通过以下命令安装了gcc(如建议here):

pkg install gcc-45 
pkg install system/header

但是在尝试安装Bit :: Vector时我仍然遇到同样的错误。实际上,当我在命令行中键入cc时,我收到command not found错误。但是,当我输入gcc时,我会收到gcc: no input files

2 个答案:

答案 0 :(得分:2)

错误意味着Bit::Vector(Date :: Calc的依赖关系)由于某种原因无法安装。 Bit :: Vector需要编译C代码,这意味着您的CPAN配置需要访问用于构建perl的C编译器和库(和头文件)。

据我了解,在Solaris上有时会很痛苦。

如果您有其他可用的C编译器,您可以考虑使用perlbrew构建和安装本地Perl。

答案 1 :(得分:0)

事实证明,唯一的选择是在安装需要编译C代码的新perl模块之前安装Oracle Solaris Studio

来自a related discussion at Oracle Solaris forum

  

/usr/perl5/5.12/lib/i86pc-solaris-64int/Config.pm中的CC修改   不会解决编译问题。将产生新的错误   有些部分不会使用这个变量。

     

默认情况下,构建模块的方法将使用perl编译   选项。在这种情况下,我们使用Oracle Studio这个软件   将是必需的,因为gcc没有一些选项。

     

我尝试使用Oracle Studio,编译成功完成。

     

如果你想使用gcc,那么修改它将非常棘手   几个perl配置文件。另一种方法是手动编译   自定义每个Makefile后,每个必需的模块。