496

我正在尝试按照这些说明安装 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

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

4

30 回答 30

1131

我想你错过了这一步:

source ~/.nvm/nvm.sh

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

https://github.com/creationix/nvm

于 2013-07-17T18:15:29.427 回答
554

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

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

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

. $HOME/.nvm/nvm.sh是一样的source $HOME/.nvm/nvm.sh

请参阅:采购文件

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

ls -a | grep .nvm

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

git clone http://github.com/creationix/nvm.git .nvm
于 2013-06-03T21:11:14.757 回答
175

这对我有用:

  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,您应该会看到版本

于 2017-03-27T03:54:43.040 回答
78

快速回答

弄清楚以下内容:

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

例子

如您所见,它声明zsh而不是bash. 在此处输入图像描述

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

为什么会发生这种情况

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

换句话说:这是 NVM 的错误。

zsh可以在此处阅读其中一个答案的更多信息。

zsh 用户快速解答

curl raw.github.com/creationix/nvm/master/install.sh | zsh
于 2015-03-21T13:21:58.440 回答
68

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

于 2014-02-28T02:22:00.813 回答
26

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

于 2015-12-05T10:36:15.553 回答
24

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

在 Mac OS X 上安装和使用 nvm

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

  • 从这里安装自制软件。
  • 使用自制软件安装 nvm

    brew update brew install nvm

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

    mkdir ~/.nvm

  • 现在,如果您没有.bash_profileOS X 终端的文件设置,请.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 版本的列表。

于 2018-05-20T17:26:33.490 回答
21

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

默认 shell 以前是 bash。

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

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

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

touch ~/.zsrhrc
于 2020-01-23T18:52:48.683 回答
15

首先在 ~/.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
于 2018-09-20T06:47:54.900 回答
14

假设您已经使用 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
于 2021-09-18T19:43:38.637 回答
13

我有同样的问题,挽救我生命的是这句话“您可能需要添加到多个“~/.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
于 2020-10-28T07:19:36.060 回答
9

对于 MacOS;

在终端上运行 >

open ~/.bash_profile

粘贴所有这些=

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
于 2019-09-03T18:21:10.877 回答
8

对于 Mac 操作系统:

  1. 打开终端
  2. touch ~/.bash_profile
  3. vi ~/.bash_profile
  4. 类型source ~/.nvm/nvm.sh
  5. 按下Shift + Esc并键入wq并按下enter
  6. 完毕。
于 2019-11-20T05:25:42.200 回答
6

没有直接连接问题,但是可能会出现类似的问题,看一下这个问题: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 会话上),它将停止执行。

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

希望这会有所帮助。

于 2015-06-23T20:39:09.647 回答
5

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

创建配置文件

touch ~/.bash_profile

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

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

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

.  ~/.bash_profile
于 2015-05-04T13:13:07.840 回答
4

将以下行添加到文件~/.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

于 2017-07-16T12:44:55.760 回答
4

因为这个问题在我搬家时已经解决了

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

于 2018-07-11T13:15:41.730 回答
2

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

登录 shell 中的 nvm 命令不会传播到子 shell(例如登录后的控制台窗口和 IDE 终端)。$HOME/.bashrc如果它是交互式 shell 并且尚未加载,则您的此代码段将仅加载 nvm

# 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 安装在非标准位置也是如此。

于 2016-06-08T05:27:56.340 回答
2

我已经解决了这个问题。

  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
于 2017-06-14T07:41:42.283 回答
2

对于 Mac 操作系统:

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

ls -a ~/

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

触摸 ~/.profile

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

源 ~/.nvm/nvm.sh

  1. 按 Shift + Esc 并键入 wq 并按 enter
于 2021-09-18T09:15:19.253 回答
1

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

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

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

于 2017-04-21T16:57:36.330 回答
1

在 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 。看这里。

于 2017-05-23T13:42:26.017 回答
1

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

于 2017-06-22T10:35:51.760 回答
1

同样发生在Windows 8.1 x64我身上,并收到以下消息。

nvm install 8.3.0 bash: nvm: command not found windows

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

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

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

同时 setup 将为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)

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

$ nvm --version
Running version 1.1.5.

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

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

于 2018-02-04T11:47:13.433 回答
1

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

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

更多信息:macOS 上的故障排除

于 2020-08-12T21:52:52.233 回答
1

需要注意的是,这让我绊倒了一个小时,那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 is,但如果你像我这样的白痴,你可能会错过/跳过那部分,并which nvm通过反射使用,并认为未安装 nvm。)

于 2021-08-19T19:11:57.713 回答
1

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

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

问题是我的 curl 版本是通过 snap 获得的。按照此答案的建议删除并重新安装它可以解决问题:

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
于 2021-11-13T20:15:15.890 回答
0

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

于 2018-04-05T16:09:01.560 回答
0

使用以下代码

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8
于 2018-12-06T06:04:49.887 回答
0

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

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

经核实nvm --version

nvm -v 输出

于 2019-03-02T12:01:40.720 回答