AWS EC2 - Node.js 重启后不工作

AWS EC2 - Node.js not working after reboot

我已经使用 Amazon Linux AMI 2018.03.0 AMI 设置了一个小型免费 AWS 实例。我创建并配置了两个额外的用户(我和 botManager),仅此而已。然后我使用 su botManager 从 ec2-user 切换到 botManager 并且没有忘记 cd ~.

我通过 nvm 安装了 node.js。要安装 nvm,我只需 copy/pasted 这个:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash

使 nvm 可以立即访问:

. ~/.nvm/nvm.sh

如此处解释:Tutorial: Setting Up Node.js on an Amazon EC2 Instance

仍然没有问题,甚至没有警告,nvm --version 有效并且 returns 0.32.0

我想要最后一个 LTS 版本所以我 运行 :

nvm install --lts

一切都很顺利。 node -vnpm -v 都有效,分别 returned v8.11.35.6.0.

为了确保一切稳定,我 ctrl+d 从 botManager 注销并作为 ec2-user 使用 sudo reboot.

重新启动服务器

问题是当我在重启后以 botManager 身份重新登录并切换到它的主目录时 (~) nvm 仍在工作,但 node -vnpm -v return :

bash: (node or npm): command not found

St运行gely,当我检查 nvm ls 安装了哪些版本的 node.js 时,我得到了这个:

[botManager@ip-f-o-o-o ~]$ nvm ls
    v8.11.3
node -> stable (-> v8.11.3) (default)
stable -> 8.11 (-> v8.11.3) (default)
iojs -> N/A (default)
lts/* -> lts/argon (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.14.3 (-> N/A)
lts/carbon -> v8.11.3

如何让 node.js 在重新启动后再次工作并持续很长时间?

我的 Linux 知识远非完美,部分是自学的,因此欢迎任何帮助。

编辑 1 : whereis node; echo path 的结果:

[botManager@ip~]$ whereis node; echo $PATH node:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/opt/aws/bin

编辑 2 : 新的干净安装: nvm install --lts 的结果:

[botManager@ip-f-o-o-o~]$ nvm install --lts
Installing latest LTS version.
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v8.11.3 (npm v5.6.0)
nvm_ensure_default_set: a version is required

whereis node; echo path 的结果:

[botManager@ip-f-o-o-o~]$ whereis node ; echo $PATH
node: /home/botManager/.nvm/versions/node/v8.11.3/bin/node

/home/botManager/.nvm/versions/node/v8.11.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/opt/aws/bin

df -h 的结果:

[botManager@ip-f-o-o-o~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        484M   56K  484M   1% /dev
tmpfs           494M     0  494M   0% /dev/shm
/dev/xvda1      7.8G  1.2G  6.6G  15% /

重启后: whereis node; echo path 的结果:

[botManager@ip-f-o-o-o~]$ whereis node ; echo $PATH

node:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/opt/aws/bin

df -h 的结果:

[botManager@ip-f-o-o-o~]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        484M   56K  484M   1% /dev
tmpfs           494M     0  494M   0% /dev/shm
/dev/xvda1      7.8G  1.2G  6.6G  15% /

重新启动后,您的 $PATH 被重置,/home/botManager/.nvm/versions/node/v8.11.3/bin 不再存在,因此您的二进制文件不可用。

在启动时将其添加到您的 $PATH 变量中:/home/botManager/.nvm/versions/node/v8.11.3/bin

编辑

将此添加到您的 .bashrc 中:

export PATH=$PATH:/home/botManager/.nvm/versions/node/v8.11.3/bin

或者将此行添加到您的 /etc/environment 文件

/home/botManager/.nvm/versions/node/v8.11.3/bin

或者在 /usr/bin

中创建符号链接
ln -s /home/botManager/.nvm/versions/node/v8.11.3/bin/node /usr/bin/node