sudo:npm:未找到命令

2024-10-14 08:40:00
admin
原创
71
摘要:问题描述:我正在尝试升级到最新版本的 node。我按照http://davidwalsh.name/upgrade-nodejs上的说明进行操作但当我这样做时:sudo npm install -g n 我收到错误:sudo: npm: command not found npm 无需 sudo 即可运行。当...

问题描述:

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


解决方案 1:

我必须做

sudo apt-get install npm

这对我有用。

解决方案 2:

npm 文件应该在 中/usr/local/bin/npm。如果不存在,请使用其网站上的包再次安装 node.js。这对我来说是有效的。

解决方案 3:

对于 MAC 用户,以下步骤对我有用。

如果您收到 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 

解决方案 4:

我遇到了同样的问题;以下是修复该问题的命令:

  • 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

解决方案 5:

编辑

警告!- 执行 achmod 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

额外的

如果您在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

解决方案 6:

我必须做以下事情:

  1. brew update

  2. brew uninstall node

  3. 访问https://nodejs.org/en/下载文件

  4. 安装下载的文件

解决方案 7:

如果您使用 nvm 安装了 node/npm,则必须先运行 nvm 环境配置文件,然后才能使用任一包。

这通常位于 ~/.nvm/nvm.sh 中。

要自动运行它,请包括:

source ~/.nvm/nvm.sh

在您的用户的 .bash_profile 文件中

如果您随后想让该用户使用 sudo,请确保包含 -i 参数以使 sudo 设置用户环境。例如

sudo -iu jenkins npm install grunt-cli

解决方案 8:

您可以通过为 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 操作。

我已经在 ubuntu 上测试过了,但它应该可以在大多数 Linux 发行版上运行。

解决方案 9:

您可以创建符号链接并使其起作用。

  1. 找到电流路径npm

which npm

  1. 通过以下命令创建符号链接

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

  1. 验证。

sudo npm -v

解决方案 10:

在 macOS 上,这对我有用:

brew reinstall node

解决方案 11:

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

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

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

解决方案 12:

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

sudo yum install npm

解决方案 13:

对于 Debian,安装完 node 后输入

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

解决方案 14:

只需重新安装。

在 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]

简单!... 现在 node 和 npm 都可以很好地运行!

解决方案 15:

我通过以下方式解决了这个问题

apt-get install npm2deb

解决方案 16:

我的解决方案是:

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

对我来说很好用。

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

发生这种情况是因为您更改了默认的全局包目录

解决方案 17:

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

为了最大限度地减少权限错误的可能性,您可以将 npm 配置为使用其他目录。在此示例中,您将在主目录中创建并使用隐藏目录。

备份您的计算机。在命令行上,在您的主目录中,创建一个用于全局安装的目录:

 mkdir ~/.npm-global

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

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

在您喜欢的文本编辑器中,打开或创建一个 ~/.profile 文件并添加以下行:

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

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

 source ~/.profile

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

 npm install -g jshint

解决方案 18:

如果您已经下载了节点包并解压到某处,那么/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

解决方案 19:

因此,对于那些使用:

NVM 和自制

确保设置了 node 版本。对我来说,我的 node 版本不再设置。因此,我使用以下方法检查了我拥有的版本

nvm ls

这里列出了 v16.13.1,所以我将其设置为使用这个

nvm use 16

一旦设置了 node 版本,npm 命令就可以再次工作了

解决方案 20:

我遇到了同样的问题,原因是安装 node 时未安装 npm 包管理器。这是由于以下错误造成的:在安装过程中有一个名为“自定义设置”的步骤,在这里您可以选择以下选项之一:1) Node.js 运行时(默认选择)。2) npm 包管理器 3)​​ 在线文档快捷方式。4) 添加到路径。如果您继续这样做,npm 包管理器将不会安装,因此您将收到错误。

解决方案:获得这些选项后,请选择 npm 包管理器。这对我来说很有效。

解决方案 21:

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

现在“sudo npm”可以正常工作

解决方案 22:

我在 Homestead 也遇到了同样的问题,尝试了很多方法。我尝试过

sudo apt-get 安装 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

解决方案 23:

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

~/.bashrc

通过使用命令将普通用户更改为 root 来取消 root 权限:

sudo-i

然后我必须将解压后的节点路径添加到 .bashrc 文件中,如下所示:
在此处输入图片描述

然后使用以下方式重新引用 .bashrc

.~/.bashrc

此后

npm: command not found

走了

解决方案 24:

重新安装 node 似乎是可接受的解决方案,但问题是没有对 nodejs 文件夹 /usr/local 的权限。

输入以下命令sudo chmod -R 777 /usr/local/nodejs/

解决方案 25:

就我而言,出于某种原因,在安装了一些 Python 模块后,我突然收到消息,提示“node未安装”或“未被识别为命令”。经检查,我的路径已在 中注册.bashrc。因此,我找到了该文件,一切又开始正常工作。

source .bashrc

解决方案 26:

对我来说很好用......

在我的另一台电脑上

mkdir TEST
cd TEST
npm init -y
npm install npm

然后将安装好的项目文件夹复制npm到目标电脑

cd TEST
chmod +x node_modules/.bin/npm
node_modules/.bin/npm install -g npm

npm然后使用-g密钥安装...

解决方案 27:

彻底删除节点:

  brew uninstall --force node

再次安装:

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

解决方案 28:

万一对任何使用软件包的人来说都有用,rh-*这对我有用:

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

解决方案 29:

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

解决方案 30:

我的解决方法是以 root 身份登录,这样我就不必再使用 sudo 了

su root
相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用