Первая часть статьи здесь.
В качестве примера продемонстрируем создание установочного пакета Mozilla Firefox 31.5.3 esr в среде Pakage Maker. Firefox достаточно популярен среди наших заказчиков и при этом является достаточно показательным.
Для начала скачаем последнюю версию пакета с официального сайта (на момент написания статьи была доступна Mozilla Firefox 31.5.3 esr). Запускаем DMG файл на MAC-машине. Firefox.app переносим в Applications:
![image](https://habrastorage.org/r/w1560/files/e69/b5b/cff/e69b5bcffeb14f1584f13a1afba35f46.png)
(под катом много фото)
Запускаем Firefox -> Don’t import anything
![image](https://habrastorage.org/r/w1560/files/dbc/3c2/730/dbc3c27305164e3b86074c847a1bd58c.png)
Default Browser -> выставляем галочку, чтобы больше окошко не появлялось и нажимаем No
![image](https://habrastorage.org/r/w1560/files/862/e86/833/862e8683370445dfad8b807e8040117d.png)
Options -> General установим домашнюю страничку www.google.ru в поле Home Page
![image](https://habrastorage.org/r/w1560/files/974/23c/cc7/97423ccc79264feab6f0d7da5394add1.png)
Options -> Data Choices отключим Enable Telemetry и Enable Firefox Health Report
![image](https://habrastorage.org/r/w1560/files/062/b06/22e/062b0622e1b64453952c88049703bfd3.png)
Options -> Update выберем Never check for updates
![image](https://habrastorage.org/r/w1560/files/844/eba/272/844eba2728964de5b0bedaf57de2f881.png)
Далее создаем проектную папку Mozilla Firefox 31.5.3 esr куда будем помещать все файлы, которые нужны будут для пакета. Запускаем Package Maker, заполняем Organization и Minimum Target, как показано на картинке:
![image](https://habrastorage.org/r/w1560/files/f09/067/12a/f0906712a11c4e7ab3c8fef979c8fe19.png)
Прописываем заголовок Title:
![image](https://habrastorage.org/r/w1560/files/0da/c1e/89a/0dac1e89a2cc467ba7c9d44fbd31eb8e.png)
Из Applications выбираем Firefox.app и копируем в проектную папку (Mozilla Firefox 31.5.3 esr), далее переносим в Contents. Создается новый Choice, в котором прописываем Choice Name, Identifier.
![image](https://habrastorage.org/r/w1560/files/c95/d59/273/c95d59273aef4a41953d97084ec8a3ca.png)
Ставим путь установки (Destination) и заполняем Package Identifier, в дальнейшем данный идентификатор используется для Upgrade.
![image](https://habrastorage.org/r/w1560/files/ed3/162/fbe/ed3162fbe02c46e0af30c06a1c7dad31.png)
Выдаем права для Firefox.app root:wheel, как показано ниже:
![image](https://habrastorage.org/r/w1560/files/8fb/792/282/8fb792282bd84a6aa14c591e16b28e42.png)
На вкладке Components снимаем галочку Allow Relocation, иначе приложение может не попасть в нужную папку при проверочной установке.
![image](https://habrastorage.org/r/w1560/files/3f1/9a2/46f/3f19a246f4254020b275e77a451dc07f.png)
Копируем пользовательские настройки, которые хранятся в ~/Library/Application Support/Firefox, предварительно удалив всё ненужное в проектную папку и создав еще один Choice.
![image](https://habrastorage.org/r/w1560/files/0da/110/1eb/0da1101ebcbd466ea54ca06b47863b71.png)
В поле Destination выставляем путь, откуда будут копироваться пользовательские настройки.
![image](https://habrastorage.org/r/w1560/files/869/485/51d/86948551d6b14284bb22ee7f0d344a69.png)
Назначаем права root:wheel, как показано ниже:
![image](https://habrastorage.org/r/w1560/files/1ef/a0e/968/1efa0e9683ca4819a855977fb42f6d98.png)
Для копирования настроек пользователям создаем mozilla.firefox.plist файл, в котором прописываем следующее:
![image](https://habrastorage.org/r/w1560/files/546/df7/bac/546df7bacccd4e9bbaa6ef194724c6f1.png)
Program Arguments указываем путь на скрипт, который будет исполняться при первом входе пользователя в систему. После этого создаем еще один Choice.
Обратите внимание на флаг LaunchOnlyOnce и RunAtLoad, т.е. запускать скрипт при входе пользователя в систему и только один раз.
![image](https://habrastorage.org/r/w1560/files/fb6/f85/c24/fb6f85c24a7e4ae995639ea148dca943.png)
Данный plist файл устанавливаем в /Library/LaunchAgents
![image](https://habrastorage.org/r/w1560/files/b66/c72/9b2/b66c729b228c4704851d6793fdd5d530.png)
И выдаем права, как показано ниже:
![image](https://habrastorage.org/r/w1560/files/2ff/d9e/fed/2ffd9efedd0a4d228a6ed85eb01257b9.png)
Создаем скрипт applysettings.sh, который будет копировать из "/Library/Cashes/Mozilla пользователю:
#!/bin/sh
/bin/cp -r "/Library/Cashes/Mozilla/" ~/Library/Application\ Support/
Создаем еще один Choice для скрипта:
![image](https://habrastorage.org/r/w1560/files/39f/189/c72/39f189c72f3f45c9ba1aef80f797a2b4.png)
Задаем Destination и Package Identifier:
![image](https://habrastorage.org/r/w1560/files/cdf/9b4/594/cdf9b45948bd42b082294c19f6cc8afb.png)
Права назначаем те же что и для Choice Application
После того как все настройки были применены, для пакета делаем Project-> Build
![image](https://habrastorage.org/r/w1560/files/fa7/fa2/1a8/fa7fa21a82104cd5a84ef6e63b0695d1.png)
Делаем Save и ждем готовый пакет.
![image](https://habrastorage.org/r/w1560/files/2cf/281/bc8/2cf281bc82cc4c14af3683f96b79ad02.png)
Демонстрационный пакет готов, и можно его проверить на клиентской машине. После установки необходимо сделать log-off, чтобы были применены настройки для пользователя (скрипт запускается через launch agents).
Также хотелось бы добавить, что Package Maker поддерживает apple script, который может быть запущен до и после установки пакета. Еще приятной особенностью Package Maker является набор шаблонных скриптов, таких как: Get Application, Kill Application, Open File, Open URL. Они могут быть запущены в начале или в конце установки пакета.
Для удобства разработки и тестирования пакетов нами был разработан целый ряд скриптов, утилит (программ), которые позволяют нам увеличить скорость разработки решений и поддерживать их высокое качество, но об этом более подробно расскажем в следующей статье.
Полученный PKG пакет можно развернуть с помощью тех же систем развертывания (например, SCCM 2012) на тысячи компьютеров в несколько кликов, при этом нет необходимости в его конфигурировании на пользовательской стороне. В итоге — пользователи счастливы, как и мы :)
Автор: Eduard123
В качестве примера продемонстрируем создание установочного пакета Mozilla Firefox 31.5.3 esr в среде Pakage Maker. Firefox достаточно популярен среди наших заказчиков и при этом является достаточно показательным.
Для начала скачаем последнюю версию пакета с официального сайта (на момент написания статьи была доступна Mozilla Firefox 31.5.3 esr). Запускаем DMG файл на MAC-машине. Firefox.app переносим в Applications:
![image](https://habrastorage.org/files/e69/b5b/cff/e69b5bcffeb14f1584f13a1afba35f46.png)
(под катом много фото)
Запускаем Firefox -> Don’t import anything
![image](https://habrastorage.org/files/dbc/3c2/730/dbc3c27305164e3b86074c847a1bd58c.png)
Default Browser -> выставляем галочку, чтобы больше окошко не появлялось и нажимаем No
![image](https://habrastorage.org/files/862/e86/833/862e8683370445dfad8b807e8040117d.png)
Options -> General установим домашнюю страничку www.google.ru в поле Home Page
![image](https://habrastorage.org/files/974/23c/cc7/97423ccc79264feab6f0d7da5394add1.png)
Options -> Data Choices отключим Enable Telemetry и Enable Firefox Health Report
![image](https://habrastorage.org/files/062/b06/22e/062b0622e1b64453952c88049703bfd3.png)
Options -> Update выберем Never check for updates
![image](https://habrastorage.org/files/844/eba/272/844eba2728964de5b0bedaf57de2f881.png)
Далее создаем проектную папку Mozilla Firefox 31.5.3 esr куда будем помещать все файлы, которые нужны будут для пакета. Запускаем Package Maker, заполняем Organization и Minimum Target, как показано на картинке:
![image](https://habrastorage.org/files/f09/067/12a/f0906712a11c4e7ab3c8fef979c8fe19.png)
Прописываем заголовок Title:
![image](https://habrastorage.org/files/0da/c1e/89a/0dac1e89a2cc467ba7c9d44fbd31eb8e.png)
Из Applications выбираем Firefox.app и копируем в проектную папку (Mozilla Firefox 31.5.3 esr), далее переносим в Contents. Создается новый Choice, в котором прописываем Choice Name, Identifier.
![image](https://habrastorage.org/files/c95/d59/273/c95d59273aef4a41953d97084ec8a3ca.png)
Ставим путь установки (Destination) и заполняем Package Identifier, в дальнейшем данный идентификатор используется для Upgrade.
![image](https://habrastorage.org/files/ed3/162/fbe/ed3162fbe02c46e0af30c06a1c7dad31.png)
Выдаем права для Firefox.app root:wheel, как показано ниже:
![image](https://habrastorage.org/files/8fb/792/282/8fb792282bd84a6aa14c591e16b28e42.png)
На вкладке Components снимаем галочку Allow Relocation, иначе приложение может не попасть в нужную папку при проверочной установке.
![image](https://habrastorage.org/files/3f1/9a2/46f/3f19a246f4254020b275e77a451dc07f.png)
Копируем пользовательские настройки, которые хранятся в ~/Library/Application Support/Firefox, предварительно удалив всё ненужное в проектную папку и создав еще один Choice.
![image](https://habrastorage.org/files/0da/110/1eb/0da1101ebcbd466ea54ca06b47863b71.png)
В поле Destination выставляем путь, откуда будут копироваться пользовательские настройки.
![image](https://habrastorage.org/files/869/485/51d/86948551d6b14284bb22ee7f0d344a69.png)
Назначаем права root:wheel, как показано ниже:
![image](https://habrastorage.org/files/1ef/a0e/968/1efa0e9683ca4819a855977fb42f6d98.png)
Для копирования настроек пользователям создаем mozilla.firefox.plist файл, в котором прописываем следующее:
![image](https://habrastorage.org/files/546/df7/bac/546df7bacccd4e9bbaa6ef194724c6f1.png)
Program Arguments указываем путь на скрипт, который будет исполняться при первом входе пользователя в систему. После этого создаем еще один Choice.
Обратите внимание на флаг LaunchOnlyOnce и RunAtLoad, т.е. запускать скрипт при входе пользователя в систему и только один раз.
![image](https://habrastorage.org/files/fb6/f85/c24/fb6f85c24a7e4ae995639ea148dca943.png)
Данный plist файл устанавливаем в /Library/LaunchAgents
![image](https://habrastorage.org/files/b66/c72/9b2/b66c729b228c4704851d6793fdd5d530.png)
И выдаем права, как показано ниже:
![image](https://habrastorage.org/files/2ff/d9e/fed/2ffd9efedd0a4d228a6ed85eb01257b9.png)
Создаем скрипт applysettings.sh, который будет копировать из "/Library/Cashes/Mozilla пользователю:
#!/bin/sh
/bin/cp -r "/Library/Cashes/Mozilla/" ~/Library/Application\ Support/
Создаем еще один Choice для скрипта:
![image](https://habrastorage.org/files/39f/189/c72/39f189c72f3f45c9ba1aef80f797a2b4.png)
Задаем Destination и Package Identifier:
![image](https://habrastorage.org/files/cdf/9b4/594/cdf9b45948bd42b082294c19f6cc8afb.png)
Права назначаем те же что и для Choice Application
После того как все настройки были применены, для пакета делаем Project-> Build
![image](https://habrastorage.org/files/fa7/fa2/1a8/fa7fa21a82104cd5a84ef6e63b0695d1.png)
Делаем Save и ждем готовый пакет.
![image](https://habrastorage.org/files/2cf/281/bc8/2cf281bc82cc4c14af3683f96b79ad02.png)
Демонстрационный пакет готов, и можно его проверить на клиентской машине. После установки необходимо сделать log-off, чтобы были применены настройки для пользователя (скрипт запускается через launch agents).
Также хотелось бы добавить, что Package Maker поддерживает apple script, который может быть запущен до и после установки пакета. Еще приятной особенностью Package Maker является набор шаблонных скриптов, таких как: Get Application, Kill Application, Open File, Open URL. Они могут быть запущены в начале или в конце установки пакета.
Для удобства разработки и тестирования пакетов нами был разработан целый ряд скриптов, утилит (программ), которые позволяют нам увеличить скорость разработки решений и поддерживать их высокое качество, но об этом более подробно расскажем в следующей статье.
Полученный PKG пакет можно развернуть с помощью тех же систем развертывания (например, SCCM 2012) на тысячи компьютеров в несколько кликов, при этом нет необходимости в его конфигурировании на пользовательской стороне. В итоге — пользователи счастливы, как и мы :)
Автор: Eduard123
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Каким образом Вы управляете Mac OS приложениями в Вашей компании?
4.48% Управляем всем жизненным циклом (включая создание инсталляционных пакетов), согласно ITIL или другим практикам3
0% Управляем всем жизненным циклом (но без процесса подготовки пакетов), согласно ITIL или другим практикам0
4.48% В данный момент мы внедряем процессы управления ПО3
8.96% Мы не видим смысла (преимуществ) в управлении ПО для Mac6
31.34% Доля Mac OS устройств настолько мала, что мы не задумывались об управлении Mac приложениями21
31.34% У нас нет Mac OS устройств21
19.4% Не задумывались об управлении программным обеспечением13
Проголосовали 67 пользователей. Воздержались 38 пользователей.