节点版本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.sh
与source $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文件中来自动加载
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
快速回答
找出以下几点:
- 你的terminal使用哪个shell,input:
echo $0
找出(通常工作) - 哪个启动文件在启动时会加载shell (不是loginshell启动文件 ,正常的shell启动文件 ,有区别!)
- 将
source ~/.nvm/nvm.sh
添加到该文件(假定该文件存在于该位置,则它是默认的安装位置) - 注销/login
- 利润?
例
正如你可以看到它下面说明zsh
而不是bash
。
为了解决这个问题,我需要添加source ~/.nvm/nvm.sh
到source ~/.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是可取的。 看这里。
我已经解决了这个问题。
- 触摸〜/ .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
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 ~/.bashrc
或source ~/.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就不会有错误了。