Как установить Devel::Cover на ActivePerl 5.8.7?

cpan терпит неудачу с этой странной ошибкой следующим образом

Error: Unable to locate installed Perl libraries or Perl source code.

It is recommended that you install perl in a standard location before
building extensions. Some precompiled versions of perl do not contain
these header files, so you cannot build extensions. In such a case,
please build and install your perl from a fresh perl distribution. It
usually solves this kind of problem.

(You get this message, because MakeMaker could not find "D:\fbl_esc_bcd_tb\tools\perl\lib\CORE\perl.h")
Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install

Проблема в том, что я не могу установить новые активные версии Perl в этой среде, а инструмент, который я хочу охватить, не работает вне этой среды.


person R.D    schedule 04.08.2010    source источник
comment
Это не странная ошибка; он точно скажет вам, в чем проблема. Можно поподробнее о двух пунктах в последнем абзаце? Почему вы не можете установить новые версии Perl (скорее всего, вы можете) и почему вы не можете запустить свой инструмент вне этой среды (скорее всего, вы можете)?   -  person Ether    schedule 04.08.2010
comment
потому что этот perl необходим для начальной загрузки среды. инструмент также зависит от окружающей среды.   -  person R.D    schedule 04.08.2010
comment
Я могу установить Devel-Cover с помощью PPM на моем AS Perl 5.10.   -  person Fozi    schedule 04.08.2010
comment
Последний ActivePerl 5.8 поставляется с файлами заголовков, по крайней мере, версия для Mac. AS не выпускает более старые копии, поэтому я не вижу 5.8.7 (которой пять лет). Вы даже не можете установить последнюю поддерживаемую версию ActivePerl 5.8? Это убережет вас от боли сейчас и позже.   -  person Schwern    schedule 04.08.2010
comment
5.8.7 древний. Что мешает обновиться? С тех пор было много улучшений и исправлений.   -  person Daenyth    schedule 17.09.2010


Ответы (2)


Краткий ответ: репозиторий ActiveState PPM содержит предварительно скомпилированную версию Devel::Cover, которую вы сможете установить.

Длинный ответ: это не обычное сообщение от MakeMaker, поэтому я готов предположить, что это добавление ActiveState, но, вероятно, это правда. Проблема именно в том, что говорится в сообщении об ошибке; в вашем дистрибутиве отсутствуют некоторые важные файлы, в частности файлы заголовков C для Perl, поэтому он не может скомпилировать код C, необходимый для таких модулей, как Devel::Cover. Часто это результат чрезмерно усердного системного администратора или упаковщика, стремящегося сэкономить несколько десятков Кбайт дискового пространства. Вы могли бы возможно взять заголовочные файлы из версии 5.8. 7 исходников, скопируйте их в каталог CORE, и он вероятно сработает. Это не сделает ничего хуже.

Я согласен с Эваном в том, что, предполагая, что это машина с Windows, вам следует переключиться на Strawberry Perl, который гораздо лучше работает с остальной частью Perl-сообщества, чем ActivePerl.

В остальном ActiveState — коммерческая компания, и они платят за поддержку Perl. Дайте им кольцо.

person Schwern    schedule 04.08.2010

Active Perl не использует CPAN. Если вы хотите использовать CPAN, используйте Strawberry Perl. Active Perl использует двоичное распространение через свою систему ppm. Для него есть несколько сторонних репозиториев, если в официальном нет Devel::Cover -- хотя у официального, вероятно, есть Devel::Cover.

Большинство людей в наши дни переходят на Strawberry и уходят из AS. На мой взгляд, он намного более стабилен и удобен для CPAN и, конечно, менее проприетарен. Кроме того, ожидайте, что сможете получить стабильные версии почти всего — известно, что AS во многих случаях отстает на годы в официальных репозиториях. Клубника также поставляется со своим собственным компилятором и средой сборки, поэтому вы можете легко получить даже ::XS версии.

person Evan Carroll    schedule 04.08.2010
comment
Проблема в том, что я не могу установить новые активные версии Perl в этой среде, а инструмент, который я хочу охватить, не работает вне этой среды. Также я вижу доступный внутри модуль cpan. - person R.D; 04.08.2010
comment
@DotDot, верно, но с AS у вас нет среды сборки, поэтому CPAN хорош только для модулей PP, и то только иногда. У вас есть три варианта: (а) Strawberry Perl, (b) PPM, (c) безумие. Вы выбираете. - person Evan Carroll; 04.08.2010
comment
Я выбираю БЕЗУМИЕ! поджигает волосы и с криком выбегает из комнаты - person Schwern; 04.08.2010