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


303

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

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

Answers:


369

检查你的.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

2
.nvm应该是一个目录。通过以下命令安装git clone git://github.com/creationix/nvm.git $NVM_TARGET。您之前说过,您尝试自己运行该命令,但失败了?您很可能在代理之后,并且未配置。尝试运行以下步骤。git clone http://github.com/creationix/nvm.git .nvm
travis

21
也有行,但'源〜/ .nvm / nvm.sh的作品
的K -毒性SO越来越大。

2
如果.nvm文件夹为空,则可能是由于未接受xcode协议许可而导致回购操作失败。运行sudo xcodebuild -license并接受许可证(通过推动space达到许可证的结尾并同意其条款)可以达到目的。
Pierre Criulanscy 2015年

4
您可能还需要source .bashrcsource .profile取决于
Henry Tseng

1
这些文件几乎总是存在于您的主目录中。source $HOME/.bashrc
travis

633

我认为您错过了这一步:

source ~/.nvm/nvm.sh

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

https://github.com/creationix/nvm


5
让我们使文档更好。我在nvm仓库上创建了一个问题:github.com/creationix/nvm/issues/748
Jonny Burger,

3
我多次手动执行此操作,直到最终将其放入我的.bashrc中!
Brady Dowling

2
这对我有用,但是要使其自动化,我必须先创建配置文件。“触摸〜/ .profile”,“打开〜/ .profile”,粘贴上方,保存并关闭。现在可以在新窗口中使用
Sonic Soul

6
将其添加到~/.bash_profile对我
有用的

6
这对我有用。我加入source ~/.nvm/nvm.sh了自己的作品~/.zshrc,现在nvm每次都可以工作
Eddy Vinck '19

88

这对我有用:

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


8
3)不要忘记重新启动终端的Key组件!这就是为什么我的不工作。谢谢
塞巴斯蒂安

1
如何“重启[其]终端密钥组件”?
爱德华

46

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


4
这是在多个外壳程序或外壳程序会话中持续存在的“永久性”解决方案。
ahnbizcad 2015年

这是唯一可行的答案。即使多次重开终端。最后,一旦执行此操作,别忘了重启终端:)
coderpc '19

40

快速回答

找出以下内容:

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

如您所见,状态zsh没有bash在此处输入图片说明

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

为什么会这样

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

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

有关更多信息zsh,请参见此处的答案之一。


您只需将zsh放在curl命令的末尾即可。例如:curl raw.github.com/creationix/nvm/master/install.sh | zsh
Prabhakar

22

在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将在登录后自动加载。


11

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

在Mac OS X上安装和使用nvm

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

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

    brew update brew install nvm

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

    mkdir ~/.nvm

  • 现在,如果您没有.bash_profile为OS 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版本的列表。


谢谢,我认为我想念的是创建.nvm目录。
icarovirtual,

11

首先在〜/ .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

8

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

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

touch ~/.zsrhrc

5

与问题没有直接联系,但是可能会发生类似的问题,请看以下问题:无法从新bash执行nvm


这是我在那篇文章中的答案,仅供参考:

如果您正在从新的bash实例运行,并且在〜/ .bashrc,〜/ .bash_profile等位置具有初始化代码,则需要在此初始化文件中查找条件。

在Ubuntu 14上,有一个:

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

在第6行,如果未使用“ -i”(交互式)标志运行bash,则它将停止执行。因此,您需要运行:

bash -i

另外,在文件末尾有一个

[ -z "$PS1" ] && return

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

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

希望对您有所帮助。


5

如果使用OS X,则可能必须在运行安装命令之前创建.bash_profile文件。对我来说就做到了。

创建配置文件

touch ~/.bash_profile

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

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

重新加载您的配置文件(或关闭/重新打开“终端”窗口)。

.  ~/.bash_profile

5

对于Mac OS:

  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,非常感谢!
Darnell Lynch

4

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

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

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

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

以及上述~/.bashrc和和的行~/.bash_profile


4

对于MacOS;

在终端上运行>

open ~/.bash_profile

粘贴所有这些=

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

2

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

登录外壳程序中的nvm命令不会传播到子外壳程序(如登录后的控制台窗口和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安装在非标准位置也是如此。


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

2

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

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


1

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

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

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


1

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


你是怎么拦住鱼的
Matko '18

键入exit @MobileDream。
周杰伦

1

Windows 8.1 x64与我相同事情,并收到以下消息。

nvm安装8.3.0 bash:nvm:找不到Windows命令

因此,请按照以下步骤操作或进行以下验证:

首先coreybutler/nvm-windows从安装github.com。当前可用的最新版本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)

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

$ nvm --version
Running version 1.1.5.

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

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


0

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

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

现在bashrc为每个终端会话加载。因此,请重新启动终端,以便再次加载终端,您应该一切顺利。



0

使用以下代码

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

0

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

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

经核实 nvm --version

nvm -v输出

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.