Как установить модуль Perl DateTime на Mac OSX 10.6

Хорошо, я знаю, как устанавливать модули Perl с помощью cpan, и делаю это уже много лет. Но когда я пытаюсь установить модуль DateTime на этот конкретный Mac, он терпит неудачу, утверждая, что не может найти компилятор.

Вот некоторые результаты попытки установить одно из предварительных условий, 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 v5.10.0 создана для darwin-thread-multi-2level.

У меня определенно установлены инструменты разработчика.

Я запускаю cpan и cpanm через sudo.

Я был бы признателен за любую помощь, которую кто-либо может предложить.


person Tony Adams    schedule 13.12.2011    source источник


Ответы (3)


Вы используете неподдерживаемый Perl. Обновить до стабильной версии.

person daxim    schedule 13.12.2011
comment
Спасибо за предложения! Я отредактировал 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 - person Tony Adams; 13.12.2011

У меня установлена ​​версия 10.7, в которой установлен Perl 5.12.3. Я установил CPAN:

$ sudo cpan
password:
cpan> install DateTime

И все работает. Это то, что вам нужно для стороннего файла, или вы хотите использовать это, потому что вы знакомы с этим конкретным пакетом?

Существует несколько встроенных пакетов Time с Perl 5.10. . Подойдет ли вам один из них? В противном случае вам может потребоваться установить ExtUtils::CBuilder и посмотреть, поможет ли это.

Или установите более современную версию Perl, такую ​​как ActiveState, которую довольно просто установить, ее cpan утилита довольно хорошо работает на Mac, и это версия 5.14, которая даже новее, чем версия, поставляемая с Lion.

person David W.    schedule 13.12.2011
comment
Это почти как третья сторона - это код, который я написал для клиента много-много лет назад, и теперь он нуждается в некоторых изменениях. На самом деле он работает на сервере с Date::Time, но я хотел провести тестирование локально. Сервер работает под управлением 5.10.1, поэтому я не хочу слишком далеко отходить от этого, чтобы не возникли другие проблемы с совместимостью. В какой-то степени это упрямство ведет меня сейчас, поскольку у меня также есть локальный Debian. коробка, которая, конечно же, работает как положено (в этом отношении все равно). - person Tony Adams; 13.12.2011
comment
После того, как я установил этот модуль в свою систему, все программы Perl POD в каталоге /usr/bin потеряли свой бит выполнения, включая perldoc. Мне пришлось сделать sudo chmod +x /usr/bin/perl* /usr/bin/pod* в каталоге. - person David W.; 13.12.2011

Я думаю, что происходит то, что установщик пытается что-то скомпилировать (возможно, модуль XS), и для этого ему нужно использовать тот же компилятор, который использовался для компиляции любой версии Perl в вашей системе, и он не может найти Это. Лучше всего установить собственную версию Perl 5.10 с помощью perlbrew поскольку это гарантирует доступность компилятора (убедитесь, что вы отредактировали свой .profile, чтобы Терминал использовал ваш новый Perl), затем снова откройте Терминал, переключитесь на perlbrew версию Perl 5.10, и с этого момента все будет в порядке.

Если у вас возникли проблемы с установкой perlbrew Perl, то, как указано выше, обратитесь к исправлению Lion.

person tangent    schedule 05.02.2012