2011-12-13 120 views
3

好吧,我知道如何在cpan上安装Perl模块,并且已经这么做了多年。但是当我尝试在这个特定的mac上安装DateTime模块时,它失败了,声称它找不到编译器。如何在Mac OSX上安装Perl DateTime模块10.6

下面是一些输出的尝试安装的先决条件,一个PARAMS ::验证:(我得到相同类型的错误从试图安装有问题的模块。)

Configuring Params-Validate-1.00 
Running Build.PL 
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed 
Installed assemblers are: 
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 
lipo: can't open input file: /var/tmp//cc3Aefez.out (No such file or directory) 
Warning: ExtUtils::CBuilder not installed or no compiler detected 
Proceeding with configuration, but compilation may fail during Build 

为什么Build.PL寻找一个ppc编译器?如果那是我在哪里告诉它(或cpan或cpanm)这台机器不是ppc盒的问题?

我正在运行10.6.8。 perl的版本是v5.10.0,为达尔文线程多2级而设计

我绝对已经安装了开发工具。

我正在通过sudo运行cpan和cpanm。

我很感激任何人可以提供的帮助。

+0

'CPAN的ExtUtils :: CBuilder' – 2011-12-13 16:15:20

回答

6
+0

感谢您的建议问题!我编辑了Config_heavy.pl以删除ppc,现在我得到: '正在为D/DR/DROLSKY/DateTime-0.70.tar.gz运行make dyld:懒符号绑定失败:找不到符号:_Perl_Gthr_key_ptr引用自:/ System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle预计位于:flat namespace dyld:找不到符号:_Perl_Gthr_key_ptr参考文献:/System/Library/Perl/5.10.0 /darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle预计在:flat命名空间跟踪/ BPT陷阱# –

5

我已经安装了10.7,并附带了Perl 5 .12.3安装。我做了一个CPAN安装:

$ sudo cpan 
password: 
cpan> install DateTime 

而且,整个事情的工作。这是你需要第三方文件的东西,还是你想用这个,因为你熟悉这个特定的包?

有几个内置时间包与Perl 5.10。这些中的一个对你有用吗?否则,您可能需要安装ExtUtils::CBuilder并查看是否有帮助。

或者,安装Perl如ActiveState的更现代的版本,这是安装非常简单,其cpan公用程序在Mac上相当不错,它的版本5.14,这比自带的狮子的版本甚至更新。

+0

它几乎就像第三方 - 它是我多年前为客户写的代码,现在需要一些修改。它实际上运行在具有Date :: Time的服务器上,但我想在本地执行测试。服务器运行的是5.10.1,所以我不想离得太远以免发生其他一些兼容性问题。在某种程度上,固执正在推动我,因为我现在也有一个本地的Debian当然,这个盒子就像预期的那样工作(就这方面而言)。 –

+1

在我的系统上安装了这个模块之后,/ usr/bin下的所有_Perl POD_程序都丢失了包含'perldoc'的执行位。我必须在目录上执行'sudo chmod + x/usr/bin/perl */usr/bin/pod *'。 –

1

我认为正在发生的事情是安装程序正在尝试编译一些东西(可能是一个XS模块),并且要做到这一点,它需要使用相同的编译器来编译Perl系统中的任何版本,并且它找不到它。 你最好的选择是使用perlbrew安装你自己的Perl 5.10版本,因为这个编译器是可用的(请确保你编辑你的.profile,以便终端使用你的新Perl),然后重新打开终端,切换到perlbrew版本的Perl 5.10,你应该没问题。

如果你有安装perlbrew的Perl那么作为daxim指出上述参考Lion fix