为什么当以 root 身份通过 sudo 询问时,尽管已经安装了 NVM 和最新的 LTS,节点仍会报告旧版本?

为什么当以 root 身份通过 sudo 询问时,尽管已经安装了 NVM 和最新的 LTS,节点仍会报告旧版本?

foo在为用户安装 NVM 和最新的 LTS 节点之前:

foo@ubuntu: which node
/usr/bin/node
foo@ubuntu: node --version
v12.22.1

安装 NVM 和最新的 LTS 节点后:

foo@ubuntu: which node
/home/foo/.nvm/versions/node/v14.16.1/bin/node
foo@ubuntu: node --version
v14.16.1

那么为什么节点在询问时仍然报告旧版本通过 sudo?

root@ubuntu: sudo -u foo which node
/usr/bin/node
root@ubuntu: sudo -u foo node --version
v12.22.1

答案1

我相信这是因为当您是 root 并且您正在对 foo 执行 sudo 时它不会将 foo 的 PATH 提供给较新的版本。

如果你想测试并修复此问题

echo $PATH

作为 foo

echo $PATH

在 root 的 .bashrc 中修复附加 /home/foo/.nvm/versions/node/v14.16.1/bin/node

相关内容