在 AWS EC2 上安装 NPM

Posted

技术标签:

【中文标题】在 AWS EC2 上安装 NPM【英文标题】:Installing NPM on AWS EC2 【发布时间】:2012-01-02 13:43:10 【问题描述】:

在 AWS 上使用 Ec2。

我已经安装了 Node.js,它运行良好。

但是在尝试安装 npm 时会出现问题。

我正在使用以下命令来安装它:

sudo curl http://npmjs.org/install.sh | sh

但安装似乎冻结... 我在提示符处得到“正在获取:http://registry.npmjs.org/npm/-/npm-1.0.106.tgz”,并且它保持这样。

知道这里发生了什么吗?

【问题讨论】:

有时注册表已关闭。看看这个页面:npmjs.org/doc/faq.html 尝试 node.js v. 0.4.12 类似问题***.com/questions/8117446/… 确保实例的出站安全组允许HTTPS(443端口) @dade 你能更新这个问题并标记正确答案吗?正如 Derek 在评论 ***.com/a/44509677/3117194 中指出的那样,那就是使用 NVM 【参考方案1】:
sudo yum install nodejs npm --enablerepo=epel

【讨论】:

这个问题既没有统计正在运行的操作系统,也没有统计 CentOS/RHEL 是哪个版本,也没有统计是否安装了 EPEL 存储库。例如,NodeJS 和 NPM 不在 RHEL5 EPEL 存储库中。 由于篇幅原因自动标记,请添加一点解释。 这个版本看起来不再是 node.js 的当前稳定版本,可能是镜像出了问题? 最好在安装后运行npm install npm -g以更新到最新版本的npm 对我来说,这安装了 Node 0.X,这是不可接受的。我最终从源代码构建了 nodejs,这花了 20 分钟。【参考方案2】:

要安装 NodeJS 6.x,请执行以下命令:

curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum install nodejs --enablerepo=nodesource

更新

您可以以相同的方式安装 NodeJS 7 和 8。只需在上面的命令中指定您需要的版本,而不是 6。

更新

要更新到 NodeJS 16(或任何其他版本),请执行以下操作:

rm -rf /etc/yum.repos.d/nodesource-el*
curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash -
yum install nodejs --enablerepo=nodesource

【讨论】:

如何卸载 6 并安装 7?如果我已经以这种方式安装了 6? @PK。更新了答案 这对我不起作用,我收到消息 Package 2:nodejs-6.16.0-1nodesource.x86_64 already installed and latest version Nothing to do 并且当我检查版本时它仍然是 v6.16.0 。 - 如何升级到 10? 这让我省了很多麻烦。我尝试了所有可能的方法,但在我这样做之前一直收到错误“npm command not found”。 rm -rf /etc/yum.repos.d/nodesource-el* curl -sL rpm.nodesource.com/setup_16.x | sudo -E bash - sudo yum install nodejs --enablerepo=nodesource -y【参考方案3】:

关注这个使用Node Version Manager的AWS Tutorial。

Node Version Manager (NVM) 允许您安装 Node.js 的多个版本并在它们之间切换。


步骤如下:

安装 NVM

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

激活 NVM

. ~/.nvm/nvm.sh

安装节点(选择版本)

nvm install 4.4.5

确认安装成功

node -e "console.log('Running Node.js ' + process.version)"

【讨论】:

使用这个方法; nodenpm 仅在我访问它们时安装,如果我使用 pm2 之类的东西来部署我的应用程序;我收到npm: command not found,为什么会发生这种情况? 您可以使用 nvm 安装 npm。 nvm install-latest-npm【参考方案4】:

首先

sudo yum install make

您可以运行它来获取所需节点版本的 zip

wget https://nodejs.org/dist/v8.10.0/node-v8.10.0.tar.gz

然后就可以这样解压了

tar -xvf node-v8.10.0.tar.gz

然后进入解压后的目录,像这样安装节点

./configure && make && sudo make install

【讨论】:

./configure 有什么作用?从提取的目录中,我收到错误./configure: No such file or directory 我刚刚将linux二进制文件https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.gz 下载到我的mac 上查看,解压后的目录中没有./configure 文件 @AgentZebra : cd node-v10.15.1-linux-x64 然后 ./configure && make && sudo make install。这将构建并安装节点【参考方案5】:

在 Amazon Linux 2 ec2 上安装 npm/nodejs 的最简单方法:

    首先使用 amazon-linux-extras 命令安装 epel repo,如下所示:

sudo amazon-linux-extras install epel

    现在安装 npm 和 nodejs 如下:

sudo yum install nodejs npm

    你可以验证node和npm的版本如下:

node -v

npm -v

PS。我已经在 Amazon Linux 2 AMI (HVM) ec2 实例上对此进行了测试。

【讨论】:

谢谢!!!这个答案应该在 2021/10 年的顶部【参考方案6】:

本指南完美运行:https://tecadmin.net/install-latest-nodejs-amazon-linux/

    确保您已制作

# sudo yum install -y gcc-c++ make

    安装源

# curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -

    安装节点

# sudo yum install -y nodejs

注意 - 您必须运行 sudo npm install 才能进行安装。

【讨论】:

【参考方案7】:

我发现他的教程对我非常有用:最后一章解释了如何安装 node 和 npm 编译它。

http://iconof.com/blog/how-to-install-setup-node-js-on-amazon-aws-ec2-complete-guide/#installNode

【讨论】:

【参考方案8】:

首先在系统上获取http://npmjs.org/install.sh 文件,然后直接执行它,而不是使用 curl 管道。

使用chmod +x install.sh 使其可执行 然后运行./install.sh

【讨论】:

【参考方案9】:

我是手动完成的。为什么要弄乱那些破坏或不把东西放在我想要的地方的安装程序?这就是在 Amazon Web Services 上安装 *node.js" 时遇到的问题,手动安装是获得我想要的结果的简单方法。

我想要在 AWS 上全局安装 nodenpm。我的意思是安装应该放在像/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/

到此为止,全部完成。

【讨论】:

【参考方案10】:

这对我有用:

sudo apt install npm

【讨论】:

【参考方案11】:

编辑因为我的答案不再相关:

试试:

curl --silent --location https://rpm.nodesource.com/setup | bash -

yum -y install nodejs 

https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#enterprise-linux-and-fedora-core

【讨论】:

仅供参考,nodejs.tchol.org 链接现已损坏(适用于一年后来到这里的任何人)。 已过期,不再在给定页面上列出。

以上是关于在 AWS EC2 上安装 NPM的主要内容,如果未能解决你的问题,请参考以下文章

在 AWS ec2 上安装 ejabberd

AWS EC2实例上的Tableau Server 10.2的静默安装是否有效?

如何在 AWS EC2 Linux 2 上安装 NGINX [关闭]

在 AWS 中的 SUSE Linux EC2 实例上安装 SSM 代理和角色确保启动

如何在 AWS EC2 上安装 LAMP

如何在 AWS EC2 实例上预安装 sbt(通过用户数据)?