Создание msi пакетов нетрадиционными методами

Приветствую!
Не так давно мне понадобилось создать простейший msi файлик для экономии времени. Дело того стоило — 60 машин, на которых надо обновить софт и один компакт-диск для инсталляции.
«А почему не выложить компакт-диск в сеть и не исталлировать от туда?» — спросите Вы. Можно выложить, но это не исключит (и не особенно облегчит) одновременной игры на 60-ти досках. Решение достаточно простое — запаковать инсталляцию в msi и потом опубликовать через активную директорию. Чем, я, собственно и занялся.

Первое, и, пожалуй, самое главное условие запаковки — чистая операционная система. Никакого лишнего софта. Причина проста — при инсталляции, программа может либо создать, либо переписать\обновить\не дописать некий ключ в системном реестре. И, если на вашей машине этот ключ уже есть, не факт, что он будет на другой машине. Так что, напомню еще раз, абсолютно чистая машина.

Для получения такой чистой машины можно использовать два пути.

Путь первый — взять лишнюю машину (когда это у нас машины бывают лишними?), поставить на нее систему и снять с диска образ (например при помощи утилиты Norton Ghost) и сохранить этот образ на другом диске (сетевом, или просто диске, повешенными slave-ом).
У этого пути есть несколько недостатков:
Необходима свободная машина, на которую будет установлена операционная система.
Необходимо найти свободный жесткий диск, чтобы можно было сохранять образы (например вы создаете msi для разных операционных систем).
Восстановление системы посое изменений занимает довольно длительное время. Как минимум 20 минут на загрузку с загрузочного диска и восстановление системы.
Кстати, System Restore, что поставляется с XP — не решает проблему отката после изменений — все равно остаются файлы и записи в регистре после отката к точке восстановления.

Путь второй.
Использовать какой-либо эмулятор операционной системы. Из известных мне могу назвать Virtual PC от Микрософта, и VMware Workstation от VMware Inc. По субъективным причинам я использую VMware.
У этого пути есть множество достоинств, но и несколько недостатков.
Достоинства:
Отпадает необходимость в поиске свободной машины, свободного жесткого диска, места на столе и т.д.
Возможность создания snapshot-ов системы в сотни раз упрощает и ускоряет откат к исходной чистой операционной системе (мы ведь хотим получить инструмент, которым можно пользоваться многократно).
Возможность одновременного запуска нескольких гостевых операционных систем (если необходимо)
Количество образов создаваемых операционных систем ограничего только размером жесткого диска.
Возможности клонирования, копирования готовых образов и т.д. весьма упрощает отслеживание изменений. (Вот тут у нас XP с Офисом, Firefox-ом и Tildes Birojs, а тут у нас ХР c Офисом и Tildes Birojs)

К недостаткам можно причислить прожорливость сего софта. Как минимум 192 мегабайта (а лучше 256) гостевой операционной системе придется выделить. Равно как и гигагерц процессорной мощности.

Отсюда следует, что если у вас достаточно мощная рабочая станция, то лучше всего использовать второй способ. Именно его мы и будем разбирать.

Итак, для работы нам понадобятся:

Инсталляция VMware Workstation — она доступна на сайте производителя — там триал, но серийник есть в сети, и вы должны знать, где его найти (если нет, то посыпьте голову пеплом в свободном от компьютерной техники помещении).
InstallShield admin Studio v.6 — также доступна на сайте производителя, но потребуется зарегистрироваться, чтобы скачать. Версия на 30 дней, но мы-то будем использовать snapshot-ы, так что эти 30 дней будут длиться долго J
Исталляционный диск операционной системы (если нет диска, то можно использовать iso образ — Vmware позволит его подмонтировать, как витуальный диск).

Примечание: в сети есть множество утилит, позволяющих создать полноценные пакеты msi. Использование AdminStudio только для этих целей можно сравнить с пресловутой стрельбой по воробьям из пушки… С другой стороны — а почему бы и нет? В конце-концов всеравно бесплатно.

Весь процесс можно условно разбить на две части — подготовка рабочей станции и, собственно, создание пакета msi.
Подготовка рабочей станции

После того, как мы скачали и установили VMware Workstation, запускаем его. Жмем на New Virtual Machine.

New Virtual Machine

Откроется мастер создания новой виртуальной машины. Нажимаем Next, ибо ничего нового он нам не сообщит.

New Virtual Machine Wizard

Здесь мы оставляем значение по умолчанию Typical и нажмаем Next.

New Virtual Machine Wizard

Обратите внимание на количество платформ. Выбираем Windows XP и жмем Next

New Virtual Machine Wizard

В этом окне мы даем имя нашей машине и указываем место хранения образа машины на диске. Место хранения по умолчанию в My Documents. Советую сменить — никчему многогигабайтные профили. Когда все выбрали, жмем Next.

New Virtual Machine Wizard

В настройках сети можете выбирать так, как вам удобнее. Если хотите, чтобы виртуальная машинка выглядела в сети полноценной машиной со своим IP адресом, то выбирайте значение по-умолчанию.
Если хотите, чтобы она транслировалась в IP адрес главной (хозяйской) машины, то выбирайте второй выриант.
Если вы хотите, чтобы виртуальная машина разоговаривала по сети только с другими виртуальными машинами на хозяйской машине, то выбирайте третий вариант.
Ну, а, если вам сеть нужна, как зайцу стоп-сигнал, то выбирайте последнюю опцию.
Как выберете, жмите Next.

New Virtual Machine Wizard

В этом окне тоже все должно быть понятно — задаем размер виртуального «диска». Единственное, что стоит отметить — опция Allocate all disk space now. Вроде как инсталляции должны проходить быстрее, но тогда все гигабайты, что вы выделили, сразу отведутся под систему. Если галочку не ставить, то они будут выделяться по мере заполнения. Я рекомендую галочку не ставить. Тестовая машина в конце концов. Когда определимся, жмем Finish.

New Virtual Machine Wizard

Откроется основное окно VMware в котором мы сможем лицезреть следующее:

VMware Workstation

В левой части (под номером 1) список наших виртуальных машин с именами, которые мы указали в самом начале.
Под номером 2 у нас управление виртуальной машиной (дополнительные кнопки наверху)
Под номером 3 у нас перечень железа, которое стоит в виртуальной машине (его можно смело менять).
И, наконец, под номером 4 — информация о виртуальной машине (где хранится, что за операционная система и в каком состояннии она).
Перед тем, как мы начнем инсталлировать нашу ОС, нужно немного подправить параметры виртуальной машины. Для этого жмем на Edit virtual machine settings (в «окне» номер 2)

Откроется следующее окно:

Virtual Machine Settings

Тут мы можем подрегулировать количество памяти, используемой виртуальной машиной, добавить такие устройства, как жесткие диски, порты, приводы компакт-дисков и т.д. (придется пройтись через мастер. Разбирать каждый пункт по-отдельности не будем). Если вас интересует монтирование iso образа на виртуальную машину, то вы можете либо создать дополнительный привод компакт диска, либо отредактировать существующий.
Когда закончите, нажмите ОК.

Virtual Machine Settings

Ну, вот, все настройки сделаны, можно запускать нашу виртуальную машину.
Жмем на зеленую кнопку.

VMware Workstation

Все достаточно просто и, в принципе, знакомо — нажмите F2, чтобы зайти в Setup или ESC для выбора загрузочного устройства. Хочу заметить, что для того, чтобы «войти» в виртуальную машину, нужно кликнуть на виртуальном «мониторе».

VMware Workstation

В итоге получаем либо

VMware Workstation

Либо

VMware Workstation

Что тоже неплохо 🙂

Думаю, все, кто заинтересовался этой статьей, умеют инсталлировать операционную систему, если нет, то идите помойте голову и посыпьте ее пеплом заново.
Ставьте операционную систему и AdminStudio. Когда все поставите, выключайте виртуальную машину (да, как обычный компьютер через Shutdown).

Идите в меню VM->Snapshot и выберите Take Shapshot.
Дайте ему название и впишите что-нибудь в комментарии («Аффтар жжот!» например).

MSI Package - After All Installs

Теперь, когда все готово. Запускаем виртуальную машину.

Создание пакета msi

Итак, у нас есть инсталляция .ехе, которую мы хотим сделать msi, чтобы автоматизировать процесс инсталляции на нескольких компьютерах или уменьшить количество кликов для инсталляции некой программы.

Вы запустили свою виртуальную машину.
Теперь запускайте AdminStudio (Вы ведь его уже скачали и проинсталлировали?)

Жмете на Package a Setup. Это позволит вам выбрать инсталляционный файл вашей программы.

MSI Package - After All Installs

Я буду использовать для примера инсталляционный диск Tildes Winlogs.

Вставьте инсталляционный диск и нажмите на Browse (может быть придется прокрутить окно).
Выберите тип упаковки: Installation Monitoring означает, что все изменения в системе будут отслеживаться в процессе инсталляции, Snapshot означает, что будет делаться анализ системы в до и после инсталляции, и разница запакуется. Рекомендую выбрать Installation Monitoring, так, как он быстрее и проще с настройке.

AdminStudio Professional Edition

Прокрутите ниже и выберите, в какую директорию скидывать готовый пакет, и где хранить файлы, используемые для упаковки. После нажатия Repackage запустится мастер упаковки. Жмите Next.

InstallSheld Repackaging Wizard

Выберите Installation Monitoring и нажмите Next

InstallSheld Repackaging Wizard

В этом окне можете указать всю сопутствующую информацию (почтовые адреса, номера счета, имена, фамилии и т.д.)

Collect Product Information

Укажите, где будут храниться отчет об анализе системы (можете использовать значение по-умолчанию). Нажмите Start, для начала инсталляции (нажмите Yes, если попросят подтверждение на запись в папку проекта).

InstallSheld Repackaging Wizard

Инсталлируйте программу, так, как вы бы делали это на обычном компьютере. Вы также можете смело вносить все необходимые изменения в систему (добавление ярлыков, настройки в программе и т.д.).
После окончания жмите Process.

InstallSheld Repackaging Wizard

Результат обработки виден в следующем окне. Можете посмотреть, что накидала инсталляция, проверить все-ли верно. После этого выберите Repackaged Output и жмите Build.

InstallSheld Repackaging Wizard

Когда закончится конвертирование, обратите внимание на отчет (он будет отображен в нижнем фрейме). Уделите особое внимание на ошибки (предупреждения не критичны, но и на них следует обратить внимание).

InstallSheld Repackaging Wizard

Если все нормально — сохраняйте запакованную инсталляцию куда-нибудь (на сетевой диск, на USB, на другой жесткий диск). Инсталляция будет лежать в папке проекта (вы ее указали в самом начале упаковки).

После этого остается только проверить запакованный файл и, в случае, если все хорошо — можно отправлять пакет в production environment.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Закончите арифметическое действие * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.