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

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


当前回答

MacOS;

在终端>上运行

open ~/.bash_profile

粘贴所有这些=

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

其他回答

我认为你错过了这一步:

source ~/.nvm/nvm.sh

您可以在bash上运行此命令,也可以将其放在文件/中。Bashrc或~/。Profile或~/。ZSHRC自动加载它

https://github.com/creationix/nvm

如果您使用的是OS X,那么在运行安装命令之前可能必须创建.bash_profile文件。这对我很有帮助。

创建概要文件

touch ~/.bash_profile

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

=>向/Users/{username}/.bash_profile添加源字符串

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

.  ~/.bash_profile

迅速的回答

计算如下:

你的终端使用的是哪个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

需要注意的是,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 install脚本默认将初始化代码添加到$HOME/。配置文件,它只由登录shell加载(在桌面环境中,您可能永远不会看到登录shell)。

登录shell中的nvm命令不会传播到子shell(如登录后的控制台窗口和IDE终端)。这个片段在你的$HOME/。Bashrc只会加载NVM,如果它是一个交互式shell并且还没有被加载

# 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安装在非标准位置。