检测具有节点的系统路径上是否存在可执行文件

Ral*_*way 5 unix windows cross-platform node.js npm

是否有一种简单的方法可以判断系统路径上是否有可用的系统可用节点?例如,如果用户已经安装了蟒蛇在/usr/bin/python/usr/bin$PATH我如何在节点检测到?相反,检测什么时候没有安装或者没有安装,即/usr/opt/local/mycustompath/python?理想情况下希望他们的npm包可用...

我确信这是一个快速谷歌搜索与正确的搜索词,但我失败的原因在于哪里和哪些是非常通用的搜索词.

背景

我工作的一些开发配置的节点工具,并希望能够检测蟒蛇(或PIP)是否在路径已经上市,如果没有,请用户告诉它安装或告诉我们在哪里可以找到它.我目前正计划在whereWindows机器和which*nix机器上执行此操作,但希望可能有一种跨平台的方式来执行此操作.

dei*_*mus 0

您必须找到一种方法来做到这一点,因为没有“通用”或“开箱即用”的方法来做到这一点。

一种方法是,您可以使用检查是否通过包管理器安装了所需的包/二进制文件,然后您可以使用实用程序 whereis尝试在标准 Linux 位置列表中找到所需的程序,在 中列出$PATH

当然,您也可以使用该实用程序which,但whereis会提供更多信息。您可以在此处which查看和的区别。whereis

一般来说,正如您的示例中所示,用户可能已在某个随机位置手动安装了某些软件包,但未在 中列出$PATH。这样就根本无法检查软件包是否已安装,而是尝试在完整的文件系统树中查找二进制名称或相关文件。

  • 该解决方案依赖于执行另一个外部可执行文件,即“whereis”。例如,这在 Windows 上不可用。 (2认同)