sudo:npm:找不到命令

新手上路,请多包涵

我正在尝试升级到最新版本的节点。我正在按照 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 命令一起工作?

原文由 Mark 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

npm 文件应位于 /usr/local/bin/npm 中。如果它不存在,请在其 网站 上再次安装 node.js 并使用该软件包。这在我的情况下有效。

原文由 inga 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以通过为 npm 和 node 创建符号链接来解决此问题,这既快捷又简单:

 sudo ln -s $(which npm) /usr/local/bin/npm
sudo ln -s $(which node) /usr/local/bin/node

我正在使用 which 获取位置,然后将其作为变量传递给命令,例如 $(which npm)

我也在为节点创建一个符号链接,因为 npm 依赖于节点。

然后你可以:

 sudo npm -v

无需重新安装节点或在整个目录上使用 chmod。

原文由 Adam Cooper 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题