节点版本管理器安装 - 未找到 nvm 命令

Posted

技术标签:

【中文标题】节点版本管理器安装 - 未找到 nvm 命令【英文标题】:Node Version Manager install - nvm command not found 【发布时间】:2013-05-30 01:42:44 【问题描述】:

我正在尝试按照instructions 安装 NVM

我在终端输入了这个命令:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

运行安装后,我重新启动终端并尝试使用以下命令安装 Node.js:

$ nvm install 0.8

但我得到了回应:

-bash: nvm: command not found

我不确定我在这里做错了什么。

附加信息--

我一直在寻找其他帖子和论坛的解决方案。我找到了另一个解决方案,使用

$ git clone git://github.com/creationix/nvm.git ~/.nvm

但是每次我尝试这样做都会超时。任何帮助,将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

我认为你错过了这一步:

source ~/.nvm/nvm.sh

您可以在 bash 上运行此命令,也可以将其放入文件 /.bashrc 或 ~/.profile 或 ~/.zshrc 以自动加载它

https://github.com/creationix/nvm

【讨论】:

让我们把文档做得更好。我在 nvm repo 上创建了一个问题:github.com/creationix/nvm/issues/748 我多次手动执行此操作,直到最终将其放入我的 .bashrc 中! 这对我有用,但为了使其自动化,我必须先创建配置文件。 "touch ~/.profile", "open ~/.profile" ,粘贴在上面,保存+关闭。现在可以在新窗口中使用 将它添加到 ~/.bash_profile 对我有用 这对我有用。我将source ~/.nvm/nvm.sh 添加到我的~/.zshrc,现在nvm 每次都有效【参考方案2】:

检查您的 .bash_profile.zshrc.profile 文件。您很可能在安装过​​程中遇到了问题。

您应该在其中一个文件的末尾有以下内容。

[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh  # This loads NVM

. $HOME/.nvm/nvm.shsource $HOME/.nvm/nvm.sh 相同

见:Sourcing a File

您还可以查看是否有.nvm 文件夹。

ls -a | grep .nvm

如果您缺少该文件夹,则安装无法运行 git 命令。这可能是由于在代理后面。请尝试运行以下命令。

git clone http://github.com/creationix/nvm.git .nvm

【讨论】:

.nvm 应该是一个目录。它是通过以下命令git clone git://github.com/creationix/nvm.git $NVM_TARGET 安装的。您之前说过您尝试自己运行该命令但失败了?很可能您在代理后面并且可能未配置。尝试运行以下命令。 git clone http://github.com/creationix/nvm.git .nvm 也有这条线,但 'source ~/.nvm/nvm.sh' 有效 如果 .nvm 文件夹为空,可能是因为未接受 xcode 协议许可,导致获取 repo 失败。运行sudo xcodebuild -license 并接受许可(通过推动space 达到许可的末尾并同意其条款)就可以了。 您可能还需要source .bashrcsource .profile,具体取决于 将 nvm 配置放入 .zshrc 帮助我解决它。谢谢【参考方案3】:

这对我有用:

    在安装nvm之前,在终端中运行:touch ~/.bash_profile

    之后,在终端中运行:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

    重要... - 不要忘记重新启动您的终端使用命令source ~/.nvm/nvm.sh(这将刷新系统路径中的可用命令)。

    在终端中,使用命令nvm --version,您应该会看到版本

【讨论】:

3) 不要忘记重启你的终端关键组件!这就是为什么我的不工作。谢谢 如何“重启[他们的]终端关键组件”? 应该选为最佳答案,非常感谢!【参考方案4】:

快速解答

弄清楚以下几点:

    您的终端使用的是哪个 shell,输入:echo $0 找出(正常工作) 启动时该shell加载哪个启动文件(不是登录shell启动文件,普通shell启动文件,有区别! )source ~/.nvm/nvm.sh 添加到该文件(假设该文件存在于该位置,它是默认安装位置) 开始一个新的终端会话 利润?

示例

如您所见,它声明 zsh 而不是 bash

为了解决这个问题,我需要将 source ~/.nvm/nvm.sh 添加到 ~/.zshrc 文件中,因为在启动新终端时,我的 Deepin Terminal zsh 读取 ~/.zshrc 而不是 bashs ~/.bashrc

为什么会这样

发生这种情况是因为在安装 NVM 时,它会将代码添加到 ~/.bashrc,因为我的终端 Deepin Terminal 使用 zsh 而不是 bash,它从不读取 ~/.bashrc,因此从不加载 NVM。

换句话说:这是 NVM 的故障。

更多关于zsh的信息可以阅读here的答案之一。

zsh 用户快速解答

curl raw.github.com/creationix/nvm/master/install.sh | zsh

【讨论】:

您可以简单地将 zsh 放在 curl 命令的末尾。例如:卷曲raw.github.com/creationix/nvm/master/install.sh | zsh 这完全是我的问题,因为 OSX Catalina 现在默认使用 zsh,而不是 bash。 @Prabhakar 感谢您在 curl 命令末尾指出 zsh 关键字。它对我有用 对我有用:1) curl -o- raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | zsh 2) 关闭当前终端并打开一个新终端 3) 你可以使用 nvm! zsh 用户的快速回答 - 为我工作,谢谢【参考方案5】:

source ~/.nvm/nvm.sh 将此行添加到 ~/.bashrc、~/.profile 或 ~/.zshrc

【讨论】:

这是持续跨多个 shell 或 shell 会话的“永久”解决方案。 这是唯一可行的答案。即使在多次重新打开终端后。最后,一旦你这样做了,别忘了重启你的终端:)【参考方案6】:

在 macOS 中,我必须使用 source ~/.nvm/nvm.sh 命令获取它来解决此问题。

之后,添加这些行

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

转到~/.bash_profile,以便在登录时自动获取 nvm。

【讨论】:

【参考方案7】:

这个问题的所有答案都是有用的。尤其是特拉维斯给出的答案对我有帮助。对于 Mac OS X 用户,我想提供一些步骤来帮助他们使用全新安装的 Node Version Manager a.k.a. nvm。

在 Mac OS X 上安装和使用 nvm

以下是全新安装 nvm 并毫无问题地使用它的步骤:

从here 安装自制软件。

使用自制软件安装 nvm

brew update brew install nvm

~/.nvm 位置创建.nvm 目录。

mkdir ~/.nvm

现在,如果您没有为 OS X 终端设置.bash_profile 文件,请在根级别创建一个.bash_profile

nano ~/.bash_profile

.bash_profile 中粘贴以下代码,然后按CTRL + O 并按回车键保存.bash_profile 文件。按CTRL + X退出编辑器:

export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

现在要么完全 (CMD + Q) 终端,要么运行以下命令以加载 .bash_profile 设置:

source ~/.bash_profile

现在运行nvm ls 命令获取所有已安装nodejs 版本的列表。

【讨论】:

谢谢,我想我错过的是创建.nvm 目录。【参考方案8】:

OSX 10.15.0 Catalina(2019 年 11 月发布)将默认 shell 更改为 zsh。

以前的默认 shell 是 bash。

nvm GitHub page 上给出的安装命令需要调整以在末尾包含“zsh”。

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | zsh

注意:您可能需要事先确保 zsh 的 .rc 文件存在:

touch ~/.zsrhrc

【讨论】:

只是一个小的修正,因为我最初被文件名绊倒了。是touch ~/.zshrc :) 否则可以验证上面的作品 添加 .zsrhrc 甚至适用于 Homebrew。它位于 macOS 上的疑难解答下的 README.md 文件中【参考方案9】:

首先在 ~/.bashrc 文件中添加以下行

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

然后打开终端并获取 nvm.sh 脚本

source ~/.nvm/nvm.sh

【讨论】:

这对我有用,谢谢。【参考方案10】:

我也遇到了同样的问题,而挽救我生命的是这句话“您可能需要添加到多个“~/.bashrc、~/.profile 或 ~/.zshrc 文件”中。以下几行仅在我的 .bashrc 中,我将其添加到文件“.bash_profile”和“.profile”中并为我工作。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

【讨论】:

我尝试了这个,甚至创建了 .profile 没有运气。 啊!我只需要重新启动终端!谢谢! 可以,重启终端或者在对应的shell中运行以下命令:bash:source ~/.bashrczsh:source ~/.zshrcksh:. ~/.profile【参考方案11】:

假设您已经使用 brew 安装了 nvm(我在 mac 上),我的意思是 brew install nvm 之类的东西,您需要做的就是:

 1. You should create NVM's working directory if it doesn't exist:

  mkdir ~/.nvm

 2. Add the following to ~/.zshrc or your desired shell configuration
    file:

      export NVM_DIR="$HOME/.nvm"
      [ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # This loads nvm
      [ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # This loads nvm bash_completion

【讨论】:

这对我来说就像一个魅力。谢谢!【参考方案12】:

对于 MacOS;

在终端上运行 >

open ~/.bash_profile

粘贴所有这些=

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

【讨论】:

【参考方案13】:

对于 Mac 操作系统:

    打开终端 运行touch ~/.bash_profile 运行vi ~/.bash_profile 输入source ~/.nvm/nvm.shShift + Esc 并输入wq 并按enter 完成。

【讨论】:

在 ubuntu 18.04 中,我只需要: 4. 输入 source ~/.nvm/nvm.sh 非常感谢!【参考方案14】:

没有直接联系问题,但是可能会出现类似的问题,看看这个问题:Can't execute nvm from new bash


这是我对该帖子的回答,仅供参考:

如果您从一个新的 bash 实例运行,并且您的 ~/.bashrc、~/.bash_profile 等处有初始化代码,那么您需要检查此初始化文件的条件。

在 Ubuntu 14 上,有一个:

case $- in
    *i*) ;;
      *) return;;
esac

在第 6 行,如果没有使用“-i”(交互式)标志运行 bash,它将停止执行。所以你需要运行:

bash -i

另外,在文件的末尾,有一个

[ -z "$PS1" ] && return

如果没有设置 $PS1 运行(例如在远程 ssh 会话上),它将停止执行。

如果您不想添加任何环境变量或标志,则需要从初始化文件中删除这些条件。

希望对您有所帮助。

【讨论】:

【参考方案15】:

如果您使用的是 OS X,您可能必须在运行安装命令之前创建您的 .bash_profile 文件。这对我有用。

创建配置文件

touch ~/.bash_profile

重新运行安装,这次您将在输出中看到相关行。

=> 将源字符串附加到 /Users/username/.bash_profile

重新加载您的个人资料(或关闭/重新打开终端窗口)。

.  ~/.bash_profile

【讨论】:

【参考方案16】:

将以下行添加到文件~/.bashrc~/.bash_profile

# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

并重新启动终端或执行source ~/.bashrcsource ~/.bash_profile。如果您需要 nvm 的命令完成,那么还要添加以下行:

[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

连同以上几行到~/.bashrc~/.bash_profile

【讨论】:

【参考方案17】:

因为问题在我搬家时已解决

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

.zshrc结尾

【讨论】:

【参考方案18】:

默认情况下,nvm 安装脚本会将初始化代码添加到您的 $HOME/.profile,该代码仅由登录 shell 加载(在桌面环境中,您可能永远看不到登录 shell)。

登录 shell 中的 nvm 命令不会传播到子 shell(例如登录后的控制台窗口和 IDE 终端)。 $HOME/.bashrc 中的这个 sn-p 只会在 nvm 是交互式 shell 并且尚未加载时才加载

# if nvm dir is not set and the standard nvm directory exists
if [ -z "$NVM_DIR" -a -d "$HOME/.nvm" ] ; then
# set nvm dir
  export NVM_DIR="$HOME/.nvm"
fi

# if nvm dir is set and this shell is interactive
if [ -d "$NVM_DIR" -a -n "$PS1" ] ; then
  # if nvm command is not defined
  if ! type -t nvm >/dev/null ; then
    # set it
    source "$NVM_DIR/nvm.sh"
  fi
fi

将其放入您的 $HOME/.bashrc 文件中将解决交互式 bash shell 中缺少 nvm 的问题,即使是从 gui 中,即使 nvm 安装在非标准位置。

【讨论】:

【参考方案19】:

我已经解决了这个问题。

    触摸 ~/.bash_profile 打开 ~/.bash_profile 粘贴export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

【讨论】:

【参考方案20】:

对我来说,这很有效。 首先检查文件.bashrc是否有以下行

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

现在为每个终端会话加载bashrc。因此重新启动终端,以便它再次加载,你应该很好去。

【讨论】:

【参考方案21】:

在 Debian 上,以及将以下几行添加到我的 .bash_profile 中,如上述答案之一所述。我还必须打开我的终端首选项(编辑 -> 配置文件首选项 -> 命令)并启用“将命令作为登录 shell 运行”以使其工作。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

编辑:对于 Mac 上的用户,请注意 macOS 在终端启动时不会读取 .bashrc,因此最好使用 .bash_profile。 See Here.

【讨论】:

【参考方案22】:

就我而言,这是因为我使用 fish。如果我不启动 fish,现在只需键入 nvm 不会出错。

【讨论】:

你是如何阻止的? 输入exit@MobileDream。【参考方案23】:

Windows 8.1 x64我也发生了同样的事情,并收到了以下消息。

nvm install 8.3.0 bash: nvm: command not found windows

因此,请按照以下步骤操作或验证以下步骤-

首先从github.com 安装coreybutler/nvm-windows。当前可用的最新版本 1.1.5 nvm-setup.zip,后来提取了设置 nvm-setup.exe 并安装在以下位置:

NVM_HOME    : C:\Users\Administrator\nvm
NVM_SYMLINK : C:\Program Files\nodejs

同时安装程序将把环境变量管理到Path,就像上面所说的那样。

现在以管理员身份运行Git Bash,然后。

$ nvm install 8.3.0 all

Downloading node.js version 8.3.0 (64-bit)...
Complete
Creating C:\Users\Administrator\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.3.0

$ nvm use 8.3.0
Now using node v8.3.0 (64-bit)

在这里运行你的命令而不使用前缀$,这里只是显示它以确定它是一个命令行,现在我们将验证nvm版本。

$ nvm --version
Running version 1.1.5.

Usage:
-----------------------

如果您在使用nvm 安装node 时遇到问题,您可以在此处查看可用nodejs 版本列表https://nodejs.org/download/release/ 并根据您的要求选择正确的安装程序版本等于或高于v6.3.0 直接.

【讨论】:

【参考方案24】:

遇到了同样的问题,但这对我有用:

从 macOS 10.15 开始,默认的 shell 是 zsh,nvm 会寻找.zshrc 进行更新,默认没有安装。使用 touch ~/.zshrc 创建一个并再次运行安装脚本。

更多信息在这里:Troubleshooting on macOS

【讨论】:

【参考方案25】:

需要注意的是,nvm 是“作为符合 POSIX 标准的函数实现的”,正如 nvm.sh 脚本文件顶部所述。这意味着您的路径中没有 nvm 文件,因此您无法使用 which 命令验证 nvm 是否存在。相反,请使用nvm --version,并验证您是否获得了预期的输出。

malderete-ltm:~ malderete$ nvm --version
0.38.0
malderete-ltm:~ malderete$ which nvm
malderete-ltm:~ malderete$ which node
malderete-ltm:~ malderete$ nvm install --lts
Installing latest LTS version.
Downloading and installing node v14.17.5...
Downloading https://nodejs.org/dist/v14.17.5/node-v14.17.5-darwin-x64.tar.xz...
######################################################################### 100.0%
Computing checksum with shasum -a 256
Checksums matched!
Now using node v14.17.5 (npm v6.14.14)
Creating default alias: default -> lts/* (-> v14.17.5)
malderete-ltm:~ malderete$ nvm use --lts
Now using node v14.17.5 (npm v6.14.14)
malderete-ltm:~ malderete$ which node
/Users/malderete/.nvm/versions/node/v14.17.5/bin/node

(作为一个只懂半命令行的人,我依靠肌肉记忆来使用which 命令。在说明中使用nvm --version ,但如果你是个白痴像我一样,您可能会错过/跳过那部分,并通过反射使用which nvm,并认为未安装nvm。)

【讨论】:

我不敢相信我是你的第一个支持者...which 也是我确定我是否有东西的首选...不敢相信它让我失望了。跨度> 【参考方案26】:

对于 Mac 操作系统:

    打开终端 使用此命令检查您是否有 .profile 文件:

ls -a ~/

    如果您没有此文件,只需创建一个:

触摸 ~/.profile

    将此命令添加到 .profile 文件中:

来源 ~/.nvm/nvm.sh

    按 Shift + Esc 并输入 wq 并按回车

【讨论】:

【参考方案27】:

我最近也遇到了同样的问题,使用 source ~/.nvm/nvm.sh 获取 nvm bash 脚本解决了这个问题。

【讨论】:

【参考方案28】:

使用以下代码

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8

【讨论】:

【参考方案29】:

在尝试了多个步骤后,不确定我的问题是什么,但运行它有帮助:

touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

验证人nvm --version

【讨论】:

【参考方案30】:

在花了 3 个多小时测试上述一些解决方案后,我发现了一个对我有用的答案。 我在 Ubuntu 20.04.3 LTS 下,全新安装添加了官方命令:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | 
bash

问题是我的 curl 版本是通过 snap 获得的。按照this answer 的建议删除并重新安装它解决了这个问题:

sudo snap remove curl
sudo apt install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh 
| bash
nvm install node

【讨论】:

以上是关于节点版本管理器安装 - 未找到 nvm 命令的主要内容,如果未能解决你的问题,请参考以下文章

节点版本管理器 (NVM) npm 将模块安装到公共文件夹

安装node多版本管理器nvm,以及nvm常用命令

纱线未安装在 nvm 版本节点版本中

为啥在 Windows 上无法识别节点版本管理器 (NVM)?

安装nvm管理多版本nodejs

sh NVM - 节点版本管理器