在AWS EC2上安装NPM

78

我正在使用AWS上的Ec2进行工作。

我已经安装了Node.js,它运行正常。

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

我正在使用以下命令进行安装:

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

但安装似乎卡住了...... 我在提示符处得到 "fetching: http://registry.npmjs.org/npm/-/npm-1.0.106.tgz" ,然后就停滞不前了。

你有任何想法吗?


有时候注册表会出问题。请查看此页面:http://npmjs.org/doc/faq.html - malletjo
尝试使用Node.js v.0.4.12类似的问题 http://stackoverflow.com/questions/8117446/node-js-older-than-0-4-12-dont-work-correctly-on-aws-ec2-why - Bart
请确保实例的出站安全组允许 HTTPS(端口443)通过。 - YanivN
@dade,你能否更新这个问题并将今天的正确答案标记出来吗?正如 Derek 在评论 https://dev59.com/52sy5IYBdhLWcg3w9Srk#44509677 中指出的那样,应该使用 NVM。 - John C
12个回答

126
sudo yum install nodejs npm --enablerepo=epel

5
这个问题没有明确说明正在运行的操作系统,也没有说明如果是CentOS/RHEL,是哪个版本,并且也没有说明是否安装了EPEL软件源。例如,NodeJS和NPM不在RHEL5 EPEL软件源中。 - Charles
1
这个版本似乎不再是当前稳定版的node.js,也许镜像出了问题? - PaulWoodIII
1
@ChinaPaul 我也是。我得到了一个非常旧的版本,当我尝试更新npm时,它就崩溃了。 - Jeremy Chone
7
安装完成后最好运行npm install npm -g来更新到最新版本的npm - Justin
7
对我来说,这安装了不可接受的Node 0.X版本。最终我选择从源代码进行nodejs编译,花费了20分钟。 - Neal Ehardt
显示剩余3条评论

64

按照这个AWS教程,使用Node Version Manager

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

安装Node(选择版本)
nvm install 15.0.0

确认安装成功
node -e "console.log('Running Node.js ' + process.version)"

1
使用这种方法,只有当我访问它们时才安装nodenpm。如果我使用类似pm2来部署我的应用程序,则会出现“npm:command not found”的情况,为什么会发生这种情况? - Ashar Dweedar
4
您可以使用nvm安装npm。nvm install-latest-npm - Emilio Borraz

43

要安装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.
@PK。已更新答案。 - Ihor Burlachenko
这对我没有用,我收到了消息“Package 2:nodejs-6.16.0-1nodesource.x86_64已经安装并且是最新版本,无需操作”,当我检查版本时仍然是“v6.16.0”。- 我该如何升级到10? - Agent Zebra
这真的为我节省了很多麻烦。我尝试了所有可能的方法,但一直出现“找不到npm命令”的错误,直到我做了这个。 - Misterwyz
1
请执行以下命令以删除节点源的配置文件:rm -rf /etc/yum.repos.d/nodesource-el* 然后,运行以下命令以安装 Node.js: curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash - sudo yum install nodejs --enablerepo=nodesource -y - user6273920

11

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

  1. 首先使用以下命令,安装 epel 库:

sudo amazon-linux-extras install epel

  1. 现在按照以下方式安装 npm 和 nodejs:

sudo yum install nodejs npm

  1. 您可以按照以下方式验证 node 和 npm 的版本:

node -v

npm -v

附:我已经在 Amazon Linux 2 AMI (HVM) EC2 实例上测试过这个方法。


谢谢!这个答案应该在2021年10月置顶。 - Husky931
3
对我来说不起作用。有一些缺少的依赖关系。 - Parv Sharma
sudo yum install nodejs npm --skip-broken -> 对我有效 - Anandkumar
错误:软件包:1:nodejs-16.18.1-3.el7.x86_64(epel) 要求:libuv >= 1:1.43.0 可用:1:libuv-1.23.2-1.amzn2.0.2.i686(amzn2-core) - sander
1
这是唯一对我有效的方法,如果你遇到了libuv错误,请运行 yum remove libuv -y 然后运行 yum install libuv --disableplugin=priorities - Chris Li

8

这个指南非常完美:https://tecadmin.net/install-latest-nodejs-amazon-linux/

  1. 确保你已经安装了make

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

  1. 安装源代码

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

  1. 安装node

# sudo yum install -y nodejs

注意-要使安装生效,你必须运行sudo npm install


7

第一步

使用sudo yum install make安装make命令

您可以运行以下命令获取所需版本的Node的zip文件

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

然后你可以像这样解压它。
tar -xvf node-v8.10.0.tar.gz

然后进入提取的目录,像这样安装Node:
./configure && make && sudo make install

"./configure" 是什么意思?我在解压目录中运行时出现错误 ./configure: No such file or directory。我刚刚从 https://nodejs.org/dist/v10.15.1/node-v10.15.1-linux-x64.tar.gz 下载了 Linux 二进制文件到我的 Mac 上进行查看,但是在解压后的目录中没有 ./configure 文件。 - Agent Zebra
@AgentZebra:cd node-v10.15.1-linux-x64,然后执行./configure && make && sudo make install。这将构建并安装Node。 - Vaibhav Bhootna

1

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

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

1

1
这对我有效:
sudo apt install npm

1

最新版本18好像有依赖关系..


node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)

最终,我通过运行以下命令得到了解决方案。
sudo apt-get remove nodejs
nvm install 16.15.1

已安装v16.15.1 Node版本和npm v16.15.1。

为确保一致性,请确保在您的计算机上安装了nvm。


在所有的答案中,这个目前是可行的。其他的似乎存在依赖问题。 - sander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接