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

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


当前回答

需要注意的是,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

(作为一个只有半命令行知识的人,我依靠肌肉记忆来判断哪个命令。使用nvm——version在说明中,但如果你像我一样白痴,你可能会错过/跳过这部分,并下意识地使用哪个nvm,并认为nvm没有安装。)

其他回答

随着时间的推移,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

正确地找到了安装位置。

与问题没有直接联系,但可能会发生类似的问题,看看这个问题:无法从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变量或标志,则需要从初始化文件中删除这些条件。

希望这对大家有帮助。

在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更可取。在这里看到的。

打开终端 如果你有ZSH终端,那么输入命令'open ~/.zshrc' 添加文件结尾,保存如下: ~ / .nvm / nvm.sh来源

对于Mac OS:

打开终端 运行touch ~/.bash_profile 执行vi ~/.bash_profile命令 输入source ~/.nvm/nvm.sh 按Shift + Esc键,输入wq,按enter键 完成了。