Разработка инсталляторов. Урок 7. Практика создания репаков на примере перепаковки других инсталляторов.


Добрый вечер, дорогие друзья. Вчера мы c вами перепаковывали MSI установщик. Это вариант был достаточно лёгкий. Но что делать, к примеру, если нам требуется перепаковать чужой инсталлятор, собранный неизвестно чем? Тут у нас есть три пути:

1. Установить программу с помощью мониторинга изменений программами-деинсталляторами типа Total Uninstall и десятками подобных. Данные утилиты отслеживают изменения в системе при установке той или иной программы. Например, возьмём сегодняшнего подопытного - известную всем утилиту AIDA64 (Бывший Everest), предназначенную для получения расширенной информации об ОС и Железе. Заранее скажу, что первый и второй пункты я использую редко, когда точно не известно, какой установщик используется.

Установим её с помощью выше упомянутого Total Uninstall и посмотрим, что нам стало известно о ней:

Как видим, программа не много где отметилась. Мы просто можем взять файлы из папки с установленной программой и создать обычный установщик как в 5 уроке. Создав при этом необходимые ярлыки, естественно.

2. Мониторинг также возможен используемым нами установщиком Advanced Installer. Запускаем её и выбираем Создать-> Преобразование -> Перепаковка установки. Естественно, не забываем выбрать язык.

После запуска перепаковки получаем окно с возможностью выбора предыдущих параметров перепаковки. У нас их нет, так что пропускаем. Использование мастера оставляем.

Выбираем приложение на этом ПК. Виртуалку мы сегодня не используем.

Указываем путь к установочному файлу программы AIDA64. Как мы видим, немного информации перепаковщик из пакета уже выдернул.

Указываем путь для вывода файлов проекта. Я просто на рабочем столе создаю папку AIDA, Вы поступайте как хотите.

Как мы видим, некоторые программы могут создать проблемы при мониторинге, так как в данные момент выполняются. Вы можете закрыть их или оставить всё как есть. В таком случае программа создаст снимок системы, но в нём может быть достаточно много мусора. И вам придется вручную чистить проект установщика от лишних изменений. Впрочем, так и так это рекомендуется сделать.

Программа проведёт запись состояния системы, потом будет запущена программа установки AIDA64 и опять запись и сравнение изменений. Это достаточно долго.

После добавления импортированных данных в проект получим статистику импорта. Лишнее можем отключить.

После этого чистим проект от лишних записей в реестре и файлов. Просто просмотрите всё аккуратно в проекте и поправьте. Вот это явно лишнее:

Как я и писал выше, я редко пользуюсь этим способом перепаковки.

3. Существует возможность распаковки некоторых установочных пакетов, например у InnoSetup и NSIS и добычи из них скриптов установки. Для этого есть специальные утилиты, которые мы рассмотрим в постах про эти установщики подробно. Но есть и универсальный распаковщик. Например, Universal Extractor. Я беру модифицированный отсюда.  Судя по внешнему виду установщика, то он очень похож на Inno Setup. Опытный человек это явно заметит при том, что особых модификации установщика не производилось. Запускаем программу-распаковщик. Указываем путь и папку для распаковки. Запускаем.

Как видим, установщик определён как Inno Setup.

Заходим в папку, куда были распакованы файлы. Там мы видим файл install_script.iss - это и есть скрипт Inno Setup.

Теперь у нас есть ещё два пути. Во-первых, мы можем указать этот файл программе Advanced Installer. Создать -> Проекты импорта -> Сценарий Inno Setup. Опять не забываем про выбор языка.

Указываем файл.

Выбираем файл обработчика и получаем почти готовый проект. Но могут конечно быть ошибки. Тщательно всё проверяем. Прописываем нужные параметры, как и при создании обычного проекта установщика. Например, тут также нужно иконку прописать.

Во втором случае. Как я обычно делаю. Это открываю скрипт install_script.iss в обычном редакторе.

Потом просматриваю его и ищу пути установки файлов, записи реестра, создание ini файлов и ярлыков. А потом просто создаю свой чистый проект, добавляю туда необходимые файлы, сверяясь со скриптом. Более подробно скрипты Inno Setup мы рассмотрим, когда будем изучать данный инсталлятор. А сейчас просто на скриншоте выше я подписал, что и куда. Скрипт длинный, но всё там логично. Просмотрите его внимательно и быстро поймёте логику этого скрипта. Есть более сложные варианты скриптов, но тут они не используются.

На этом на сегодня всё. Всем удачи и до завтра. Подписывайтесь, если ВАМ интересно то, о чём я пишу.


Comments 1


Привет!

Этот пост был выбран Академией Голоса и попал в список программы поддержки качественных образовательных постов.
Ссылка на твой пост будет опубликована в отчете Академии.

Спасибо за полезный контент (ノ◕ヮ◕)ノ*:・゚✧

14.03.2017 16:22
0

Вам и вашему создателю большое спасибо за поддержку авторов. Я также голосую за ваши репосты чужих тем. А когда отчет ждать кстати? Бота ведь тоже нужно кормить.

14.03.2017 16:27
0