在 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)"
【讨论】:
使用这个方法;node
和 npm
仅在我访问它们时安装,如果我使用 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 上全局安装 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/
到此为止,全部完成。
【讨论】:
【参考方案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实例上的Tableau Server 10.2的静默安装是否有效?
如何在 AWS EC2 Linux 2 上安装 NGINX [关闭]