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

AWS EC2用户数据脚本npm install路径错误问题求助

问题解决:EC2用户数据脚本npm install路径错误

问题根源

每个su - ec2-user -c命令都会启动独立的用户shell会话,你之前执行的cd仅在root当前shell生效,不会传递到su启动的新shell中,导致npm install始终在ec2-user家目录执行。

修正后的完整脚本

#!/bin/bash
yum update -y

export HOME=/home/ec2-user
nodev='16.19.0'
nvmv='0.39.3'
gitrepo='https://github.com/ptv1p3r/etl-fuel-priceguide-ec2.git'

# 安装nvm
su - ec2-user -c "curl https://raw.githubusercontent.com/creationix/nvm/v${nvmv}/install.sh | bash"
# 安装指定Node版本并设为默认
su - ec2-user -c "nvm install ${nodev}"
su - ec2-user -c "nvm alias default ${nodev}"

# 安装git
yum install git -y

# 克隆仓库到指定目录
su - ec2-user -c "git clone ${gitrepo} /home/ec2-user/etl-fuel-priceguide-ec2"

# 在目标目录执行npm install
su - ec2-user -c "cd /home/ec2-user/etl-fuel-priceguide-ec2 && npm install"

# 启动应用
su - ec2-user -c "cd /home/ec2-user/etl-fuel-priceguide-ec2 && node index.js"

关键修改点

  • 将cd与后续操作合并到同一个su会话中,用&&串联命令,确保目录切换成功后再执行对应操作
  • 添加nvm alias default ${nodev},避免后续会话需手动切换Node版本
  • 克隆仓库时显式指定目标路径,确保克隆位置准确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 03:01:01