Homebrew 安装 nvm 但之后找不到 nvm?
Posted
技术标签:
【中文标题】Homebrew 安装 nvm 但之后找不到 nvm?【英文标题】:Homebrew installs nvm but nvm can't be found afterwards? 【发布时间】:2015-02-23 10:57:37 【问题描述】:我在全新的 OSX 10.10.1 安装中使用 homebrew
和 oh-my-zsh
。我通过homebrew
获得了nvm
,然后尝试运行它,但说 - zsh: command not found: nvm
知道问题是什么吗?我能够很好地安装和使用 git...
2019 年 9 月 20 日更新
正如DarkPurple141 和Elise van Looij 的最新回答所述。 nvm
似乎与 homebrew
不兼容。这也在位于here 的官方 nvm-sh 存储库中进行了说明。
不支持 Homebrew 安装。如果您有问题 自制安装的 nvm,请 brew 卸载它,然后使用安装它 在提交问题之前,请按照以下说明进行操作。
注意:如果您使用的是 zsh,您可以轻松地将 nvm 安装为 zsh 插件。 安装 zsh-nvm 并运行 nvm upgrade 进行升级。
以下步骤应该会有所帮助:
-
$
brew uninstall nvm
$ brew cleanup
(只是为了更好的衡量)
$curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
通过运行 $command -v nvm
检查 nvm 是否已正确安装。
4.a 如果响应不是 $nvm
,请将以下两行添加到 ~/.bash-profile 文件中:
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
4.b 重启你的电脑(你可以尝试先关闭终端再重启)
4.c $command -v nvm should now return
nvm`
现在用 $nvm install --lts
更新 Node.js
nvm install-latest-npm
$npm install --global mocha
。最后,成功!好吧,对我来说,我也希望对你有帮助。
【问题讨论】:
重启终端后是否依然存在? 尝试输入 rehash 或打开一个新的 shell。有时 zsh 不接受添加。 我已经关闭了外壳,重新启动了系统,什么也没有。重新哈希并没有运气。 brew link nvm 怎么样? 警告:已链接:/usr/local/Cellar/nvm/0.20.0 重新链接:brew unlink nvm && brew link nvm 【参考方案1】:您是否按照注意事项中列出的说明进行操作?
[~] brew info nvm
nvm: stable 0.20.0, HEAD
https://github.com/creationix/nvm
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/nvm.rb
==> Caveats
Add the following to $HOME/.bashrc, $HOME/.zshrc, or your shell's
equivalent configuration file:
source $(brew --prefix nvm)/nvm.sh
Node installs will be lost upon upgrading nvm. Add the following above
the source line to move install location and prevent this:
export NVM_DIR=~/.nvm
如果没有额外的配置,它看起来不会默认找到 NVM..
【讨论】:
感谢 Doon 的提醒,我不知道brew info
,对 homebrew
还是个新手 :) 遵循这些步骤后,它现在运行良好。
它们也应该在安装完成后显示。但如果你不是在寻找它们,它们可能会被错过。
我必须将其添加到 ~/.bash_profile
才能使其正常工作:/
嗯。我不使用 bash(更喜欢 zsh),但它看起来像 OSX terminal.app(我也不使用终端,更喜欢 Iterm2),将每个 shell 作为登录 shell 打开,所以是的 .bash_profile 在这种情况下是正确的。 . 信息也发生了变化。所以你应该参考最新版本..
谢谢!我错过了这一行source $(brew --prefix nvm)/nvm.sh
。将其添加到我的 .zshrh【参考方案2】:
您需要做两件事。遵循通过 brew 安装 nvm 后显示的警告,然后您需要激活/重新加载 .bash_profile 更改。
-
运行
brew install nvm
遵循控制台中显示的警告,我的如下,您的可能不同!:
将以下内容添加到 ~/.bash_profile 或您想要的 shell 配置文件:
export NVM_DIR="$HOME/.nvm" . "$(brew --prefix nvm)/nvm.sh"
-
运行
. ~/.bash_profile
以应用您对 .bash_profile 文件所做的更改
【讨论】:
这对 Bash 用户很有用,但 OP 在 zsh 上。我想这同样适用于.zshrc
并进行了必要的修改。【参考方案3】:
我在这个问题上花了几个小时反复讨论,但我得出的结论是 DarkPurple141 是正确的:nvm 只是与 Homebrew 不兼容,正如他们在 Github 上所说的那样 nvm-sh/nvm Node Version Manager . Homebrew 将安装 nvm 并且一切看起来都很好,直到有人尝试让 npm 安装一个模块,在我的例子中是 Mocha。这让我回到了可怕的错误:
错误!错误:EACCES:权限被拒绝,访问 '/usr/local/lib/node_modules'
注意:在第 3 步中,请确保将版本替换为正确的版本。
在 MacOS 10.14 Mojave 上的解决方案是:
-
$
brew uninstall nvm
$ brew cleanup
(只是为了更好的衡量)
$curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
通过运行 $command -v nvm
检查 nvm 是否已正确安装。
4.a 如果响应不是 $nvm
,请将以下两行添加到 ~/.bash-profile 文件中:
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
4.b 重启你的电脑(你可以尝试先关闭终端再重启)
4.c $command -v nvm should now return
nvm`
现在用 $nvm install --lts
更新 Node.js
nvm install-latest-npm
$npm install --global mocha
。最后,成功!好吧,对我来说,我也希望对你有帮助。
【讨论】:
【参考方案4】:虽然接受的答案在技术上确实有效,但值得注意的是,nvm
软件包并未正式支持 Homebrew 安装。避免上述问题的推荐方法是应用以下任一安装方法。
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
# or wget:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
来源:https://github.com/creationix/nvm
【讨论】:
【参考方案5】:要安装 nvm,brew install nvm
安装后或只运行一次 nvm,$(brew --prefix nvm)/nvm.sh
每次zsh
打开时运行 nvm
nano ~/.zshrc
添加此行source $(brew --prefix nvm)/nvm.sh
【讨论】:
【参考方案6】:您需要重新加载 bash 配置文件或任何其他 bash 文件的原因可能是因为命令 nvm 可能不是一个程序,而是一个已定义的函数,并且只能在相应的 bash 文件来源时使用。
在我检查过的系统上
which nvm
没用,但是
nvm list
确实如此。这意味着您可以使用“nvm”这个词来调用某些东西。那东西不是程序。在当前情况下,它是一个可以验证的函数
typeset -F | grep -P ' nvm$'
哪个输出
declare -F nvm
这意味着 nvm 是一个函数,它的主体可以通过做来检查
type -F nvm
【讨论】:
很好.. 但是,这是一个怎样的答案? 感谢 Dayan 的更新 - 编辑了答案 - 我找不到它的原因,因为我依赖它是一个程序,但它被定义为一个函数。想强调这一点。 要检查 nvm 是否已正确安装,请在终端中使用“命令 -v nvm”。响应应该是“nvm”。如果不是,请按照github.com/nvm-sh/nvm#installation-and-update 上的说明进行操作。【参考方案7】:如果使用了brew
,一种可能性是nvm
可能未链接,特别是如果它是由另一个MAC OS 用户安装的。
在这种情况下,执行:
brew link nvm
【讨论】:
【参考方案8】:我想添加该 nvm 在 github 上的位置已更改,并且版本已更改。 curl 命令现在应该是:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
【讨论】:
【参考方案9】:如果您碰巧使用fish shell,请考虑https://github.com/jorgebucaran/nvm.fish
【讨论】:
以上是关于Homebrew 安装 nvm 但之后找不到 nvm?的主要内容,如果未能解决你的问题,请参考以下文章
Mac 下使用homebrew 安装node后全局安装找不到问题