You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elastic Beanstalk部署Rails 6应用时yum安装nodejs失败求助

问题根因
  • yum优先级插件屏蔽:从日志可看到yum加载了priorities插件,Amazon Linux 2默认给官方源设置了更高优先级,Nodesource的第三方源添加后包会被过滤,导致搜索不到nodejs安装包。
  • 静默脚本隐藏异常:01_download_nodejs命令使用了--silent参数执行Nodesource的setup脚本,执行过程中如果出现GPG key验证失败、依赖缺失等异常,不会输出错误日志,即便源未正确添加也会被EB判定为执行成功。
  • 平台版本兼容性问题:你使用的EB 3.3.5平台对应的Amazon Linux 2系统版本较旧,和新版Nodesource 16.x的setup脚本存在兼容问题,无法正确生成yum源配置文件。
解决方案

方案1:适配现有yum安装逻辑(改动最小)

修改你的两条EB配置命令即可:

  1. 01_download_nodejs命令修改为:
curl --location https://rpm.nodesource.com/setup_16.x | sudo -E bash - && sudo yum-config-manager --save --setopt=nodesource.priority=10
  1. 02_install_nodejs命令修改为,临时禁用优先级插件安装:
yum -y install nodejs --disableplugin=priorities

方案2:使用官方源安装(最稳定)

完全替换原有两条命令,直接使用Amazon Linux 2自带的extras源安装nodejs16,无需引入第三方源,不会出现源优先级问题:

01_install_nodejs:
  command: "amazon-linux-extras install -y nodejs16"

方案3:二进制包直接安装(无依赖)

直接下载NodeJS官方预编译二进制包解压到系统路径,完全绕开yum包管理的限制,适合对版本有固定要求的场景:

01_install_nodejs:
  command: "curl -sL https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz | sudo tar -xJ -C /usr/local --strip-components=1"

部署后可登录EB实例执行node -v、npm -v验证安装是否正常。

内容的提问来源于stack exchange,提问作者Mohamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:18:04