以 sudo 执行时找不到命令,但在“sudo su”之后可以执行

以 sudo 执行时找不到命令,但在“sudo su”之后可以执行

如果我尝试运行此命令,bash 将响应未找到错误:

$ npm -v
-bash: npm: command not found

使用 sudo 也可以:

$ sudo npm -v
sudo: npm: command not found

但当我首先运行“sudo su”时有效:

$ sudo su
# npm -v
6.10.3

为什么会发生这种情况?如何修复它以使用 sudo 命令?

一些信息:

type npm
npm is /root/.nvm/versions/node/v12.10.0/bin/npm
which npm
/root/.nvm/versions/node/v12.10.0/bin/npm

答案1

登录身份root

sudo su -

npm通过以下方式卸载nvm

nvm deactivate node && nvm uninstall node

npm通过以下方式安装apt-get

apt-get update && apt-get install npm

显然,您是npm通过 进行安装的nvmnvm是一个基于用户的包管理器。 因此,所有已安装的包将无法供其他用户使用。 解决方案是使用基于系统全局安装包的包管理器。

相关内容