自制软件安装了nvm,但之后找不到nvm?


94

我正在使用OSX 10.10.1 homebrewoh-my-zsh重新安装。我nvm通过homebrew,然后尝试运行它,但是说-zsh:找不到命令:nvm

知道是什么问题吗?我能够安装和使用git很好...

在此处输入图片说明

在此处输入图片说明


更新9/20/2019

DarkPurple141Elise van Looij的最新回答所述nvm与似乎不兼容homebrew。这也位于此处的官方nvm-sh存储库中。

不支持自制软件安装。如果您对自制安装的nvm遇到问题,请在将其提交之前,将其冲煮卸载,并按照以下说明进行安装。

注意:如果您使用的是zsh,则可以轻松地将nvm安装为zsh插件。安装zsh-nvm并运行nvm upgrade进行升级。

以下步骤应有所帮助:

  1. $ brew uninstall nvm
  2. $ brew cleanup(仅作为衡量标准)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. 通过运行$检查nvm是否正确安装command -v nvm

    4.a如果响应不是$ nvm,则在〜/ .bash-profile文件中添加以下两行: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b重新启动计算机(您可以尝试关闭Terminal并先重新启动它)4.c $ command -v nvm should now returnnvm`

  5. 现在用$更新Node.js nvm install --lts

  6. 更新npm:$ nvm install-latest-npm
  7. $ npm install --global mocha。最后,成功!好吧,对我来说,我也希望你。

3
如果重新启动终端,它是否仍然存在?
亚伦·布拉格2014年

尝试输入rehash或打开新的shell。有时zsh不会选择其他内容。
Doon

我已经关闭外壳,重新启动系统,什么也没有。重新哈希,没有运气。
Dayan 2014年

Brew链接nvm会做什么呢?
Doon 2014年

警告:已链接:/usr/local/Cellar/nvm/0.20.0要重新链接:brew取消链接nvm && brew链接nvm
Dayan

Answers:


127

您是否遵循警告中列出的说明?

[~] 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。


3
感谢您对Doon的注意,我不知道brew info,仍然对homebrew:)陌生:) 在执行完这些步骤之后,Doon 现在可以正常工作。
Dayan 2014年

安装完成后也应显示它们。但是,如果您不寻找它们,可能会错过它们。
Doon 2014年

4
我必须添加~/.bash_profile它才能使其正常工作:/
Janaka

1
嗯。我不使用bash(更喜欢zsh),但是它看起来像OSX terminal.app(我也不使用terminal,更喜欢Iterm2),将每个shell作为登录shell打开,所以在这种情况下,.bash_profile是正确的。 。信息也已更改。所以你应该指的是最新版本..
杜恩

谢谢!我错过了这一行 source $(brew --prefix nvm)/nvm.sh。将其添加到我的.zshrh
John Ottenlips 17-10-17

42

您需要做两件事。按照通过brew安装nvm之后显示的警告,然后您需要激活/重新加载.bash_profile更改。

  1. brew install nvm
  2. 遵循控制台中显示的警告,我的警告如下,您的可能有所不同!:

将以下内容添加到〜/ .bash_profile或所需的shell配置文件中:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. 运行. ~/.bash_profile以将对.bash_profile文件所做的更改应用到

这对Bash用户有用,但是OP在zsh上。我想同样适用于.zshrc必要的修改。
Tripleee'December

5

尽管可以接受的答案在技术上确实可行,但值得注意的是,该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


3

我已经花了几个小时来解决这个问题,但是我得出的结论是DarkPurple141是正确的:nvm与Homebrew不兼容,因为它们在Github上声明为nvm-sh / nvm Node。版本管理器。Homebrew将安装nvm,一切看起来都很好,直到有人尝试让npm安装模块(在我的情况下为Mocha)。那让我回到了可怕的错误:

呃!错误:EACCES:权限被拒绝,访问'/ usr / local / lib / node_modules'

注意:在步骤3,请确保用正确的发行版替换版本。

在MacOS 10.14 Mojave上,解决方案是:

  1. $ brew uninstall nvm
  2. $ brew cleanup(仅作为衡量标准)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. 通过运行$检查nvm是否正确安装command -v nvm

    4.a如果响应不是$ nvm,则在〜/ .bash-profile文件中添加以下两行: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b重新启动计算机(您可以尝试关闭Terminal并先重新启动它)4.c $ command -v nvm should now returnnvm`

  5. 现在用$更新Node.js nvm install --lts

  6. 更新npm:$ nvm install-latest-npm
  7. $ npm install --global mocha。最后,成功!好吧,对我来说,我也希望你。

1

要安装nvm, brew install nvm

要在安装后或仅运行一次nvm, $(brew --prefix nvm)/nvm.sh

每次zsh打开都运行nvm

  1. nano ~/.zshrc
  2. 添加此行 source $(brew --prefix nvm)/nvm.sh

1

我想添加nvm在github上的位置更改,并且版本更改。curl命令现在应为:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash

0

您需要重新加载bash配置文件或任何其他bash文件的原因可能是因为命令nvm可能不是一个程序,而是一个已定义的函数,并且仅当源于相应的bash文件时才可以使用。

在我检查过的系统上

which nvm 

不起作用,但是

nvm list

做。这意味着您可以使用单词“ nvm”来调用某些内容。那不是程序。在当前情况下,此功能可以通过以下方式验证

typeset -F | grep -P ' nvm$'

哪个输出

declare -F nvm

这意味着nvm是一个函数,可以通过执行以下操作来检查其主体

type -F nvm

1
很好..但是,这是一个答案吗?
大雁

1
感谢Dayan的更新-编辑了答案-之所以我找不到它的原因是因为我依赖于它是一个程序,但它被定义为一个函数。想要强调这一点。
萨拉·希拉尼

要检查nvm是否已正确安装,请在终端中使用“ command -v nvm”。响应应为“ nvm”。如果不是,请按照github.com/nvm-sh/nvm#installation-and-update上的说明进行操作
Elise van Looij

0

如果brew使用过,一种可能性是将nvm其取消链接,特别是如果它是由另一个MAC OS用户安装的。

在这种情况下,执行:

brew link nvm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.