舊 Debian 安裝上的 JavaScript 解釋器 (sarge)
我打算編寫一些腳本來通過伺服器上的命令行管理任務。
我將在支持它的伺服器中使用 NodeJS Debian 軟體包,但我有一些伺服器仍在 Debian 3.1 (sarge) 中。
我知道這些伺服器都有 Rhino 包,我寫的腳本在 Rhino 上可能仍然以同樣的方式執行?(考慮到我不使用可能不可用的新 JavaScript 功能)
如果不是,我可以在舊 Debian 上使用什麼解釋器來編寫 JS 命令行腳本,這將與我在新 Debian 上通過 NodeJS 執行的腳本兼容?
我認為不可能編寫任何對新 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
(like.profile
or.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 實際上可能比以不需要的方式編寫腳本更容易節點(儘管如果您設法做到了,請在此處發表評論,我當然想知道您是如何做到的)。