在哪里“安装”节点应用程序以及启动的最佳方式

在哪里“安装”节点应用程序以及启动的最佳方式

我对 Linux 世界还很陌生,我有一个 Node 应用程序,我想通过 apt 存储库分发它,这就是我现在所做的:

  • 将节点二进制文件放入节点应用程序文件夹中。
  • 使用氟PM构建一个 .deb 包,该包提取 /opt/myNodeApplication 中的节点代码和 /usr/local/bin 中名为“myNodeApplication”的 sh 脚本。

脚本是这样的:

#!/bin/bash
cd /opt/myNodeApplication
./node app.js

这允许我从任何地方从 shell 调用 myNodeApplication。
问题是我怀疑这是正确的方法,所以我想对我的解决方案提供一些意见,问题是:

  • 将节点应用程序提取到/opt/myNodeApplication 中可以吗?或者还有更好的地方吗?
  • 我应该将脚本放在哪里来启动应用程序?我很确定 /usr/local/bin 不是正确的位置,因为该脚本不是“bin”。
  • 有没有更好的方法来完成整个任务?也许根本不使用脚本?

预先非常感谢您。

答案1

提取节点应用程序可以吗/opt/myNodeApplication?或者还有更好的地方吗?

这更多的是一个意见问题,但我认为你这样做很好。这种事情的标准是文件系统层次结构标准, 其中有更具体的要求/opt,但它是您系统的软件包,所以...

我应该将脚本放在哪里来启动应用程序?我很确定/usr/local/bin这不是正确的地方,因为脚本不是“垃圾箱”。

如果您查看内容,/usr/bin您会发现bin目录中包含大量脚本;.../bin目录的意义在于包含可执行命令,而不考虑其实现细节。因此,将脚本存储在其中/usr/local/bin以使您的应用程序更易于启动是可以的。

有没有更好的方法来完成整个任务?也许根本不使用脚本?

实际上,您可以直接使 Node 脚本可执行,并在顶部添加以下 shebang 行:

#!/usr/bin/env node

(看https://stackoverflow.com/questions/24253027/node-and-shebang-help-executing-via-command-line了解详情)。然后您可以将您的重命名app.js为 justapp并让用户直接运行它...(这假设它可以使用除 之外的工作目录运行/opt/myNodeApplication。)

如果您对将 Node 应用程序打包为包感兴趣.deb,请查看npm2deb,它可能会派上用场。

相关内容