节点版本管理器安装 - 未找到 nvm 命令
Posted
技术标签:
【中文标题】节点版本管理器安装 - 未找到 nvm 命令【英文标题】:Node Version Manager install - nvm command not found 【发布时间】:2013-05-30 01:42:44 【问题描述】:我正在尝试按照instructions 安装 NVM
我在终端输入了这个命令:
$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh
运行安装后,我重新启动终端并尝试使用以下命令安装 Node.js:
$ nvm install 0.8
但我得到了回应:
-bash: nvm: command not found
我不确定我在这里做错了什么。
附加信息--
我一直在寻找其他帖子和论坛的解决方案。我找到了另一个解决方案,使用
$ git clone git://github.com/creationix/nvm.git ~/.nvm
但是每次我尝试这样做都会超时。任何帮助,将不胜感激。谢谢。
【问题讨论】:
【参考方案1】:我认为你错过了这一步:
source ~/.nvm/nvm.sh
您可以在 bash 上运行此命令,也可以将其放入文件 /.bashrc 或 ~/.profile 或 ~/.zshrc 以自动加载它
https://github.com/creationix/nvm
【讨论】:
让我们把文档做得更好。我在 nvm repo 上创建了一个问题:github.com/creationix/nvm/issues/748 我多次手动执行此操作,直到最终将其放入我的 .bashrc 中! 这对我有用,但为了使其自动化,我必须先创建配置文件。 "touch ~/.profile", "open ~/.profile" ,粘贴在上面,保存+关闭。现在可以在新窗口中使用 将它添加到~/.bash_profile
对我有用
这对我有用。我将source ~/.nvm/nvm.sh
添加到我的~/.zshrc
,现在nvm
每次都有效【参考方案2】:
检查您的 .bash_profile
、.zshrc
或 .profile
文件。您很可能在安装过程中遇到了问题。
您应该在其中一个文件的末尾有以下内容。
[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh # This loads NVM
. $HOME/.nvm/nvm.sh
与 source $HOME/.nvm/nvm.sh
相同
见:Sourcing a File
您还可以查看是否有.nvm
文件夹。
ls -a | grep .nvm
如果您缺少该文件夹,则安装无法运行 git 命令。这可能是由于在代理后面。请尝试运行以下命令。
git clone http://github.com/creationix/nvm.git .nvm
【讨论】:
.nvm
应该是一个目录。它是通过以下命令git clone git://github.com/creationix/nvm.git $NVM_TARGET
安装的。您之前说过您尝试自己运行该命令但失败了?很可能您在代理后面并且可能未配置。尝试运行以下命令。 git clone http://github.com/creationix/nvm.git .nvm
也有这条线,但 'source ~/.nvm/nvm.sh' 有效
如果 .nvm 文件夹为空,可能是因为未接受 xcode 协议许可,导致获取 repo 失败。运行sudo xcodebuild -license
并接受许可(通过推动space
达到许可的末尾并同意其条款)就可以了。
您可能还需要source .bashrc
或source .profile
,具体取决于
将 nvm 配置放入 .zshrc
帮助我解决它。谢谢【参考方案3】:
这对我有用:
在安装nvm
之前,在终端中运行:touch ~/.bash_profile
之后,在终端中运行:curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
重要... - 不要忘记重新启动您的终端或使用命令source ~/.nvm/nvm.sh
(这将刷新系统路径中的可用命令)。
在终端中,使用命令nvm --version
,您应该会看到版本
【讨论】:
3) 不要忘记重启你的终端关键组件!这就是为什么我的不工作。谢谢 如何“重启[他们的]终端关键组件”? 应该选为最佳答案,非常感谢!【参考方案4】:快速解答
弄清楚以下几点:
-
您的终端使用的是哪个 shell,输入:
echo $0
找出(正常工作)
启动时该shell加载哪个启动文件(不是登录shell启动文件,普通shell启动文件,有区别! )
将source ~/.nvm/nvm.sh
添加到该文件(假设该文件存在于该位置,它是默认安装位置)
开始一个新的终端会话
利润?
示例
如您所见,它声明 zsh
而不是 bash
。
为了解决这个问题,我需要将 source ~/.nvm/nvm.sh
添加到 ~/.zshrc
文件中,因为在启动新终端时,我的 Deepin Terminal zsh 读取 ~/.zshrc
而不是 bashs ~/.bashrc
。
为什么会这样
发生这种情况是因为在安装 NVM 时,它会将代码添加到 ~/.bashrc
,因为我的终端 Deepin Terminal 使用 zsh
而不是 bash
,它从不读取 ~/.bashrc
,因此从不加载 NVM。
换句话说:这是 NVM 的故障。
更多关于zsh
的信息可以阅读here的答案之一。
zsh 用户快速解答
curl raw.github.com/creationix/nvm/master/install.sh | zsh
【讨论】:
您可以简单地将 zsh 放在 curl 命令的末尾。例如:卷曲raw.github.com/creationix/nvm/master/install.sh | zsh 这完全是我的问题,因为 OSX Catalina 现在默认使用 zsh,而不是 bash。 @Prabhakar 感谢您在 curl 命令末尾指出 zsh 关键字。它对我有用 对我有用:1) curl -o- raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | zsh 2) 关闭当前终端并打开一个新终端 3) 你可以使用 nvm! zsh 用户的快速回答 - 为我工作,谢谢【参考方案5】:source ~/.nvm/nvm.sh
将此行添加到 ~/.bashrc、~/.profile 或 ~/.zshrc
【讨论】:
这是持续跨多个 shell 或 shell 会话的“永久”解决方案。 这是唯一可行的答案。即使在多次重新打开终端后。最后,一旦你这样做了,别忘了重启你的终端:)【参考方案6】:在 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。
【讨论】:
【参考方案7】:这个问题的所有答案都是有用的。尤其是特拉维斯给出的答案对我有帮助。对于 Mac OS X 用户,我想提供一些步骤来帮助他们使用全新安装的 Node Version Manager a.k.a. nvm。
在 Mac OS X 上安装和使用 nvm
以下是全新安装 nvm 并毫无问题地使用它的步骤:
从here 安装自制软件。使用自制软件安装 nvm
brew update
brew install nvm
在~/.nvm
位置创建.nvm
目录。
mkdir ~/.nvm
现在,如果您没有为 OS X 终端设置.bash_profile
文件,请在根级别创建一个.bash_profile
:
nano ~/.bash_profile
在.bash_profile
中粘贴以下代码,然后按CTRL + O
并按回车键保存.bash_profile
文件。按CTRL + X
退出编辑器:
export NVM_DIR=~/.nvm
source $(brew --prefix nvm)/nvm.sh
现在要么完全 (CMD + Q
) 终端,要么运行以下命令以加载 .bash_profile
设置:
source ~/.bash_profile
现在运行nvm ls
命令获取所有已安装nodejs 版本的列表。
【讨论】:
谢谢,我想我错过的是创建.nvm
目录。【参考方案8】:
OSX 10.15.0 Catalina(2019 年 11 月发布)将默认 shell 更改为 zsh。
以前的默认 shell 是 bash。
nvm GitHub page 上给出的安装命令需要调整以在末尾包含“zsh”。
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | zsh
注意:您可能需要事先确保 zsh 的 .rc
文件存在:
touch ~/.zsrhrc
【讨论】:
只是一个小的修正,因为我最初被文件名绊倒了。是touch ~/.zshrc
:) 否则可以验证上面的作品
添加 .zsrhrc 甚至适用于 Homebrew。它位于 macOS 上的疑难解答下的 README.md 文件中【参考方案9】:
首先在 ~/.bashrc 文件中添加以下行
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
然后打开终端并获取 nvm.sh 脚本
source ~/.nvm/nvm.sh
【讨论】:
这对我有用,谢谢。【参考方案10】:我也遇到了同样的问题,而挽救我生命的是这句话“您可能需要添加到多个“~/.bashrc、~/.profile 或 ~/.zshrc 文件”中。以下几行仅在我的 .bashrc 中,我将其添加到文件“.bash_profile”和“.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
【讨论】:
我尝试了这个,甚至创建了 .profile 没有运气。 啊!我只需要重新启动终端!谢谢! 可以,重启终端或者在对应的shell中运行以下命令:bash:source ~/.bashrc
zsh:source ~/.zshrc
ksh:. ~/.profile
【参考方案11】:
假设您已经使用 brew 安装了 nvm(我在 mac 上),我的意思是 brew install nvm
之类的东西,您需要做的就是:
1. You should create NVM's working directory if it doesn't exist:
mkdir ~/.nvm
2. Add the following to ~/.zshrc or your desired shell configuration
file:
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
【讨论】:
这对我来说就像一个魅力。谢谢!【参考方案12】:对于 MacOS;
在终端上运行 >
open ~/.bash_profile
粘贴所有这些=
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
【讨论】:
【参考方案13】:对于 Mac 操作系统:
-
打开终端
运行
touch ~/.bash_profile
运行vi ~/.bash_profile
输入source ~/.nvm/nvm.sh
按Shift + Esc
并输入wq
并按enter
完成。
【讨论】:
在 ubuntu 18.04 中,我只需要: 4. 输入 source ~/.nvm/nvm.sh 非常感谢!【参考方案14】:没有直接联系问题,但是可能会出现类似的问题,看看这个问题:Can't execute nvm from new bash
这是我对该帖子的回答,仅供参考:
如果您从一个新的 bash 实例运行,并且您的 ~/.bashrc、~/.bash_profile 等处有初始化代码,那么您需要检查此初始化文件的条件。
在 Ubuntu 14 上,有一个:
case $- in
*i*) ;;
*) return;;
esac
在第 6 行,如果没有使用“-i”(交互式)标志运行 bash,它将停止执行。所以你需要运行:
bash -i
另外,在文件的末尾,有一个
[ -z "$PS1" ] && return
如果没有设置 $PS1 运行(例如在远程 ssh 会话上),它将停止执行。
如果您不想添加任何环境变量或标志,则需要从初始化文件中删除这些条件。
希望对您有所帮助。
【讨论】:
【参考方案15】:如果您使用的是 OS X,您可能必须在运行安装命令之前创建您的 .bash_profile 文件。这对我有用。
创建配置文件
touch ~/.bash_profile
重新运行安装,这次您将在输出中看到相关行。
=> 将源字符串附加到 /Users/username/.bash_profile
重新加载您的个人资料(或关闭/重新打开终端窗口)。
. ~/.bash_profile
【讨论】:
【参考方案16】:将以下行添加到文件~/.bashrc
和~/.bash_profile
:
# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
并重新启动终端或执行source ~/.bashrc
或source ~/.bash_profile
。如果您需要 nvm 的命令完成,那么还要添加以下行:
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
连同以上几行到~/.bashrc
和~/.bash_profile
。
【讨论】:
【参考方案17】:因为问题在我搬家时已解决
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
到.zshrc
结尾
【讨论】:
【参考方案18】:默认情况下,nvm 安装脚本会将初始化代码添加到您的 $HOME/.profile
,该代码仅由登录 shell 加载(在桌面环境中,您可能永远看不到登录 shell)。
登录 shell 中的 nvm 命令不会传播到子 shell(例如登录后的控制台窗口和 IDE 终端)。 $HOME/.bashrc
中的这个 sn-p 只会在 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 安装在非标准位置。
【讨论】:
【参考方案19】:我已经解决了这个问题。
-
触摸 ~/.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
【讨论】:
【参考方案20】:对我来说,这很有效。
首先检查文件.bashrc
是否有以下行
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
现在为每个终端会话加载bashrc
。因此重新启动终端,以便它再次加载,你应该很好去。
【讨论】:
【参考方案21】:在 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。 See Here.
【讨论】:
【参考方案22】:就我而言,这是因为我使用 fish。如果我不启动 fish,现在只需键入 nvm 不会出错。
【讨论】:
你是如何阻止鱼的? 输入exit
@MobileDream。【参考方案23】:
在Windows 8.1 x64
我也发生了同样的事情,并收到了以下消息。
nvm install 8.3.0 bash: nvm: command not found windows
因此,请按照以下步骤操作或验证以下步骤-
首先从github.com
安装coreybutler/nvm-windows
。当前可用的最新版本 1.1.5 nvm-setup.zip
,后来提取了设置 nvm-setup.exe
并安装在以下位置:
NVM_HOME : C:\Users\Administrator\nvm
NVM_SYMLINK : C:\Program Files\nodejs
同时安装程序将把环境变量管理到Path
,就像上面所说的那样。
现在以管理员身份运行Git Bash
,然后。
$ nvm install 8.3.0 all
Downloading node.js version 8.3.0 (64-bit)...
Complete
Creating C:\Users\Administrator\nvm\temp
Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...
Installation complete. If you want to use this version, type
nvm use 8.3.0
$ nvm use 8.3.0
Now using node v8.3.0 (64-bit)
在这里运行你的命令而不使用前缀$
,这里只是显示它以确定它是一个命令行,现在我们将验证nvm版本。
$ nvm --version
Running version 1.1.5.
Usage:
-----------------------
如果您在使用nvm
安装node
时遇到问题,您可以在此处查看可用nodejs
版本列表https://nodejs.org/download/release/
并根据您的要求选择正确的安装程序版本等于或高于v6.3.0
直接.
【讨论】:
【参考方案24】:遇到了同样的问题,但这对我有用:
从 macOS 10.15 开始,默认的 shell 是 zsh,nvm 会寻找.zshrc
进行更新,默认没有安装。使用 touch ~/.zshrc
创建一个并再次运行安装脚本。
更多信息在这里:Troubleshooting on macOS
【讨论】:
【参考方案25】:需要注意的是,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
(作为一个只懂半命令行的人,我依靠肌肉记忆来使用which
命令。在说明中使用nvm --version
是,但如果你是个白痴像我一样,您可能会错过/跳过那部分,并通过反射使用which nvm
,并认为未安装nvm。)
【讨论】:
我不敢相信我是你的第一个支持者...which
也是我确定我是否有东西的首选...不敢相信它让我失望了。跨度>
【参考方案26】:
对于 Mac 操作系统:
-
打开终端
使用此命令检查您是否有 .profile 文件:
ls -a ~/
-
如果您没有此文件,只需创建一个:
触摸 ~/.profile
-
将此命令添加到 .profile 文件中:
来源 ~/.nvm/nvm.sh
-
按 Shift + Esc 并输入 wq 并按回车
【讨论】:
【参考方案27】:我最近也遇到了同样的问题,使用 source ~/.nvm/nvm.sh 获取 nvm bash 脚本解决了这个问题。
【讨论】:
【参考方案28】:使用以下代码
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8
【讨论】:
【参考方案29】:在尝试了多个步骤后,不确定我的问题是什么,但运行它有帮助:
touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
验证人nvm --version
【讨论】:
【参考方案30】:在花了 3 个多小时测试上述一些解决方案后,我发现了一个对我有用的答案。 我在 Ubuntu 20.04.3 LTS 下,全新安装添加了官方命令:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh |
bash
问题是我的 curl 版本是通过 snap 获得的。按照this answer 的建议删除并重新安装它解决了这个问题:
sudo snap remove curl
sudo apt install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh
| bash
nvm install node
【讨论】:
以上是关于节点版本管理器安装 - 未找到 nvm 命令的主要内容,如果未能解决你的问题,请参考以下文章