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


当前回答

如果你已经下载了节点包并提取到/opt这样的地方,你可以简单地在/usr/local/bin中创建符号链接。

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

其他回答

我必须这么做

sudo apt-get install npm

这对我很管用。

由于我已经使用node.js上可用的.tar文件安装了node.js, 我必须把节点目录的位置放在:

,多达/ .bashrc

使用命令从普通用户切换到root:

sudo -我

然后我必须添加我提取到.bashrc文件的节点路径,如下所示:

然后使用。bashrc刷新

我们走吧。~ / . bashrc

有后

npm: command not found

走了

所以,对于那些使用:

NVM和自制

请务必设置节点版本号。对我来说,我的节点版本已不再设置。所以,我检查了我使用的版本

nvm劳拉·舒尔茨

这列出了v16.13.1,所以我设置它使用这个

NVM使用16

一旦我的节点版本设置好,NPM命令又可以工作了

如果你已经下载了节点包并提取到/opt这样的地方,你可以简单地在/usr/local/bin中创建符号链接。

/usr/local/bin/npm -> /opt/node-v4.6.0-linux-x64/bin/npm
/usr/local/bin/node -> /opt/node-v4.6.0-linux-x64/bin/node

如果您使用的是linux,请删除存在于/usr/lib中的node_modules文件夹

sudo rm -rf node-modules

然后使用curl重新安装节点:

sudo apt-get update
sudo apt install curl build-essential
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt install -y nodejs