0

我一直在尝试让 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.

不幸的是,似乎没有任何关于在线错误的文档。

有任何想法吗?

4

2 回答 2

2

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

你在使用 MacOS perl 吗?尝试构建和安装不同的 perl,众所周知,Apple 在他们的 perl 构建中做得很糟糕。

于 2009-10-12T22:41:01.397 回答
2

在寻找显示 Ether 的链接时,我发现这篇文章可能是相关的。它有点老了,但提到 Apache 引起了我的注意,因为它是你问题的一部分:

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

提到的修复是调整你的ARCHFLAGS变量。Ars Technica 帖子指向此链接以获取更多信息。

于 2009-10-13T00:27:14.520 回答