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命令?

1171278 次浏览

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

对于MAC用户,以下步骤对我来说是有效的。

如果你得到Error for Brew,下面是你需要在终端中首先输入的命令:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

然后执行如下命令:
$ brew update
$ brew uninstall node
$ brew install node
$ brew postinstall

我必须做到以下几点:

  1. brew update
  2. brew uninstall node
  3. 访问https://nodejs.org/en/下载文件
  4. 安装下载的文件

我必须这么做

sudo apt-get install npm

这对我很管用。

安装node.js &简单地运行

npm install -g bower

从您的项目主管

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

sudo yum install npm

我也有同样的问题,原因是在安装节点时没有安装npm包管理器。这是由于以下错误造成的: 在安装过程中,有一个步骤叫做“自定义设置”,在这里你可以选择以下选项之一: 1) Node.js运行时(默认选择)。 2) NPM包管理器 3)在线文档快捷方式。 4)添加到路径。 如果你继续npm,包管理器将不会安装,因此你会得到错误。< / p > < p >解决方案: 当你得到这些选项时,选择npm包管理器。 这对我很管用。< / p >

使用visudo将npm二进制路径添加到sudo路径并编辑“secure_path”

现在“sudo 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

我也有同样的问题;下面是修复它的命令:

  • sudo ln -s /usr/local/bin/node /usr/bin/node
  • sudo ln -s /usr/local/lib/node /usr/lib/node
  • sudo ln -s /usr/local/bin/npm /usr/bin/npm
  • sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

用于安装node后的debian 输入< / p >

curl -k -O -L https://npmjs.org/install.sh
ln -s /usr/bin/nodejs /usr/bin/node
sh install.sh

我用……解决了这个问题

apt-get install npm2deb

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

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

要自动运行,包括:

source ~/.nvm/nvm.sh

在您的用户的.bash_profile文件中

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

sudo -iu jenkins npm install grunt-cli

**编辑**

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

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

$ brew postinstall node是唯一的安装部分,我将得到一个问题

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

所以我

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

中提琴,NPM现在被连接了

$ npm -v
3.10.10

额外的

如果你在自由上使用-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美元

完全移除节点:

  brew uninstall --force node

安装:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules'

为了在sudo权限下全局安装npm包,/usr/bin/npm应该是可用的。如果npm存在于其他目录,创建一个软链接,如下所示:

sudo ln -s /usr/local/bin/npm /usr/bin/npm

它适用于Fedora 25、node8.0.0和npm5.0.0

简单地重新安装。

在RHEL、CentOS和Fedora上

sudo yum remove nodejs npm
sudo dnf remove nodejs npm   [On Fedora 22+ versions]

然后

yum -y install nodejs npm
dnf -y install nodejs npm   [On Fedora 22+ versions]
< p >简单! . . node和NPM现在都很好用!< / p >
我在Homestead也有同样的问题,尝试了很多方法。 我尝试用

Sudo apt-get install nodejs

我得到以下错误:

The following packages have unmet dependencies:
npm : Depends: nodejs but it is not going to be installed
Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
Depends: node-ansi-color-table but it is not going to be installed
Depends: node-archy but it is not going to be installed
Depends: node-block-stream but it is not going to be installed
Depends: node-fstream (>= 0.1.22) but it is not going to be installed
Depends: node-fstream-ignore but it is not going to be installed
Depends: node-github-url-from-git but it is not going to be installed
Depends: node-glob (>= 3.1.21) but it is not going to be installed
Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
Depends: node-inherits but it is not going to be installed
Depends: node-ini (>= 1.1.0) but it is not going to be installed
Depends: node-lockfile but it is not going to be installed
Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
Depends: node-gyp (>= 0.10.9) but it is not going to be installed
Depends: node-nopt (>= 3.0.1) but it is not going to be installed
Depends: node-npmlog but it is not going to be installed
Depends: node-once but it is not going to be installed
Depends: node-osenv but it is not going to be installed
Depends: node-read but it is not going to be installed
Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
Depends: node-request (>= 2.25.0) but it is not going to be installed
Depends: node-retry but it is not going to be installed
Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
Depends: node-semver (>= 2.1.0) but it is not going to be installed
Depends: node-sha but it is not going to be installed
Depends: node-slide but it is not going to be installed
Depends: node-tar (>= 0.1.18) but it is not going to be installed
Depends: node-underscore but it is not going to be installed
Depends: node-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

最后我尝试了

sudo apt-get dist-upgrade

它运行得很好。

root@homestead:/usr/local/bin# npm -v
3.10.10


root@homestead:/usr/local/bin# node -v
v6.13.0

我的解决方案是:

sudo -E env "PATH=$PATH" n stable

对我来说没问题。

找到它在这里:https://stackoverflow.com/a/29400598/861615

这是因为您更改了默认的全局包目录

case可能对任何使用rh-*包的人有用,这对我有用:

sudo ln -s /opt/rh/rh-nodejs8/root/usr/bin/npm /usr/local/bin/npm

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

brew reinstall node
因为我已经使用node.js上可用的.tar文件安装了node.js, 我必须将节点目录的位置设置为:

~ / . bashrc

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

sudo -我

然后我必须添加节点的路径,我将其提取到.bashrc文件,如下所示: enter image description here < / p >

然后使用。bashrc刷新

. ~ / . bashrc

有后

npm: command not found

走了

为我工作解决全局安装包时EACCES权限错误

为了尽量减少权限错误的机会,你可以配置npm使用不同的目录。在本例中,您将在主目录中创建和使用隐藏目录。

备份你的电脑。 在命令行上,在您的主目录中,为全局安装创建一个目录:

 mkdir ~/.npm-global

配置npm使用新的目录路径:

 npm config set prefix '~/.npm-global'

在您首选的文本编辑器中,打开或创建~/。配置文件,并添加这一行:

 export PATH=~/.npm-global/bin:$PATH

在命令行,更新你的系统变量:

 source ~/.profile

要测试您的新配置,请在不使用sudo的情况下全局安装一个包:

 npm install -g jshint

对我来说,上面提到的任何使用Homebrew的方法在macOS上都不起作用。因此,我使用Homebrew卸载节点,并从https://nodejs.org/en/download/下载节点包并安装它。这招很管用。

你可以做符号链接&它的作品。

  1. 查找当前npm的路径

which npm

  1. 按以下命令建立符号链接

sudo ln -s **which/npm** /usr/local/bin/npm

  1. 测试和验证。

sudo npm -v

而不是重新安装node,这似乎是可以接受的解决方案,问题是nodejs文件夹/usr/local没有权限。
输入以下命令sudo chmod -R 777 /usr/local/nodejs/

所以,对于那些使用:

NVM和自制

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

nvm ls

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

nvm use 16

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

如果您使用的是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

我的解决办法是登录为根,现在我不必再使用sudo

su root
在我的例子中,由于某种原因,在安装了一些python模块后,我突然开始收到消息说node未安装或未被识别为命令。 经过检查,我的路径被注册在.bashrc中。 所以,我源文件,一切重新开始工作

source .bashrc

你可以通过为npm和node创建符号链接来解决这个问题,这是快速而简单的:

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

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

我也为node创建了一个符号链接,因为npm依赖于 节点。< / p >

然后你就可以:

sudo npm -v

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