【问题标题】:Node Version Manager install - nvm command not found节点版本管理器安装 - 未找到 nvm 命令
【发布时间】: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

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

【问题讨论】:

    标签: node.js terminal 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】:

    这对我有用:

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

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

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

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

    【讨论】:

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

    快速解答

    弄清楚以下几点:

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

    示例

    如您所见,它声明 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
    

    【讨论】:

    【解决方案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 操作系统:

        1. 打开终端
        2. 运行touch ~/.bash_profile
        3. 运行vi ~/.bash_profile
        4. 输入source ~/.nvm/nvm.sh
        5. Shift + Esc 并输入wq 并按enter
        6. 完成。

        【讨论】:

        • 在 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】:

                  我已经解决了这个问题。

                  1. 触摸 ~/.bash_profile
                  2. 打开 ~/.bash_profile
                  3. 粘贴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 操作系统:

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

                            ls -a ~/

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

                            触摸 ~/.profile

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

                            来源 ~/.nvm/nvm.sh

                            1. 按 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
                                    

                                    【讨论】: