Простой пример создания акселератора для APP-V пакета

softgridclosedboxВ своем сообщении, посвященном выходу новой версии APP-V, я уже писал об акселераторах. Обстоятельства так сложились, что пришлось всерьез попрактиковаться в их использовании. Поэтому, я решил поделиться некоторыми практическими приемами их использования, на простеньком примере, и теперь, в отличие от первого сообщения,  рассмотреть все это с изнаночной стороны.

Итак, акселераторы для APP-V пакета (App-V Package Accelerators), это нововведение, появившееся в APP-V v. 4.6 SP1. Они позволяют выполнить секвенсирование приложения без отслеживания процесса его установки, используя имеющийся в архиве акселератора шаблон проекта секвенсирования и другие заранее определенные автором акселератора правила и рекомендации.

Для чего это делается и почему можно почитать здесь. Суммируя коротко сказанное по ссылке, все это предлагается для распространения “лучших практик” решения конкретных задач виртуализации приложений и, как ни странно, просто экономии времени при секвенсировании, за счет использования готового решения.

Описание процесса

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

При запуске акселератора секвенсор ищет оригинальную установку приложения, обрабатывает указанный в проекте набор файлов, перестраивает код приложения, индексирует его и вместе с другими метаданными помещает в .sft файл. Таким образом, традиционного отслеживания самого процесса установки не выполняется вообще.

Если посмотреть на это с другой стороны, то для сборки APP-V пакета через акселератор может потебоваться всего-навсего любая рабочая станция с установленным экземпляром приложения и секвенсор APP-V.

Практика

Теперь я попытаюсь проиллюстрировать сказанное на примере создания акселератора для веб-браузера Opera.

Работы будут выполнены в две фазы: создание акселератора и применение акселератора для создания пакета виртуализированного приложения.

Конструируем акселератор.

1 Этап – создание проекта

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

Запускаем секвенсор на компьютере администратора APP-V в режиме создания нового пакета:

appv1

Прежде, чем приступить к отслеживанию процесса установки, задаем некоторые исключения, руководствуясь тами соображениями:

Opera хранит профили пользователей, кэш, виджеты и прочие настройки в каталогах:

  • %APPDATA%Opera и
  • %LOCALAPPDATA%Opera По умолчанию, каталог .AppDataLocal, т.е  %LOCALAPPDATA%  исключен из списка мест, за которыми ведется наблюдение в процессе секвенсирования.
    Каталог .AppDataRoaming, напротив, отслеживается. Однако, и его можно исключить, так как Opera все равно воссоздаст каталоги и .AppDataLocalOpera и  .AppDataRoamingOpera со всем необходимым содержимым, если их нет на месте. Более того, если эти каталоги не виртуализировались в виртуальную файловую систему (VFS) в процессе мониторинга установки, то они будут использоваться приложением из-под “virtual bubble” в реальной файловой системе, а если в этих физических каталогах уже были данные, то они будут использованы приложением как есть. Как результат, при установке виртуального приложения будут сохранены имевшиеся ранее профили и настройки. Что вдвойне разумно.

Таким образом, перед началом секвенсирования добавляем каталог %APPDATA%Opera в список исключений (опция Tools->Options->Exclusion Items в меню секвенсора):

a
ppv2

Далее процесс мониторинга установки приложения выполняется обычным порядком, за исключением, того, что Opera устанавливается не на раздел Q:, а в каталог по умолчанию, например C:Program Files (x86)Opera.

appv3

Установка в каталог по-умолчанию имеет особый смысл. Этот каталог будет зафиксирован в файле проекта и, в последующем, акселератор обратится за наполнением .sft контейнера именно в этот каталог физической файловой системы. Поскольку на машине, где будет выполнена окончательная сборка пакета, раздел Q: может и отсутствовать, то C:Program Files (х86) – это один из вариантов решения задачи. Более того, в моем примере, для окончательной сборки пакета будет использоваться просто любая машина с установленной Opera, и логично предположиить, что она устанавливалась с параметрами по-умолчанию, а C:Program Files (х86)Opera и будет именно тем местом, где будут находиться недостающие файловые ресурсы.

По окончании секвенсирования, настраиваем параметры доставки приложения в соответствии с имеющейся инфраструктурой и сохраняем проект в некий каталог:

image

2 Этап – создание акселератора на основе полученного проекта

Запускаем секвенсор в режиме создания акселератора:

image

Указываем путь к файлу проекта:

image

Указываем путь к оргинальной установке Opera, выбрав опцию “Файлы, установленные в локальной файловой системе” (Files installed on local system):

image

Прежде, чем нажать кнопку “Next” и завершить выполнение мастера, необходимо выполнить небольшую “зачистку”, т.к. в наборе, который мы используем, есть элементы, которые отличают его от “чистой” установки продукта, а именно она будет использоваться на завершающем этапе.

Удаляем служебные файлы и папки, созданные собственно секвенсором в процессе мониторинга установки при создании проекта:

image

Затем мастер предложит указать некоторые дополнительные настройки, например, принять решение по поводу предположительно выявленного мусора:

 image

… и указать точные атрибуты приложения (они будут проверяться при окончательной сборке результирующего пакета):

image

… а еще указать .rtf файл с инструкциями по сборке пакета (создается автором акселератора):

image

… и место, в которое будет помещен .cab архив с акселератором:

 image

Ну, а далее мастер самостоятельно сформирует .cab архив с акселератором.

Сам результирующий архив содержит следующее:

  • .OSD файл линковщика
  • .SPRJ файл проекта
  • Манифест
  • “Мусор”, который получился в результате работы пр
    иложения, но не был помечен как “мусор” (см. выше)
  • · Файлы оптимизации, .rtf файл с инструкцией и .xml дескриптор содержимого .sft файла.

Теперь можно перейти ко второй фазе.

 

Этап 3 – генерирование пакета приложения на основе имеющегося акселератора и установленного экземпляра приложения

Итак, у нас имеется рабочая станция с установленным локально, в каталог  C:Program Files (x86)opera, приложением Opera.

На эту же рабочую станцию устанавливаем секвенсор со всеми параметрами по умолчанию.

Запускаем мастер секвенсора в режиме создания пакета посредством акселератора:

imageДалее…

Указываем путь к акселератору:

image

Читаем знакомую инструкцию по сборке пакета:

image

Подтверждаем, что именно это приложение уже установлено:

image

Далее можно немножко “подкрутить” отвиртуализированное приложение, если есть на то необходимость:

image

Ну, а в нашем случае мы это проигнорируем и на выходе получим готовый к использованию пакет приложения Opera, с воссозданным .sft файлом (файл с проиндексированными блоками кода и данных приложения):

image

That’s all folks! 220px-Bart_Simpson

Дополнительные сведения по теме:

1. Microsoft Application Virtualization 4.6 SP1 Sequencing Guide.

2. Microsoft Application Virtualization File Format Specification.

3. Коллекция акселераторов.

P.S. Был немного неточен. That’s not all, folks. На очереди – описание процесса скриптования всех выше описанных действий.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.