我正在尝试按照这些说明安装NVM
我在终端输入了这个命令:
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
运行install后,重启终端并尝试使用以下命令安装Node.js:
$ nvm install 0.8
但我得到的回答是:
-bash: nvm: command not found
我不知道我哪里做错了。
额外的信息,
我一直在其他帖子和论坛中寻找解决方案。我找到了另一个解决办法
$ git clone git://github.com/creationix/nvm.git ~/.nvm
但是每次我尝试的时候,这个就会超时。任何帮助都将不胜感激。谢谢。
迅速的回答
计算如下:
你的终端使用的是哪个shell,输入:echo $0来查找(正常工作)
shell在启动时加载哪个启动文件(不是登录shell启动文件,正常的shell启动文件,有区别!)
将source ~/.nvm/nvm.sh添加到该文件(假设该文件存在于该位置,它是默认安装位置)
启动一个新的终端会话
利润?
例子
如您所见,它显示的是zsh而不是bash。
为了解决这个问题,我需要添加源~/.nvm/nvm.sh到~/. nvm.sh。当启动一个新终端时,我的Deepin终端zsh读取~/。ZSHRC而不是bashs ~/.bashrc。
为什么会发生这种情况
这是因为在安装NVM时,它将代码添加到~/。bashrc,因为我的终端Deepin终端使用zsh而不是bash,它永远不会读取~/。bashrc,因此永远不会加载NVM。
换句话说:这是nvm故障。
关于zsh的更多信息可以在这里的一个答案中阅读。
zsh用户的快速回答
curl raw.github.com/creationix/nvm/master/install.sh | zsh
与问题没有直接联系,但可能会发生类似的问题,看看这个问题:无法从new bash执行nvm
以下是我对那篇文章的回答,仅供参考:
如果您正在从一个新的bash实例运行,并且您的~/。bashrc,(~ /。Bash_profile等,然后需要检查这个初始化文件中的条件。
在Ubuntu 14上,有一个:
case $- in
*i*) ;;
*) return;;
esac
在第6行,如果bash没有使用“-i”(交互式)标志运行,将暂停它的执行。所以你需要运行:
bash -i
此外,在文件的末尾,有一个
[ -z "$PS1" ] && return
如果没有使用$PS1设置运行(就像在远程ssh会话上),这将停止它的执行。
如果您不希望添加任何env变量或标志,则需要从初始化文件中删除这些条件。
希望这对大家有帮助。
随着时间的推移,nvm(来自homebrew)改变了安装后的说明。
我在新计算机上找不到nvm_find_nvmrc,直到我替换
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
with
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh" # This loads nvm
[ -s "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" ] && \. "/opt/homebrew/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
正确地找到了安装位置。
在文件中添加以下行~/。Bashrc和~/。bash_profile:
# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
并重新启动终端或做源~/。Bashrc或source ~/.bash_profile。如果你需要nvm的命令补全,也可以添加这行:
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
与上面的行一起到~/。Bashrc和~/.bash_profile。