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


当前回答

**编辑**

警告!做chmod 777是一个相当激进的解决方案。先试试这些,一次一个,其中一个管用就停止:

$ sudo chmod -R 777 /usr/local/lib/node_modules/npm $ sudo chmod -R 777 /usr/local/lib/node_modules . sh $ sudo chmod g+w /usr/local/lib $ sudo chmod g+rwx /usr/local/lib


$ brew postinstall节点是我唯一会遇到问题的安装部分

Permission denied - /usr/local/lib/node_modules/npm/.github

So I

// !! READ EDIT ABOVE BEFORE RUNNING THIS CODE !!
$ sudo chmod -R 777 /usr/local/lib
$ brew postinstall node

中提琴,NPM现在被连接了

$ npm -v
3.10.10

额外的

如果你在lib上使用-R 777,我的建议是将嵌套文件和目录设置为默认设置:

$ find /usr/local/lib -type f -print -exec chmod 644 {} \; $ find /usr/local/lib -type d -print -exec chmod 755 {} \; $ chmod /usr/local/lib 755

其他回答

npm文件应该在/usr/local/bin/npm.如果没有,请在他们的网站上重新安装node.js。这对我来说很管用。

如果你用nvm安装node/npm,在使用任何一个包之前都必须运行nvm环境配置文件。

这通常在~/.nvm/nvm.sh中找到。

要自动运行,包括:

source ~/.nvm/nvm.sh

在您的用户的.bash_profile文件中

如果希望对该用户使用sudo,请确保包含-i参数以使sudo设置用户环境。如

sudo -iu jenkins npm install grunt-cli

我必须这么做

sudo apt-get install npm

这对我很管用。

在macOS上,这对我来说很管用:

brew reinstall node

对于CentOS用户,这适用于我:

sudo yum install npm