作为 sudo 执行时未找到命令,但在 "sudo su" 后有效

Command not found when executed as sudo, but works after "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 命令?

正如 @franzisk 所指出的,这可能是 npm $PATH 的问题。

尝试echo $PATH同时作为普通用户和超级用户。也 运行 which npm 作为超级用户。如果您发现任何差异(例如,npm 的路径不在普通用户路径中),请相应地更改您的 PATH 变量。