【问题标题】:How do I install the Perl DateTime module on Mac OSX 10.6如何在 Mac OSX 10.6 上安装 Perl DateTime 模块
【发布时间】:2012-01-19 12:00:44
【问题描述】:

好的,我知道如何使用 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 的版本是为 darwin-thread-multi-2level 构建的 v5.10.0

我肯定已经安装了开发者工具。

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

如果有人能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: macos perl cpan


    【解决方案1】:

    You are on an unsupported Perl.Upgrade to stable.

    【讨论】:

    • 感谢您的建议!我编辑了 Config_heavy.pl 以删除 ppc,现在我得到:Running make for D/DR/DROLSKY/DateTime-0.70.tar.gz dyld: lazy symbol binding failed: Symbol not found: _Perl_Gthr_key_ptr Referenced from: /System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle Expected in: flat namespace dyld: Symbol not found: _Perl_Gthr_key_ptr Referenced from: /System/Library/Perl/5.10.0/darwin-thread-multi-2level/auto/Digest/SHA/SHA.bundle Expected in: flat namespace Trace/BPT trap
    【解决方案2】:

    我安装了 Perl 5.12.3 附带的 10.7。我安装了 CPAN:

    $ sudo cpan
    password:
    cpan> install DateTime
    

    而且,整个事情都有效。这是第三方文件需要的东西,还是因为您熟悉这个特定的包而想要使用它?

    有几个内置的 Time 包带有Perl 5.10。其中之一对您有用吗?否则,您可能需要安装 ExtUtils::CBuilder 看看是否有帮助。

    或者,安装更现代的 Perl 版本,例如 ActiveState,它的安装非常简单,它的 cpan 实用程序在 Mac 上运行良好,它的 5.14 版本甚至比随附的版本更新狮子。

    【讨论】:

    • 它几乎就像第三方 - 这是我多年前为客户编写的代码,现在需要一些修改。它实际上运行在具有 Date::Time 的服务器上,但我想在本地进行测试。服务器运行的是 5.10.1,所以我不想离它太远,以免出现其他一些兼容性问题。在某种程度上,现在对我来说是固执推动了这一点,因为我也有一个本地 Debian盒子,当然,只是按预期工作(在这方面anwyay)。
    • 在我的系统上安装此模块后,/usr/bin 下的所有 Perl POD 程序都丢失了它们的执行位,包括perldoc。我必须在目录上做一个sudo chmod +x /usr/bin/perl* /usr/bin/pod*
    【解决方案3】:

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

    如果您在安装 perlbrew Perl 时遇到问题,那么如上所述 daxim 请参阅Lion fix

    【讨论】:

      猜你喜欢
      • 2012-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多