Использование PackageMaker для запуска script при установке
У меня есть приложение, в котором мне нужно создать установщик, и все, что нужно сделать установщику (помимо копирования приложения), запускается script (или исполняемый файл), который не является частью самого приложения. Любая помощь в том, как я могу это сделать? Я вижу на вкладке Требования есть Результаты действия Script, а также Действия по предварительной установке в Действиях, которая имеет действие Открыть файл. Будет ли любой из них выполнять эту работу или я должен искать в другом месте?
Ответы
Ответ 1
Здесь является хорошим How-To
Существует 7 типов сценариев, которые могут быть запущены в процессе установки:
InstallationCheck:Этот script запускается в начале процесса установки (даже до этапа аутентификации). Его можно использовать для проверки того, что пакет может быть установлен на этом компьютере.
VolumeCheck:Этот script запускается на шаге "Выбор места назначения". Он используется для определения того, на каком объеме может быть установлен пакет.
предполетной:Этот script запускается сразу после нажатия на кнопку "Установить".
preinstall/preupgrade:Этот script запускается после предполета script, если он есть (в случае установки одного пакета); в противном случае сразу после нажатия на кнопку "Установить".
Как видите, здесь есть 2 типа скриптов. Предварительная установка запускается, когда пакет никогда не был установлен (с точки зрения Installer.app), preupgrade запускается, когда пакет уже установлен. Чтобы определить, был ли пакет уже установлен или нет, Installer.app обращается к содержимому следующего каталога:/Library/Receipts. Если в нем есть файл с именем PackageName.pkg, то пакет уже установлен, иначе он будет первым.
postinstall/postupgrade:Этот script запускается после установки файлов в пакете. См. (Preinstall/preupgrade), чтобы узнать, какой из них запущен.
послеполетного:Этот script запускается после postinstall/postupgrade script или когда пакет был установлен.
Ответ 2
Мне просто удалось включить оболочку script в мой пакет, который я сделал с PackageMaker. Мне нужно было добавить свое приложение в элементы входа после установки, поэтому я сделал script под названием postflight.sh
и поместил его в папку. (кажется, он работает с любым местоположением)
И затем в моем пакете у меня есть Приложения. В разделе "Содержимое: Пакет: Приложения" на вкладке "Сценарии" я выбираю postflight.sh
в разделе "Постфакс". Это.
my postflight.sh
начинается с
#!/bin/bash
а затем у него есть script, чтобы добавить приложение в элементы входа. Когда у меня этого не было, я мог бы сделать пакет, но установка завершилась неудачно. Надеюсь, что это будет полезно.
Ответ 3
Эта статья PackageMaker How-To устарела, но у нее есть очень полезная информация о скриптах о том, что происходит на полпути. Посмотрите таблицу, показывающую переменные командной строки, как видно из оболочки и perl, плюс некоторые полезные значения статуса выхода.