旧 Debian 安装上的 JavaScript 解释器 (sarge)

旧 Debian 安装上的 JavaScript 解释器 (sarge)

我打算编写一些脚本来通过服务器上的命令行管理任务。

我将在支持它的服务器中使用 NodeJS Debian 包,但我的几台服务器仍在使用 Debian 3.1(sarge)。

我知道这些服务器有 Rhino 软件包,我编写的脚本可能仍可以在 Rhino 上以相同的方式运行?(考虑到我不使用可能不可用的 JavaScript 新功能)

如果没有,我可以使用什么解释器在旧版 Debian 上执行 JS 命令行脚本,以便与我在新版 Debian 上通过 NodeJS 运行的脚本兼容?

答案1

我认为不可能编写出可以同时在新 Node.js 和旧 Rhino 上运行的复杂程序。

但是如果您能够在那些旧系统上安装软件包,那么您大概也能够从源代码安装软件(至少如果您想在那里安装自己的软件,您必须这样做)。

从源代码安装 Node 并不困难 - 请参阅我最近回答过关于从源代码安装 Node 的问题(见更新部分)。您甚至可以按照自己的脚本专门安装 Node,以免破坏文件系统。

例如,假设您想要将脚本安装在 /opt/X(用更好的名称替换 X)中,您可以这样做:

# create a directory:
mkdir -p /opt/X/node-src

# change dir:
cd /opt/X/node-src

# download the Node source:
curl -O https://nodejs.org/dist/v4.4.5/node-v4.4.5.tar.gz

# extract the archive:
tar xzvf node-v4.4.5.tar.gz

# go into the extracted dir:
cd node-v4.4.5

# configure for installation:
./configure --prefix=/opt/X/node-v4.4.5

# build and test:
make && make test

# install:
sudo make install

# make a symlink to that version:
sudo ln -svf /opt/X/node-v4.4.5 /opt/X/node

# create a directory for your scripts:
mkdir /opt/X/scripts

现在输入你的脚本/opt/X/scripts并记住以一行开头:

#!/opt/X/node-v4.4.5/bin/node

(针对给定版本)

或者:

#!/opt/X/node/bin/node

(使用你的符号链接)

通过使用类似以下内容来添加/opt/X/scripts到您的:PATH

PATH="/opt/X/scripts:$PATH"

在某个地方设置PATH(例如.profile.bashrc)将使脚本的执行变得容易。如果您希望脚本和node/npm二进制文件都易于执行,则可以PATH像这样设置:

PATH="/opt/X/scripts:/opt/X/node/bin:$PATH"

当然,你可以将“X”更改为更好的名称,或者安装/opt/node节点我在这里描述或者任何您想要的地方(当然请记住在上面的命令中输入您自己的路径)。

这样,您就可以在计算机上使用现代、安全且一致的 Node 版本。在这种情况下,我建议这样做,因为编写可以在新旧 Node 和 Rhino 上运行(并执行任何有用的操作)的代码似乎并不容易,甚至不可能。Node 不仅是 JavaScript,而且还是一个复杂的 I/O 系统、libuv 和整个 npm 模块生态系统。

正如那句老话所说,“移植 shell 比移植 shell 脚本更容易”(Larry Wall),因此对于您而言,安装 Node 和脚本实际上可能比以无需 Node 即可工作的方式编写脚本更容易(不过如果您能做到,请在此处发表评论,我当然想知道您是如何做到的)。

相关内容