如何在环境

时间:2017-08-17 18:41:40

标签: node.js macos shell

我正在尝试使用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

但是,节点可以安装在不同系统上的不同位置。

如何在没有实际运行节点的情况下检查系统上是否安装了节点?

1 个答案:

答案 0 :(得分:0)

这可以帮助您:

whereis node | grep ' ' -ic

enter image description here