Как узнать, обновляется ли мой пакет в постустановочном сценарии плоского пакета?

У меня есть плоский пакет Mac OS X, который запускает сценарий после установки. Я хотел бы знать в сценарии, если это новая установка или обновление. Пакеты в стиле Bundle имеют сценарии до и после обновления, но я не могу использовать пакетный пакет.

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


person Dustin    schedule 09.05.2012    source источник


Ответы (2)


Если это ваша посылка, почему бы вам не проверить признаки того, что вы уже на машине? Либо оставить какой-то маркер, который скажет вам, что вы уже были установлены, либо проверить, присутствуют ли ваши старые файлы на диске перед развертыванием?

person Mahmoud Al-Qudsi    schedule 09.05.2012
comment
Это то, что я в итоге сделал. В своем предустановочном сценарии я использую pkgutil, чтобы проверить, установлен ли мой пакет, и создаю файл флага, который затем проверяет мой постустановочный сценарий, чтобы определить, было ли это обновление или нет. - person Dustin; 10.05.2012

Если ваш пакет устанавливается в первый раз, установщик вызовет сценарий постустановки, но если он обновлен, он должен вызвать сценарий постобновления.

Дополнительная информация здесь в разделе Что о сценарии.

person Kevin MOLCARD    schedule 21.06.2012