我有许多运行 17.10 的机器(实际上是虚拟机),我想在每台机器上安装一个已知的 Node 和 npm 可执行文件。我有一个脚本,如果我在接下来的 6 个月甚至一年内运行它,我想在所有机器上获得完全相同版本的 Node 和 NPM。
我尝试使用 apt 软件包,但随着这些软件包的更新,我在以后的安装中得到了与早期安装不同的版本。我希望它们都是相同的。
我试过这个:
NVERS=v8.9.2
sudo rm -rf node-$NVERS-linux-x64
sudo rm -f node-$NVERS-linux-x64.tar.xz
wget https://nodejs.org/dist/$NVERS/node-$NVERS-linux-x64.tar.xz
tar xvf node-$NVERS-linux-x64.tar.xz
sudo cp node-$NVERS-linux-x64/bin/node /usr/local/bin/node
sudo cp node-$NVERS-linux-x64/bin/npm /usr/local/bin/npm
节点工作正常:
node -v
v8.9.2
但是 npm 失败了:
$ npm -v
module.js:538
throw err;
^
Error: Cannot find module '../lib/utils/unsupported.js'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at /usr/local/bin/npm:19:21
at Object.<anonymous> (/usr/local/bin/npm:92:3)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
npm 可执行文件实际上是到 tarball 中相对目录的软链接。
这样做的正确方法是什么?