Использование PackageMaker для запуска скрипта при установке - PullRequest
16 голосов
/ 13 марта 2009

У меня есть приложение, для которого мне нужно создать установщик, и все, что нужно сделать установщику (кроме копирования приложения), - запустить скрипт (или исполняемый файл), который не является частью самого приложения. Любая помощь о том, как я могу это сделать? Я вижу, что на вкладке Требования есть действие Results of Script , а на вкладке Actions есть также Preinstall Actions имеет действие Открыть файл . Будет ли один из них делать работу, или я должен искать в другом месте?

Ответы [ 3 ]

21 голосов
/ 13 марта 2009

Здесь - хороший практический совет

Существует 7 типов сценариев, которые можно запустить в процессе установки:

InstallationCheck: Этот скрипт запускается в начале процесса установки (даже до шага Аутентификация). Его можно использовать для проверки возможности установки Пакета на этом компьютере.

VolumeCheck: Этот скрипт запускается на шаге «Выберите место назначения». Он используется для определения тома, на который можно установить Пакет.

предполетной: Этот скрипт запускается сразу после того, как пользователь нажал на кнопку «Установить».

preinstall / preupgrade: Этот сценарий запускается после сценария предварительной проверки, если он есть (в случае установки одного пакета); в противном случае сразу после того, как пользователь нажал кнопку «Установить».

Как видите, здесь есть два типа скриптов. Предварительная установка запускается, когда пакет никогда не устанавливался (с точки зрения Installer.app), предварительная версия запускается, когда пакет уже установлен. Чтобы определить, был ли пакет уже установлен или установлен, Installer.app просматривает содержимое следующего каталога: / Library / Receipts. Если в нем есть файл PackageName.pkg, то пакет уже установлен, в противном случае это первая установка.

postinstall / postupgrade: Этот скрипт запускается после установки файлов в пакете. Смотрите (preinstall / preupgrade), чтобы увидеть, какой из них запущен.

послеполетного: Этот сценарий запускается после сценария postinstall / postupgrade или после установки пакета.

5 голосов
/ 22 октября 2010

Мне только что удалось включить скрипт Shell в свой пакет, который я сделал с PackageMaker. Мне нужно было добавить приложение к элементам входа в систему после установки, поэтому я сделал скрипт под названием postflight.sh и поместил его в папку. (похоже, работает с любым местоположением)

А потом в моей упаковке есть Приложения. В разделе Содержание, Пакет: Приложения, на вкладке Сценарии я выбираю postflight.sh в разделе Postflight. Вот и все.

мой postflight.sh начинается с

#!/bin/bash

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

2 голосов
/ 06 января 2010

Эта статья PackageMaker How-To устарела, но в ней есть очень полезная информация о сценариях о том, как на полпути вниз. Найдите таблицу, показывающую переменные командной строки, как видно из shell и perl, а также некоторые полезные значения состояния выхода.

...