Ma c Installer: как определить, является ли установка pkg интерактивной? - PullRequest
0 голосов
/ 04 февраля 2020

Ma c Установщик: я хочу что-то сделать (всплывающее диалоговое окно) в скрипте postinstall ONLY , если это интерактивная установка. (не через MDM или командную строку)

Как я могу определить в моем скрипте postinstall, является ли установка интерактивной или нет?

1 Ответ

0 голосов
/ 13 февраля 2020

Возможно, в будущем кому-то поможет:

Есть 2 варианта: (можно объединить эти 2 варианта, чтобы получить полное решение, зависит от его потребностей)

  1. Одной из переменных среды, установленных установщиком macos, является флаг COMMAND_LINE_INSTALL, который устанавливается на 1 в случае запуска установщика с терминала.

В моем случае мне просто нужно было проверить если COMMAND_LINE_INSTALL существует, если нет - это означает, что это интерактивная установка.

ВАЖНО: эта переменная среды существует и значение = 1 ТОЛЬКО в случае установки из терминала (командной строки).

Во время установки из MDM эта переменная не существует

============================ ============================================

Другое решение (помогите мне определить, идет ли установка из MDM или нет):

Из сценария после установки: запустите ps и проверьте наличие "/ System / Library / CoreServices / Installer. app / Contents / MacOS / Installer "

Если это так - это означает, что установка является интерактивной (с помощью установщика ma c).

Используемые мной строки:

INSTALLER_APP_PATH ="/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer"

if ps aux | grep -v grep | grep -q "$INSTALLER_APP_PATH"
then
     echo "Interactive installation"
else
    echo "Not an interactive installation"
fi
...