我愿意编写几个脚本来通过服务器上的命令行pipe理任务。
我将在支持它的服务器中使用NodeJS Debian软件包,但是我还有一些仍在Debian 3.1(sarge)中的服务器。
我知道这些服务器有Rhino软件包,我写的脚本在Rhino上仍然可以运行。 (考虑到我不使用可能不可用的新JavaScriptfunction)
如果不是,那么我可以使用什么解释器来处理较老的Debian上的JS命令行脚本,这些脚本将与我在较新的Debian上通过NodeJS运行的脚本兼容?
我不认为这将是可能的写任何不平凡的,可以在新的Node.js和旧的犀牛工作。
但是,如果你能够在这些旧系统上安装软件包,那么你大概也可以从源代码安装软件(至less你必须如果你想在那里安装你自己的软件)。
从源代码安装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如果你想的话(当然记得把你自己的path放在上面的命令中)。
这样你可以在你的机器上拥有一个现代,安全和一致的节点版本。 这是我在这种情况下推荐的,因为编写能够在新旧Node和Rhino上工作的代码(并且做任何有用的事情)似乎并不容易,甚至是不可能的。 Node不仅仅是JavaScript,还是一个复杂的I / O系统,libuv和npm模块的整个生态系统。
正如那句老话:“移植一个shell比shell脚本更容易”(Larry Wall),所以在你的情况下,实际上可以更容易地将Node与脚本一起安装,而不是以一种无需编写脚本的方式来编写脚本节点(尽pipe如果你设法做到这一点,那么请在这里发表评论,我当然想知道你是如何做到的)。