Perl Digest :: SHA1未在OS X Leopard Server上导入

时间:2009-10-12 22:11:47

标签: perl macos sha1

我一直在努力让SVN连接到Atlassian Crowd进行身份验证,但一直遇到OS X Leopard Server(10.5.8)和Perl's Digest :: SHA1的问题。

我已经从源代码(http://metacpan.org/pod/Digest::SHA1)安装了它,如果我直接从Perl脚本调用它,它工作正常,但在我的apache日志中我收到此错误:

failed to resolve handler `Apache::CrowdAuth': Can't load '/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Digest/SHA1/SHA1.bundle' for module Digest::SHA1: dlopen(/Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Digest/SHA1/SHA1.bundle, 1): no suitable image found.  Did find:
    /Library/Perl/5.8.8/darwin-thread-multi-2level/auto/Digest/SHA1/SHA1.bundle: no matching architecture in universal wrapper at /System/Library/Perl/5.8.8/darwin-thread-multi-2level/DynaLoader.pm line 230.
 at /Library/Perl/5.8.8/Cache/FileBackend.pm line 15
Compilation failed in require at /Library/Perl/5.8.8/Cache/FileBackend.pm line 15.
BEGIN failed--compilation aborted at /Library/Perl/5.8.8/Cache/FileBackend.pm line 15.
Compilation failed in require at /Library/Perl/5.8.8/Cache/FileCache.pm line 20.
BEGIN failed--compilation aborted at /Library/Perl/5.8.8/Cache/FileCache.pm line 20.
Compilation failed in require at /Library/Perl/5.8.8/Apache/CrowdAuth.pm line 8.
BEGIN failed--compilation aborted at /Library/Perl/5.8.8/Apache/CrowdAuth.pm line 8.
Compilation failed in require at (eval 2) line 3.

Unfortunatley似乎没有关于在线错误的任何文档。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

似乎modperl和Perl可执行文件之间的编译器体系结构三元组不匹配。相关错误实际上只是“通用包装器中没有匹配的架构”,这似乎完全是OS X.

您使用的是MacOS perl吗?尝试构建和安装不同的perl,众所周知,Apple在perl版本中做得非常糟糕。

答案 1 :(得分:2)

在寻找显示以太网的链接时,我发现this post可能是相关的。这有点旧,但提到Apache引起了我的注意,因为它是你问题的一部分:

  

如果你最近从32位Mac迁移到64位模型,你可能会遇到一些问题,你的一些Perl模块会突然甩手而去“哇?” AFP548文章指出了可能的罪魁祸首:Mac上的CPAN默认将所有模块编译为通用32位二进制文​​件,这往往会令64位应用程序失望,例如Apache 2.0的mod_perl。

提到的修复方法是调整ARCHFLAGS变量。 Ars Technica帖子点to this link以获取更多信息。