Perl Digest :: SHA1 не импортируется на OS X Leopard Server - PullRequest
0 голосов
/ 13 октября 2009

Я пытался заставить 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.

К сожалению, в сети нет документации об ошибке.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 13 октября 2009

При поиске ссылок для показа эфира я нашел этот пост , который может быть актуален. Он немного староват, но упоминание об Apache привлекло мое внимание, так как это часть вашей проблемы:

Если вы недавно мигрировали с 32-битного Mac на 64-битную модель, возможно, у вас возникли проблемы с тем, что некоторые из ваших модулей Perl внезапно подняли руки и стали говорить "ага?" Статья AFP548 указывает на вероятного виновника: CPAN на Mac по умолчанию компилирует все ваши модули как 32-разрядные универсальные двоичные файлы, что приводит к разочарованию в 64-разрядных приложениях, таких как mod_perl в Apache 2.0.

Упомянутое исправление - настройка переменной ARCHFLAGS. Почта Ars Technica указывает на эту ссылку для получения дополнительной информации.

2 голосов
/ 13 октября 2009

Кажется, что существует несоответствие в триплете архитектуры компилятора между modperl и исполняемым файлом Perl. Соответствующая ошибка на самом деле просто «несоответствующая архитектура в универсальной оболочке», которая, кажется, полностью зависит от OS X.

Используете ли вы MacOS Perl? Попробуйте собрать и установить другой perl, известно, что Apple сделала ужасную работу в их сборке perl.

...