【发布时间】:2015-10-06 23:50:58
【问题描述】:
我正在尝试升级到最新版本的节点。我正在按照http://davidwalsh.name/upgrade-nodejs的说明进行操作
但是当我这样做时:
sudo npm install -g n
我得到错误:
sudo: npm: command not found
npm 无需 sudo 即可工作。当我这样做时:
whereis node
我明白了:
node: /usr/bin/node /usr/lib/node /usr/bin/X11/node /usr/local/node
跑步:
which npm
演出:
/usr/local/node/bin/npm
我在https://stackoverflow.com/a/5062718/1246159尝试了解决方案
但我仍然遇到同样的错误。我还查看了 /etc/sudoers 文件,相关行是:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
这对我来说很好。我怎样才能让 NPM 使用 sudo 命令?
【问题讨论】:
-
这行得通吗?
sudo /usr/bin/npm install -g n -
您可以尝试重新安装节点吗?听起来你删除了 npm。
-
您可能已将
/usr/local/node/bin添加到您的$PATH,但npm应安装在/usr/local/bin中。第一个目录不在secure_path中,这就解释了为什么sudo找不到它。 -
在这里在 Ubuntu 上使用
nvm- 带有 @robertklep 评论,我尝试了sudo /home/${user}/.nvm/version/node/${version}/bin/npm install并且成功了。 -
它通过从以下软件包重新安装解决了我的问题。 nodejs.org/en/download