Perl 在Mac上安装Moose时出现问题(compile Sub::Name prereq)

Perl 在Mac上安装Moose时出现问题(compile Sub::Name prereq),perl,cpan,moose,Perl,Cpan,Moose,我正试图在我的MacBookPro上安装Moose(一个CPAN模块)。它找到子名称的依赖项,当它尝试安装此子名称时,会收到以下错误消息。你知道我怎样才能治好吗 XMATH/Sub-Name-0.04.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /opt/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib',

我正试图在我的MacBookPro上安装Moose(一个CPAN模块)。它找到子名称的依赖项,当它尝试安装此子名称时,会收到以下错误消息。你知道我怎样才能治好吗

XMATH/Sub-Name-0.04.tar.gz /usr/bin/make -- OK Running make test PERL_DL_NONLAZY=1 /opt/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/smoke....Can't load '/private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/arch/auto/Sub/Name/Name.bundle' for module Sub::Name: dlopen(/private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/arch/auto/Sub/Name/Name.bundle, 2): no suitable image found. Did find: /private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/arch/auto/Sub/Name/Name.bundle: mach-o, but wrong architecture at /opt/local/lib/perl5/5.8.9/darwin-2level/DynaLoader.pm line 230. at t/smoke.t line 6 Compilation failed in require at t/smoke.t line 6. XMATH/Sub-Name-0.04.tar.gz /usr/bin/make——好的 运行make测试 PERL_DL_NONLAZY=1/opt/local/bin/PERL“-MExtUtils::Command::MM”“-e”“测试线束(0,'blib/lib','blib/arch')”t/*.t t/smoke…无法为模块Sub::Name:dlopen(/private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/arch/auto/Sub/Name/Name.bundle)加载“/private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/auto/Sub/Name/Name.bundle”,2):找不到合适的映像。 确实发现: /private/var/root/.cpan/build/Sub-Name-0.04-ziHbmm/blib/arch/auto/Sub/Name/Name.bundle:mach-o,但/opt/local/lib/perl5/5.8.9/darwin-2level/DynaLoader.pm第230行的架构错误。 在t/smoke.t 6号线 在t/smoke.t第6行的require中编译失败。 +++附录+++

我尝试了使用命令的建议 sudo端口安装p5 moose

安装报告成功,但其中包含“use Moose”的文件提供:

"Can't load '/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle' for module Class::C3::XS: dlopen(/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle, 1): no suitable image found. Did find: /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle: mach-o, but wrong architecture at /opt/local/lib/perl5/5.8.9/darwin-2level/XSLoader.pm line 73. at /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Class/C3/XS.pm line 48 Compilation failed in require at (eval 5) line 3. “无法为模块类加载'/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle':C3::XS:dlopen(/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle,1):找不到合适的映像。找到了吗: /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/auto/Class/C3/XS/XS.bundle:mach-o,但在/opt/local/lib/perl5/5.8.9/darwin-2level/XSLoader.pm第73行的架构错误。 在/opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level/Class/C3/XS.pm第48行 在(eval 5)第3行的require中编译失败。
我想知道,当我从旧机器(英特尔之前)移到这台机器上时,是否有二进制文件被移动,我现在需要重新编译。但是,如果是这样,我该怎么做呢?

您是否尝试过通过CPAN手动安装Sub::Name

cpan>安装子::名称

此外,我更喜欢使用Mac上的port[安装Perl模块(或其他任何开源产品)

  • 它保持了Mac操作系统的原样。所以,如果苹果推出一个更新的版本来更新操作系统,它就不会破坏我的设置

  • 我可以回滚使用端口所做的更改

  • Moose可在macports上使用,安装方式如下:


    sudo port install p5 moose

    哎哟,你不应该把perl安装从一台机器复制到另一台机器上。最好从新安装开始

    我强烈建议您从orbit中删除macports目录(/opt/local)并重新开始。您可以获得当前安装的软件包列表,其中安装了
    端口列表
    ,但您可以从立即安装所需的主要应用程序开始,然后仅在需要时安装其他软件包