我打算编写一些脚本来通过服务器上的命令行管理任务。
我将在支持它的服务器中使用 NodeJS Debian 软件包,但我有一些服务器仍在 Debian 3.1 (sarge) 中。
我知道这些服务器都有 Rhino 包,我写的脚本在 Rhino 上可能仍然以同样的方式运行?(考虑到我不使用可能不可用的新 JavaScript 功能)
如果不是,我可以在较旧的 Debian 上使用什么解释器来编写 JS 命令行脚本,这将与我在较新的 Debian 上通过 NodeJS 运行的脚本兼容?
我打算编写一些脚本来通过服务器上的命令行管理任务。
我将在支持它的服务器中使用 NodeJS Debian 软件包,但我有一些服务器仍在 Debian 3.1 (sarge) 中。
我知道这些服务器都有 Rhino 包,我写的脚本在 Rhino 上可能仍然以同样的方式运行?(考虑到我不使用可能不可用的新 JavaScript 功能)
如果不是,我可以在较旧的 Debian 上使用什么解释器来编写 JS 命令行脚本,这将与我在较新的 Debian 上通过 NodeJS 运行的脚本兼容?
我认为不可能编写任何对新 Node.js 和旧 Rhino 都有效的重要内容。
但是,如果您能够在那些旧系统上安装软件包,那么您大概也能够从源代码安装软件(如果您想在那里安装自己的软件,至少您必须这样做)。
从源代码安装 Node 并不困难 - 请参阅我最近关于从源代码安装 Node 的回答(请参阅更新部分)。您甚至可以根据自己的脚本专门安装 Node,以免破坏文件系统。
例如,假设您想在 /opt/X 中安装脚本(为 X 替换一个更好的名称),您可以这样做:
现在把你的脚本放进去
/opt/X/scripts
,记住以一行开头:(对于给定的版本)
或者:
(使用您的符号链接)
通过使用以下内容添加
/opt/X/scripts
到您PATH
的:在您设置
PATH
(like.profile
or.bashrc
) 的地方可以很容易地执行您的脚本。如果您希望您的脚本和node
/npm
二进制文件都易于执行,您可以设置PATH
如下:当然,您可以将“X”更改为更好的名称,或者
/opt/node
像我在此处描述的那样安装节点,或者如果您愿意,可以在其他任何地方安装节点(当然记得在上面的命令中输入您自己的路径)。这样你就可以在你的机器上拥有一个现代、安全和一致的 Node 版本。在这种情况下,我会建议这样做,因为编写可在新旧 Node 和 Rhino 上运行的代码(并做任何有用的事情)似乎并不容易,甚至是不可能的。Node 不仅是 JavaScript,也是一个复杂的 I/O 系统、libuv 和整个 npm 模块的生态系统。
正如那句老话所说,“移植 shell 比移植 shell 脚本更容易”(Larry Wall),所以在你的情况下,与你的脚本一起安装 Node 实际上可能比以一种不需要的方式编写脚本更容易节点(尽管如果您设法做到了,请在此处发表评论,我当然想知道您是如何做到的)。