Использование PackageMaker для запуска скрипта при установке

У меня есть приложение, для которого мне нужно создать установщик, и все, что нужно сделать установщику (кроме копирования приложения), — это запустить скрипт (или исполняемый файл), который не является частью самого приложения. Любая помощь в том, как я могу это сделать? Я вижу на вкладке Требования действие Результаты выполнения скрипта, а также Действия перед установкой в разделе Действия. strong> с действием Открыть файл. Подойдет ли любой из них или мне следует искать в другом месте?


person Abdullah Jibaly    schedule 12.03.2009    source источник


Ответы (3)


здесь хорошее руководство

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

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

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

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

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

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

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

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

person epatel    schedule 12.03.2009
comment
Спасибо, но у меня есть небольшой вопрос: я создал постустановочный скрипт, но как мне сослаться на исполняемый файл, который я хочу запустить, другими словами, как мне включить этот исполняемый файл (не часть фактического приложения) в пакет и что это путь выглядит так (в постустановочном скрипте). - person Abdullah Jibaly; 13.03.2009
comment
Когда установка завершится, в пользовательском интерфейсе появится кнопка завершения. Получаем ли мы обратный вызов для этого. Так что я могу запустить пользовательский интерфейс, как только пользователь закроет окно установки. - person Durgaprasad; 16.07.2018
comment
Я приду сюда много лет спустя, но на случай, если кто-нибудь еще заглянет сюда, preflight/postflight/preupgrade/postupgrade больше не поддерживается. Просто preinstall/postintall. Кроме того, начиная с Catalina, вы не можете предполагать, что /bin/bash существует, поэтому ваши сценарии должны быть /bin/sh - person spartygw; 12.07.2021

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

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

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

#!/bin/bash

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

person joon    schedule 22.10.2010
comment
просто папка. Спасибо. Единственная часть данных, препятствующая компиляции моего пакета, — это место, куда поместить чертов скрипт установки. - person mcandre; 18.08.2011
comment
На случай, если это кому-то поможет: если интерфейс командной строки создателя пакетов используется с параметром --scripts, имена файлов сценариев не должны иметь расширения .sh. Просто назовите их preflight, postflight и т.д. - person pepsi; 18.06.2012

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

person Bob Denny    schedule 06.01.2010
comment
Я не чувствовал себя вправе копировать информацию здесь, поэтому извиняюсь за ответ по ссылке. - person Bob Denny; 06.01.2010