如何在Mac OSX 10.6上安装Perl DateTime模块

3

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

以下是尝试安装先决条件Params::Validate的一些输出:(我尝试安装问题模块时也会出现同样类型的错误。)

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,构建于darwin-thread-multi-2level。
我肯定已经安装了开发者工具。
我通过sudo运行cpan和cpanm。
如果有人能提供任何帮助,我将不胜感激。
3个回答

6

感谢提供的建议!我编辑了Config_heavy.pl以删除ppc,现在我得到了以下信息: Running make for D/DR/DROLSKY/DateTime-0.70.tar.gz dyld:延迟符号绑定失败:找不到符号:_Perl_Gthr_key_ptr 引用自:/System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle 期望在:平面名称空间dyld:找不到符号:_Perl_Gthr_key_ptr 引用自:/System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle 期望在:平面名称空间 Trace/BPT trap - Tony Adams

5

我已经安装了10.7版本,其中包含Perl 5.12.3版本。我进行了CPAN安装:

$ sudo cpan
password:
cpan> install DateTime

整个过程都能正常运作。这是因为你需要一个第三方文件,还是因为你熟悉这个特定的软件包而要使用它?

Perl 5.10 中有几个内置的 Time 包。其中一个是否适合您的需求?否则,您可能需要安装 ExtUtils::CBuilder 并查看是否有所帮助。

或者,安装更现代的 Perl 版本,如 ActiveState,它非常简单易用,其 cpan 实用程序在 Mac 上运行得相当不错,并且它的版本是 5.14,甚至比 Lion 自带的版本还要新。


它几乎像第三方一样 - 它是我几年前为客户编写的代码,现在需要进行一些修改。它实际上在一个安装有Date::Time的服务器上运行,但我想在本地进行测试。服务器正在运行5.10.1,所以我不想离这个版本太远,以免其他兼容性问题出现。从某种程度上说,现在是我的固执在驱动着我,因为我也有一个本地Debian盒子,当然,在这方面它只能按预期工作。 - Tony Adams
1
在我安装了这个模块后,/usr/bin目录下所有的Perl POD程序都失去了执行权限,包括perldoc。我不得不在该目录上执行sudo chmod +x /usr/bin/perl* /usr/bin/pod*命令来修复这个问题。 - David W.

1
我认为发生的情况是安装程序试图编译某些东西(可能是XS模块),为此它需要使用与编译您系统上任何版本的Perl所使用的编译器相同的编译器,但它找不到它。
您最好使用perlbrew安装自己的Perl 5.10版本,因为这可以保证编译器可用(确保您编辑您的.profile文件以便终端使用您的新Perl),然后重新打开终端,切换到perlbrew版本的Perl 5.10,从那时起您应该就没问题了。
如果您在安装perlbrew Perl时遇到问题,则如daxim上面所述,请参考Lion fix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接