节点版本pipe理器安装 – 找不到nvm命令

我正在尝试按照这些说明安装NVM

我在terminal键入这个命令:

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

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

 $ nvm install 0.8 

但我得到的回应:

 -bash: nvm: command not found 

我不知道我在这里做错了什么。

附加信息 –

我一直在寻找其他职位和论坛的解决scheme。 我发现了另一个解决scheme

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

但每次我尝试这个时候都会出现这个问题。 任何帮助,将不胜感激。 谢谢。

检查你的.bash_profile.profile文件。 安装过程中最有可能遇到问题。

您应该在这些文件中的一个的末尾处具有以下内容。

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

. $HOME/.nvm/nvm.sh . $HOME/.nvm/nvm.shsource $HOME/.nvm/nvm.sh

请参阅: 采购文件

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

 ls -a | grep .nvm 

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

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

我想你错过了这一步:

 source ~/.nvm/nvm.sh 

你可以在bash上运行这个命令,或者你可以把它放在/.bashrc或〜/ .profile文件中来自动加载

https://github.com/creationix/nvm

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

在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将在login后自动获取。

这对我工作:

1)安装nvm之前,在terminal运行: nvm / .bash_profile

2)之后,在terminal运行这个:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | 庆典

3)不要忘记重新启动您的terminal( 重要

4)在terminal,input: nvm –version ,你应该看到的版本

没有直接连接到这个问题,但有可能发生类似的问题,看看这个问题: 不能从新的bash执行nvm


这是我对这个post的回答,仅供参考:

如果你正在运行一个新的bash实例,并且你的〜/ .bashrc,〜/ .bash_profile等等有初始化代码,那么你需要检查这个初始化文件的条件。

在Ubuntu 14上,有一个:

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

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

 bash -i 

另外,在文件的最后,还有一个

 [ -z "$PS1" ] && return 

这将停止执行,如果不是与$ PS1设置(如在远程SSH会话)运行。

如果你不想添加任何env vars或标志,你将需要从你的初始化文件中删除这些条件。

希望这是有帮助的。

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

创buildconfiguration文件

 touch ~/.bash_profile 

重新运行安装,这次你会在输出中看到相关的行。

=>将源string附加到/Users/{username}/.bash_profile

重新载入您的个人资料(或closures/重新打开terminal窗口)。

 . ~/.bash_profile 

快速回答

找出以下几点:

  1. 你的terminal使用哪个shell,input: echo $0找出(通常工作)
  2. 哪个启动文件在启动时会加载shell (不是loginshell启动文件 ,正常的shell启动文件 ,有区别!)
  3. source ~/.nvm/nvm.sh添加到该文件(假定该文件存在于该位置,则它是默认的安装位置)
  4. 注销/login
  5. 利润?

正如你可以看到它下面说明zsh而不是bash在这里输入图像说明

为了解决这个问题,我需要添加source ~/.nvm/nvm.shsource ~/.nvm/nvm.sh文件中,就像启动一个新的terminal一样,我的Deepinterminalzsh读取~/.zshrc .zshrc而不是〜bashs〜 ~/.bashrc

为什么会这样呢?

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

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

有关zsh更多信息,请参阅这里的答案之一。

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

loginshell中的nvm命令不会传播到子shell(如login后的控制台窗口和IDEterminal)。 如果它是一个交互式shell并且尚未加载,则$HOME/.bashrc这段代码只会加载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文件中,即使是在gui中,也可以修复交互式bash shell中缺less的nvm问题,即使nvm安装在非标准位置。

在Debian上,以及添加下面的行到我的.bash_profile作为上述答案之一说。 我还必须打开我的terminal首选项(编辑 – >configuration文件首选项 – >命令),并启用“作为loginshell运行命令”使其工作。

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

编辑:对于Mac上的那些人请注意,macOS不会在terminal启动时读取.bashrc,所以使用.bash_profile是可取的。 看这里。

我已经解决了这个问题。

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

~/.bashrc添加到~/.bashrc~/.bash_profile

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

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

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

除了上面的行~/.bashrc~/.bash_profile

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

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

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

对我而言,这是因为我用 。 如果我不开始钓鱼 ,只需inputnvm就不会有错误了。