我已经使用以下命令安装了 pm2(在 root 中):
npm install pm2@latest -g
检查 pm2 的版本或初始化实例时,出现以下错误
-bash: pm2: command not found
有什么办法可以解决这个问题吗?
尝试检查 /usr/bin/pm2 是否存在。
ls -l /usr/bin/pm2
尝试检查 npm -g 安装的位置。
npm prefix -g
npm prefix
尝试检查您的 $PATH 是什么。
echo $PATH
(1) 对于 ls -l /usr/bin/pm2 我收到“ls: 无法访问 '/usr/bin/pm2': 没有这样的文件或目录” (2) 对于“npm prefix -g”,我是获取“/root/.npm-global”(3)对于“npm 前缀”,我得到“/root”(4)对于“echo $PATH”,我得到“/root/.nvm/versions/node/ v18.18.0/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin”。我该怎么解决问题?您能更新一下如何解决问题的答案吗,谢谢。
看起来问题是你的 npm 配置为安装到 /root/.npm-global 中,但该目录不在 $PATH 中。
你是如何安装nodejs的?
我猜有人试图按照这里的食谱进行操作:https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally但他们没有完成它? ??
您有四种选择:
将 /root/.npm-global 添加到 $PATH。例如,将像
PATH=$HOME/.npm-global:$PATH
这样的行添加到 /root/.profile 或 /root/.bash_profile 或 /root/.bashrc 中。应该会在下次登录时生效。
使用其完整路径显式运行 pm2
/root/.npm-global/bin/pm2
,而不仅仅是 pm2
。
删除告诉它使用 /root/.npm-global 的 npm 配置。它应该像平常一样返回到安装到 /usr/bin 。某处可能有一个 npmrc 文件(可能是 /root/.npmrc 或 /etc/npmrc)(documentation),其中包含此配置值。如果您因其他原因不需要此值,请编辑该文件并删除该行。如果它是唯一的一行,您可以删除整个文件。但我不明白为什么要这样配置,是否有充分的理由。
对于一次性解决方法,您可以尝试
npm install -g pm2 --prefix /usr
。当然,您必须记住下次安装其他软件包时需要这样做。