我是手动完成的。为什么要弄乱那些破坏或不把东西放在我想要的地方的安装程序?这就是在 Amazon Web Services 上安装 *node.js" 时遇到的问题,手动安装是获得我想要的结果的简单方法。
我想要在 AWS 上全局安装 node 和 npm。我的意思是安装应该放在像/usr/bin 这样的地方,这样所有用户都可以访问。令人惊讶的是,AWS 显然不支持这个想法。 AWS 鼓励使用nvm,节点版本管理器,但这似乎总是安装在用户目录中,而不是系统级目录中。在“rpm”解决方案(在其他地方提到)失败后感到沮丧后,我最终决定手动进行安装。
在浏览器中,转到 nodejs.org 下载页面:
https://nodejs.org/en/download/
找到一个链接:
All download options
点击它;它会进入一个带有如下 URL 的索引页面:
https://nodejs.org/dist/v14.16.1/
我在那里寻找名称中包含“linux”和“x86”的名称。
我把它写下来,或者选择并复制,以获得正确的拼写。
在我的情况下是:
node-v14.16.1-linux-x64.tar.gz
将这两部分放在一起,我得到了以下网址:
https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz
这就是使用curl 下载的内容。
我有一个“临时”目录,位于我的主目录中。
cd ~/temp
下载是用“curl”完成的。请注意,-o 选项用于为 output 文件指定我选择的名称。当然,我选择了和网站文件一样的名字。
curl -o node-v14.16.1-linux-x64.tar.gz https://nodejs.org/dist/v14.16.1/node-v14.16.1-linux-x64.tar.gz
解压下载的文件。
tar xf node-v14.16.1-linux-x64.tar.gz
方便的是,它会创建自己的目录。去那里。
cd node-v14.16.1-linux-x64 || exit 1;
请注意,交付由相对少量的文件和目录组成(因为 node_modules 是作为一个单元处理的)。
在我的例子中,我仍然安装了一个旧的和糟糕的实现,所以下面的命令被用来移动任何可能发生在路上的垃圾。一些命令出错,因为旧垃圾不存在。没关系,移动到-OLD 时出错只是意味着没有什么可以移动;这很好。
注意:我将所有这些mv(移动)命令放入一个脚本文件中,使其可执行,并以sudo 运行它。另一种方法是将每一行单独运行为sudo。
mv /usr/bin/node /usr/bin/node-OLD
mv /usr/bin/npm /usr/bin/npm-OLD
mv /usr/bin/npx /usr/bin/npx-OLD
mv /usr/include/node /usr/include/node-OLD
mv /usr/lib/node_modules /usr/lib/node_modules-OLD
mv /usr/share/doc/node /usr/share/doc/node-OLD
mv /usr/share/man/man1/node.1 /usr/share/man/man1/node.1-OLD
mv /usr/share/systemtap/tapset/node.stp /usr/share/systemtap/tapset/node.stp-OLD
这里是实际安装。请记住,这发生在未解压缩的目录中,在我的例子中是 node-v14.16.1-linux-x64。
mv bin/node /usr/bin
mv bin/npm /usr/bin
mv bin/npx /usr/bin
mv include/node /usr/include
mv lib/node_modules /usr/lib
mv share/doc/node /usr/share/doc
mv share/man/man1/node.1 /usr/share/man/man1
mv share/systemtap/tapset/node.stp /usr/share/systemtap/tapset/
到此为止,全部完成。