-bash:pm2:在 ec2 上找不到命令错误

问题描述 投票:0回答:1

我已经使用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 帖子的人有所增加。如果您决定不喜欢这篇文章,请考虑写下原因评论,以便可以改进这个问题以帮助未来的读者。否则,我们会认为您没有阅读问题,而是在发送垃圾邮件/恶搞。

node.js linux amazon-ec2 npm-install pm2
1个回答
0
投票

再次见到你真是太巧了。我认为我对你的上一个问题的回答不起作用......:(
最好评论或编辑最后一个问题,但是哦,好吧。

我仍然猜测该问题是由多次部分尝试安装nodejs引起的,这些尝试现在正在互相争斗。

屏幕截图中的错误消息(您用户的 .npmrc 文件...)特别具有启发性。

让我们从头开始,尝试挽回混乱。最简单的方法是创建一台新的 EC2 机器,但要清理现有机器,我会尝试这样做:

  1. 检查 /root 中有哪些文件:
    ls -la /root/
  2. 删除任何听起来与node或npm或nvm相关的内容。例如。
    .node
    .npm
    .npm-global
    .npmrc
    .nvm
  3. 如果
    .profile
    在开始之前不存在,请将其删除——这显然没有帮助(bash 文件优先级的解释
  4. 检查 /etc/skel 中有哪些文件(这是包含新用户未修改的默认配置文件的模板):
    ls -la /etc/skel/
  5. 查看 /etc/skel/ 和 /root/ 中的所有文件名,并将文件内容相互比较。如果 /root/ 中的文件包含任何听起来与 node 或 npm 或 nvm 相关的行,请删除这些行。
  6. 重新登录。
  7. 尝试运行
    node
    npm
    nvm
    pm2
    - 所有这些都应该显示文件未找到
  8. 运行
    grep -r npm-global /root /etc
    搜索任何剩余的 npm-global 提及(应该没有)
  9. 好的,希望现在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 -全局包 .

然后您可以例如

npm install -g pm2
通常情况下,运气好的话,应该可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.