Создание установочного пакета программы для развертывания

Технология

Total Software Deployment предлагает 3 метода создания установочных пакетов для развертывания. Ни один из методов никак не помешает работе пользователя за удаленным компьютером. Но у каждого из методов есть свои преимущества и недостатки друг перед другом.

Тихая установка

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

Принцип записи:

  1. Главный модуль программы автоматически определяет тип инсталлятора и подставляет в командную строку минимальный пакет ключей для тихой установки. Пользователь может выбрать дополнительные ключи из пакета предлагаемых, отредактировать или ввести их вручную. Если программе не удается определить тип инсталлятора, пользователь вручную выбирает тип инсталлятора из списка инсталляторов или вводит ключи тихой установки в соответствующее поле.
  2. Программа готова к развертыванию, однако рекомендуется проверять введенный ключ тихой установки с помощью кнопки Тестовый запуск (локально). Если инсталлятор для установки программы требует участия пользователя, значит введенный ключ не подходит этому инсталлятору.

Достоинства:

  1. Простота записи метода.
  2. Надежно развертывает программу на удаленный компьютер, при условии правильности ключа тихой установки.

Недостатки:

Инсталлятор должен поддерживать ключи установки. Если программа не смогла определить тип инсталлятора самостоятельно, пользователь должен знать тип используемого инсталлятора и ключ для его тихой установки.

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

Макрос

Хорошо подходит для большинства программ со стандартным интерфейсом программы установщика. Во время создания пакета необходимо проинсталлировать программу на локальном компьютере. Метод основывается на записи действий пользователя во время установки, и последующем их воспроизведении на удаленном компьютере.

Принцип записи:

  1. Перед записью необходимо удостовериться, что программа не установлена на компьютере, т.к. интерфейс установщика в таком случае может включать в себя другой набор шагов. Такую же проверку необходимо произвести для удаленного компьютера перед развертыванием.
  2. Модуль записи TSD активирует библиотеку RHookLib.dll с настройкой загружаться во все запускаемые процессы, кроме процессов из списка исключений (по умолчанию все запущенные процессы на момент старта записи). Затем модуль запускает исполняемый файл инсталлятора.
  3. Пользователь устанавливает программу на локальный компьютер. В этот момент библиотека перехватывает все действия пользователя и записывает их в файл Install.jhr во временной папке ОС.
  4. Не рекомендуется задавать путь установки через кнопку Обзор, т.к. на удаленном компьютере расположение элементов окна обзора может отличатся от вашего. Из-за чего воспроизведение макроса не сможет найти нужного окна и будет ждать его появления пока не истечет таймаут. Чтобы этого не произошло, используйте кнопку Безопасно указать папку назначения в окне записи Макроса. Либо Вы можете вставить путь напрямую с помощью кнопок Вставить из буфера обмена и Вставить текст в активное поле окна установщика.
  5. По завершении установки библиотека RHookLib.dll выгружается из процессов, а файл Install.jhr перемещается в хранилище программ главного модуля, в папку соответствующей программы.

Достоинства:

  1. Простота записи метода.
  2. Наглядность записанного метода для редактирования.

Недостатки:

  1. Подходит не для всех инсталляторов. Поставщики программ могут разработать и использовать свой собственный инсталлятор, который может базироваться на авторском управляющем элементе, имитирующем отрисовку и поведение нескольких стандартных управляющих элементов. Макрос не сможет распознать произошедшие изменения в таком управляющем элементе.
  2. Возможны конфликты при развертывании на ОС, имеющую стиль интерфейса, отличный от стиля интерфейса системы, на которой происходила запись метода. Это обусловлено различиями в размере управляющих элементов окна для разных стилей интерфейса. Соответственно сообщения мыши могут отсылаться на область, которая выходит за границы управляющего элемента.

Этот метод не имеет существенных преимуществ перед методом тихой установки и рекомендуется к использованию только тогда, когда по тем или иным причинам его использование невозможно.

Снимок системы

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

Принцип записи:

  1. Перед записью необходимо удостовериться, что программа не установлена на компьютере, т.к. различия между 2-мя снимками системы не будут включать в себя всю необходимую информацию.
  2. Модуль записи TSD делает первый снимок реестра системы и запускает мониторинг изменений файловой системы в системных (и заданных) папках. Далее TSD запускает исполняемый файл инсталлятора.
  3. Пользователь устанавливает программу на локальный компьютер. В этот момент модуль записи запоминает все файловые изменения в заданных папках.
  4. По завершении установки модуль записи останавливает мониторинг файловой системы и делает второй снимок реестра системы. Сравнив 2 снимка, TSD получает изменения, которые произошли в реестре во время установки, и сохраняет все изменения в пакет.

Достоинства:

  1. Подходит для любых инсталляторов.
  2. Простота записи метода (в один клик).

Недостатки:

  1. Генерирует большой файл с данными для развертывания. Размер этого файла может быть больше размера инсталлятора. На развертывание программы это никак не влияет, но увеличивает требование к свободному месту для хранилища программ.
  2. Метод регистрирует все изменения в реестре и файловой системе, включая изменения произведенные самой операционной системой или программами, запущенными в фоне. Потому записанный метод как правило содержит ненужную для устанавливаемой программы информацию (возможно редактирование изменений в снимках после записи для исключения лишних данных и оптимального развертывания).
  3. Очень редко возможны конфликты при развертывании на ОС, имеющую разрядность, отличную от той, на которой происходила запись метода. Это обусловлено некоторыми различиями в реестрах операционных систем с разными разрядностями.

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

Содержание