我使用Amazon Linux AMI 2018.03.0 AMI设置了一个小型免费的AWS实例。我创建并配置了两个其他用户(me和botManager),仅此而已。然后,我使用su botManager
从ec2-user切换到botManager,但没有忘记使用cd ~
。
我通过nvm安装了node.js。要安装nvm,我只需复制/粘贴此内容即可:
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
仍然没有问题,甚至没有警告,并且可以返回0.32.0
。
我想要上一个LTS版本,所以我运行了:
nvm install --lts
进展顺利。 node -v
和npm -v
均正常工作并分别返回v8.11.3
和5.6.0
。
为确保一切稳定,我ctrl+d
退出botManager,以ec2用户身份sudo reboot
重新引导服务器。
问题是重启后我以botManager的身份登录并转到其主目录(〜)时,nvm仍在工作,但是node -v
和npm -v
返回:
bash: (node or npm): command not found
奇怪的是,当我用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% /
答案 0 :(得分:2)
重启后,您的$ 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