Как совместно использовать общие вещи среди exe-файлов, сгенерированных par :: packer?

#windows #perl #activeperl #par

#Windows #perl #activeperl #par

Вопрос:

Я только что попытался сгенерировать * .exe-файлы из скриптов Perl с помощью Par ::Packer, инструмент работает нормально, как и ожидалось.

Сейчас ситуация такова, что я хотел бы распространять свое приложение на основе Perl в виде группы утилит (exe-файлов), для каждого из которых есть соответствующие скрипты Perl, и они в значительной степени используют некоторые общие модули (включая Perl-файлы). Это приводит к тому, что каждый из сгенерированных * exe-файлов раздут похожими кодами.

Я попытался прикрепить параметр —dependency к pp, который в некоторой степени уменьшает размер, в то время как он просто перемещает perl.dll из упакованного файла общие модули все еще находятся там. Я думаю, что должны быть какие-то другие подходы для решения этой проблемы.

Есть предложения? Заранее благодарю вас.

Ответ №1:

http://cava.co.uk / предоставляет это из коробки, позволяет вам легко создать установщик в стиле .msi, с любым количеством сценариев, которые вы хотите, доступных в виде файлов .exe (и все модули и все остальное, что требуется, являются общими)

Вы также можете упаковать Par ::WebStart perlws и упаковать каждое приложение, используя его make_par , а затем вызвать каждое приложение, используя appshortcut.lnk or appshortcut.bat , или appshortcut.exe которое просто выполняет system "perlws.exe appshortcut.pnlp"

или вы могли бы превратить все свои утилиты в модули (вы все равно должны это делать), а затем упаковать их все pp в один файл .exe, а затем создать foo.exe bar.exe baz.exe ... , который просто выполните system "mybigexe.exe foo.exe"

измените значки… с exe_update помощью (из cpan)

Комментарии:

1. cava кажется очень многообещающим, интересны и другие подходы. Я собираюсь попробовать их все, а затем выбрать один. Спасибо.