Почему не рекомендуется использовать Perl-модули PPM со Strawberry Perl в Windows? - PullRequest
3 голосов
/ 08 октября 2011

Может ли кто-нибудь пролить свет на то, почему люди будут делать этот комментарий?Я видел несколько потоков в stackoverflow ( как этот ), где люди так говорят.Мне кажется, что PPM - это не что иное, как предварительно скомпилированные версии модулей, которые просто попадают в вашу установку perl.Предполагая, что у них нет внешних зависимостей от системной DLL, каков большой риск?

Насколько я могу судить, PPM выполняет проверку зависимостей при установке определенного модуля и устанавливает любые другие, которые ему требуются.Похоже на то же самое, что и использование файлов .deb или .rpm в дистрибутиве Linux.

EDIT # 1:

Я нашел эту страницу что касается модуля Wx, где они показывают, как использовать PPM для установки Wx для Strawberry Perl.Я попробовал их, и они, кажется, работают просто отлично.Я также смешал модули CPAN, используя PPM и cpanminus, и все, кажется, хорошо.Модули, такие как:

  • Ш
  • DateTime
  • DBI
  • Data :: Dumper
  • DBD :: AnyData

Я пришел к выводу, что комментарии относительно риска смешивания PPM со Strawberry Perl как того, что следует воспринимать с крошкой соли, как то, что может вызвать у вас проблему здесьили там, но в целом прекрасно использовать модули PPM со Strawberry Perl.

Ответы [ 2 ]

6 голосов
/ 08 октября 2011

PPM были созданы (ActiveState, я думаю), чтобы пользователи могли устанавливать модули с расширениями XS или которые использовали внешние библиотеки, без необходимости иметь компилятор C или make, или любой другой материал unixy, который cpan ожидает представить,Одна из их проблем заключается в том, что ActiveState (или кто-то другой) должен был создать PPM для нужного вам модуля и всех используемых им модулей из CPAN.Иногда это означало использование более старой версии до тех пор, пока они не догнали, а иногда это означало, что модули просто не были доступны.

Гений Strawberry заключается в том, что она предоставляет скрытую среду unixy, которую cpan может использовать для сборки модулей для вас., так что избавляемся от необходимости упаковывать двоичные файлы.

Это означает, что вы получаете проверку зависимостей, выполняемую cpan, и становится намного проще (при определенных значениях easy) устанавливать более новые версии модулей или связыватьк библиотекам в нечетных местах и ​​к тому, чтобы многие другие модули CPAN были доступны без каких-либо усилий со стороны.

Те же аргументы могут быть высказаны в отношении использования системы упаковки linux-distro.Если вам нужна версия модуля, которая не синхронизирована с дистрибутивом, то вы застряли.Если вы хотите использовать более современный Perl, вы застряли.Perl имеет свою собственную очень хорошую систему упаковки в экосистеме CPAN, поэтому имеет смысл использовать ее, если вы можете.

В то же время иногда более разумно использовать набор предоставляемых бинарных пакетов, особенноесли вам нужно развернуть множество систем, и ваша установка Perl - это лишь малая часть коллекции пакетов, которую вы должны отслеживать.

4 голосов
/ 08 октября 2011

PPD могут фактически включать внешние библиотеки (например, пакет XML :: LibXML включает libxml2), поэтому их может быть проще установить.

PPD уже скомпилированы, поэтому их можно быстрее устанавливать.

PPD дают вам меньше контроля, поскольку они подготовлены кем-то другим.Вы ограничены доступными модулями (что, к счастью, огромная доля того, что доступно) и доступными версиями.

Обычно я не решаюсь смешивать две системы, но я никогда не сталкивался ни с одной проблемой при использовании обоих ppm и cpan в одной сборке.

Просто используйте тот, который вам удобен.

...