2008-02-14

Запустить скрипт Perl или умереть

Решил наконец решить задачу подсчета и проверки контрольных сумм файлов, входящих в наш дистрибутив. Типа контроль целостности инсталляции. Работа заняла около 15 минут чистого времени (Perl, при наличии Digest::MD5 - все тривиально, сами понимаете).

И тут я задумался: как же все это будет запускаться на машине клиента, под Windows, где Perl-а и нет в помине?! Лицензия ActivePerl запрещает распространять его дистрибутив, да если даже это и делать - из пушки по муравьям (с). И начал я искать способ конвертнуть Perl-скрипт в .exe.

Как ни странно, в теории оказалось есть несколько способов:
В итоге... PerlApp - платный, надо качать PerlStudio PRO, крякать и т.п. Ну никак не соответствует духу свободного ПО. Perl2exe - мало того, что платный, так и еще и требует положить дохрена dll-ек из дистрибутива к себе (утомительная итерационная игра с сомнительным результатом). А PAR для ActivePerl не возможен - судя по странице успешных компиляций содержимого CPAN, pp просто не поддерживается на Windows, т.к. в этой сточке горит веселая надпись "failed". Что-то мне кажется, ActiveState лукавит: ну кто станет поддерживать бесплатное решение, которое конкурирует с их же собственным платным?!..

Короче... Решил все на С написать! Кстати, в рекомендации rfc1321 и исходничек есть. Правда, особенно разбираться, как правильно подключать C-исходник к C++ в MSVC я не стал, поправил md5.h по своему разумению.

А правильнее все-таки было бы с Perl-ом...

1 комментарий:

chorny комментирует...

PAR есть в других репозиториях для AS Perl, но проблема что требуется точная версия perl под которой был скомпилирован PAR. Если взять MSVC6 и скомпилировать самому - никаких проблем не возникает - пробовал сам.