Объединение установочных пакетов в один

PackageПериодически встречаются такие программы, которые, помимо установки, могут потребовать от пользователя последовательного обновления до последней актуальной версии (как, например, это часто бывает при установке Microsoft Office 2011). Чаще всего, конечно, для этого предусмотрены ассистенты обновления, которые самостоятельно загружают всё необходимое и производят установку. Это даже удобно, если программу нужно поставить на один компьютер. Однако, если их будет, например, три, да ещё и в трафике вы будете ограничены, такой вариант будет в лучшем случае неудобен, а чаще и вообще неприемлем. В таком случае можно загрузить на один из компьютеров дистрибутив программы и установочные пакеты обновлений, после чего последовательно запускать их на каждом компьютере, но, согласитесь, это тоже не лучший вариант — трудоёмкий и занимающий много времени. Намного удобнее было бы объединить все загруженные пакеты в один и затем произвести его запуск на остальных компьютерах (и чем больше у вас устройств, тем удобнее это окажется). Как это сделать — мы покажем на примере Microsoft Office 2011 for Mac.

Первым делом, для удобства, стоит извлечь установочные пакеты из образов (которые имеют расширение .dmg) и поместить их в одну папку, например Office. Для этого создайте папку в удобном вам месте, смонтируйте образы и перетащите в неё файлы установщиков.

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

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

  1. Запустите Терминал из папки «Утилиты» и введите следующую команду, чтобы извлечь содержимое установочного пакета pkgutil --expand "/path/to/Office.pkg" office_edit где /path/to/Office.pkg — путь к установщику, чтобы ввести который достаточно перетащить файл в окно Терминала.

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

    В результате у вас должна получиться папка «office_edit», в которой будут находиться все установочные файлы пакета (или, если вы воспользовались The Unarchiver, стоит создать эту папку и перенести полученные файлы в нее).office_edit

  2. В окне Терминала введите команду pico /path/to/office_edit/Office2011_all_quit.pkg/Scripts/preinstall /path/to/office_edit/Office2011_all_quit.pkg — путь к файлу, который содержит в названии «all_quit». Он должен находится в созданной вами папке «office_edit», но точное его имя зависит от версии Office.
  3. В том же окне у вас откроется текстовый редактор, в котором необходимо заменить текст скрипта следующими двумя строчками

  4. Затем нажмите сочетание клавиш Control + O, чтобы сохранить изменения в файле, и Control + X, чтобы его закрыть.
  5. Чтобы собрать установочный пакет обратно введите команду pkgutil —flatten «/path/to/office_edit» «/path/to/Office 2011 Installer.pkg» где /path/to/office_edit — путь к папке «office_edit», а /path/to/Office 2011 Installer.pkg — путь, указывающий место и имя файла, который мы получим в результате.
  6. Аналогичным образом отключаем скрипт во всех установочных пакетах Office, включая обновления.

Собираем установочный пакет.

Для этих целей удобнее всего использовать бесплатную программу Packages.

  1. Загрузите программу Packages, переместите её в папку «Приложения» и затем запустите.
  2. В открывшемся окне выберите «Raw Package» и нажмите кнопку «Next».rawpackage
  3. Назовите свой проект (например, «Microsoft Office 2011»), и укажите, где бы Вы хотели его сохранить.
  4. Вкладку «Projects» в данном случае можно оставить без изменений.Project
  5. Поскольку установку необходимо производить от имени администратора, а после неё ни перезагрузки, ни каких-либо других действий не требуется, во вкладке «Settings», стоит поставить галочку напротив пункта «Require admin password for installation» и для параметра «On Success» выбрать значение «Do Nothing».settings
  6. Откройте вкладку «Scripts» и перетащите все файлы установки и обновлений в раздел «Additional Resources».Resourses
  7. Последним этапом подготовки является добавление небольшого скрипта, который укажет, какие необходимо запускать пакеты и куда проводить их установку. Для его создания достаточно открыть текстовый редактор, например, TextEdit и вставить в него следующий код:
    В данном примере указано два пакета. Если вы используете большее количество, в скрипт нужно добавить их все аналогичным образом.
  8. После этого нажмите сочетание клавиш ⇧Shift + ⌘Command + T, чтобы сменить формат на PlainText,  и сохраните полученный документ в удобном вам месте (лучше всего в ту же папку «Office»).  Наконец, найдите полученный документ в Finder, выделите его, нажмите ⌘Command + I и удалите его расширение в разделе «Имя и расширение».
  9. Чтобы скрипт мог запуститься откройте Терминал и введите команду sudo chmod a+x /path/to/postinstall где /path/to/postinstall — путь к вашему скрипту.
  10. После этого в окне Packages, в той же вкладке «Scripts» добавьте полученный скрипт в раздел «Post-Installation». postinstall
  11. Нажмите сочетание клавиш ⌘Command + B, чтобы начать сборку установочного пакета. buildprocess

После завершения процесса в директории с проектом появится папка «Build», в которой вы сможете найти готовый установочный пакет.

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

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

О Дмитрий Архипов

Специалист технической поддержки пользователей.
Метки , , , , . Закладка постоянная ссылка.