我正在尝试使用Packages软件打包我为Mac OS构建的应用。对于要安装的应用程序,应该已经在系统上安装了先决条件,其中一个是节点。我正在根据外部shell脚本的结果检查Defining Requirement的先决条件。
基本上,打包器软件运行指定的外部脚本,如果脚本返回给定值,则继续执行,否则会引发错误。
我编写了以下脚本来检测节点是否已安装
#! /bin/sh
echo "Checking PreReq Node"
node --version | grep "v" &> /dev/null
if [ $? == 0 ]; then
echo "Node Installed"
exit 0;
else
echo "Node not installed"
exit 1;
fi
当我在shell中运行它时,这可以正常工作,但是当在安装程序的上下文中运行时,节点在环境中不可用,因此它失败。如果我更改脚本以使用节点的完整路径,它可以工作
#! /bin/sh
echo "Checking PreReq Node"
/usr/local/bin/node --version | grep "v" &> /dev/null
if [ $? == 0 ]; then
echo "Node Installed"
exit 0;
else
echo "Node not installed"
exit 1;
fi
但是,节点可以安装在不同系统上的不同位置。
如何在没有实际运行节点的情况下检查系统上是否安装了节点?