NodeJS -bash:pm2:command not found error on ec2

jexiocij  于 12个月前  发布在  Node.js
关注(0)|答案(1)|浏览(121)

我已经使用here方法设置了npm的默认目录
我在下面附上了我使用的命令的屏幕截图:

~/.profile包含以下内容:

它工作正常。
然而,当我注销并重新登录,并检查pm2版本时,我遇到了下面的错误:

是什么导致了这个问题?
以下命令的输出如下:
npm prefix -g/home/ec2-user/.npm-global
npm prefix/home/ec2-user
echo $PATH/home/ec2-user/.npm-global/bin:/home/ec2-user/.nvm/versions/node/v18.18.0/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
这个问题快把我逼疯了。我在网上找不到任何可以帮助解决这个问题的资源。解决方案将受到高度赞赏。
此外,我注意到不喜欢StackOverflow帖子的人数有所增加。如果你决定不喜欢这篇文章,考虑写一个评论为什么,所以这个问题可以改进,以帮助未来的读者。否则,它将被假定,你没有阅读的问题,并正在垃圾邮件/拖钓周围。

ih99xse1

ih99xse11#

又见到你真是太巧了。我想我对your last question的回答不起作用...:(
最好是评论或编辑最后一个问题,但是哦,好吧。
我仍然猜测这个问题是由多次部分尝试安装nodejs引起的,它们现在正在互相攻击。
截图中的错误消息(用户的.npmrc文件.)特别有启发性。
让我们从头开始,试着解决这个烂摊子。最简单的方法是创建一个新的EC2机器,但是要清理现有的机器,我会尝试这样做:
1.检查/root中有哪些文件:ls -la /root/
1.删除任何听起来与node或npm或nvm相关的内容。例如.node.npm.npm-global.npmrc.nvm
1.如果.profile在您开始之前不存在,请删除它--它显然没有帮助(bash文件优先级的解释)
1.检查/etc/skel中的文件(这是包含新用户未修改的默认配置文件的模板):ls -la /etc/skel/
1.查看/etc/skel/和/root/中的任何文件名,并将文件内容相互比较。如果/root/中的文件包含任何与node或npm或nvm相关的行,请删除这些行。
1.请重新登录。
1.尝试运行nodenpmnvmpm2-所有这些都应该说文件未找到
1.运行grep -r npm-global /root /etc来搜索任何剩余的npm-global提及(应该没有)
1.好了,希望nodejs现在完全恢复了。
再次安装node.js。有几种方法可以做到这一点(“nvm”是其中之一)。我不是特别熟悉EC2,但我发现Amazon有这个官方教程,它推荐使用nvm:
https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html
重新登录。
有了这个,你应该不会在登录时看到任何关于“与nvm不兼容”的错误,并且你不需要遵循https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
你可以例如。npm install -g pm2正常情况下,运气好的话,它应该能正常工作。

相关问题