Mac 安装程序:如何确定软件包安装是否是交互式的
Mac Installer : How to determine if pkg installation is intercative
Mac 安装程序:如果是交互式安装,我想在安装后脚本中做一些事情(弹出对话框)仅。 (不是通过 MDM 或命令行)
如何在我的安装后脚本中确定安装是否是交互式的?
也许以后会对某人有所帮助:
有2个选项:
(一个人可以结合ose 2个选项来得到完整的解决方案,取决于它的需要)
- macos 安装程序设置的环境变量之一是标志 COMMAND_LINE_INSTALL,如果从终端执行安装程序,则该标志设置为 1。
在我的例子中,我只需要检查 COMMAND_LINE_INSTALL 是否存在,如果不存在 - 这意味着这是交互式安装。
重要提示:此环境变量仅在从终端(命令行)安装的情况下存在且值为 1。
从 MDM 安装期间,此变量不存在
============================================= ============================
- 另一种解决方案(帮我判断是不是从MDM安装的):
从 post 安装脚本:运行 ps 并检查是否存在“/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer”
如果是 - 这意味着安装是交互式的(通过 mac 安装程序应用程序)。
我使用的线路:
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
Mac 安装程序:如果是交互式安装,我想在安装后脚本中做一些事情(弹出对话框)仅。 (不是通过 MDM 或命令行)
如何在我的安装后脚本中确定安装是否是交互式的?
也许以后会对某人有所帮助:
有2个选项: (一个人可以结合ose 2个选项来得到完整的解决方案,取决于它的需要)
- macos 安装程序设置的环境变量之一是标志 COMMAND_LINE_INSTALL,如果从终端执行安装程序,则该标志设置为 1。
在我的例子中,我只需要检查 COMMAND_LINE_INSTALL 是否存在,如果不存在 - 这意味着这是交互式安装。
重要提示:此环境变量仅在从终端(命令行)安装的情况下存在且值为 1。
从 MDM 安装期间,此变量不存在
============================================= ============================
- 另一种解决方案(帮我判断是不是从MDM安装的):
从 post 安装脚本:运行 ps 并检查是否存在“/System/Library/CoreServices/Installer.app/Contents/MacOS/Installer”
如果是 - 这意味着安装是交互式的(通过 mac 安装程序应用程序)。
我使用的线路:
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