NodeJS not installed successfully in AWS EC2 inside User-data

1

I've tried to install NodeJS in EC2instance - linux as follow inside user-data:

#!/bin/bash                                                  
yum update -y
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
export NVM_DIR="/home/ec2-user/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  
yum install git -y
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
git clone https://git-xxxx
cd xxxx
node app.js

When instance is running and check my ec2 instance, there is no node js and nvm installed when I typed node -v

[ec2-user@ip-xxxx ~]$ nvm -v
-bash: nvm: command not found
[ec2-user@ip-xxxx ~]$ node -v
-bash: node: command not found

What I missed ? I wrote this script as I usually do in my instance and work.

profile pictureAWS
Rowaida
質問済み 2年前1555ビュー
2回答
2

The user-data is ran as root -user so the NVM is now installed under root only. So when you run the curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash -script it gets installed under /root/.nvm/. Your code then assumes it's installed under /home/ec2-user/.nvm which is not true, so your nvm commands after that fail.

So you would need to either install the nvm and node system wide. Or just run commands as ec2-user in the script via "sudo -u ec2-user <command>" For example:

sudo -u ec2-user sh -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash'
sudo -u ec2-user sh -c '. ~/.nvm/nvm.sh && nvm install --lts'

Other option would be to wrap all the commands you want to run as ec2-user into shell script that you download from S3 or that you create the file inside user-data.

Also I don't see you running nvm install that would install Node on the machine.

profile pictureAWS
エキスパート
Toni_S
回答済み 2年前
0

try this command npm -v

profile picture
回答済み 2年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ