O Homebrew instala o nvm, mas o nvm não pode ser encontrado depois?

95

Eu estou usando homebrewe oh-my-zshem uma nova instalação OSX 10.10.1. Eu consegui nvmvia homebrewe tentei executá-lo, mas disse - zsh: comando não encontrado: nvm

Alguma ideia sobre qual é o problema? Consegui instalar e usar o git muito bem ...

insira a descrição da imagem aqui

insira a descrição da imagem aqui


ATUALIZADO EM 20/09/2019

Conforme declarado por respostas mais recentes de DarkPurple141 e Elise van Looij . nvmnão parece ser compatível com homebrew. Isso também é declarado no repositório oficial nvm-sh localizado aqui .

A instalação do Homebrew não é compatível. Se você tiver problemas com o nvm instalado por homebrew, desinstale-o e instale-o usando as instruções abaixo, antes de registrar um problema.

Nota: Se estiver usando zsh, você pode instalar facilmente o nvm como um plugin zsh. Instale zsh-nvm e execute nvm upgrade para atualizar.

As etapas a seguir devem ajudar:

  1. $ brew uninstall nvm
  2. $ brew cleanup(apenas por precaução)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Verifique se o nvm foi instalado corretamente executando $ command -v nvm.

    4.a Se a resposta for diferente de $ nvm, adicione as duas linhas a seguir ao arquivo ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Reinicie o computador (você pode tentar fechar o Terminal e reiniciá-lo primeiro) command -v nvm should now return4.c $ nvm`

  5. Agora atualize o Node.js com $ nvm install --lts

  6. Atualizar npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Finalmente, sucesso! Bem, para mim e espero para você também.
Dayan
fonte
3
Persiste se você reiniciar o Terminal?
Aaron Brager
Experimente digitar rehash ou abrir um novo shell. Às vezes, zsh não pega adições.
Doon
Fechei o shell, reiniciei o sistema e nada. Refez-me e sem sorte.
Dayan
Que tal brew link nvm isso faz alguma coisa?
Doon
Aviso: já vinculado: /usr/local/Cellar/nvm/0.20.0 Para vincular novamente: brew unlink nvm && brew link nvm
Dayan

Respostas:

127

Você seguiu as instruções listadas nas advertências?

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

Sem a configuração extra, não parece que encontrará o NVM por padrão.

Doon
fonte
3
Obrigado pelo aviso Doon, eu não sabia brew info, ainda era novo homebrew:) Está funcionando bem agora depois de seguir esses passos.
Dayan
Eles também devem ser mostrados após a conclusão da instalação. Mas se você não estiver procurando por eles, eles podem ser perdidos.
Doon
4
Tive que adicionar isso para ~/.bash_profilefazê-lo funcionar: /
Janaka
1
Hmm. Eu não uso bash (prefiro zsh), mas parece que OSX terminal.app (eu também não uso terminal, prefiro Iterm2), abre cada shell como um shell de login, então sim .bash_profile estaria correto nesse caso. também a informação mudou. então você deve consultar a versão mais recente ..
Doon
Obrigado! Eu estava perdendo essa linha source $(brew --prefix nvm)/nvm.sh. Adicionado ao meu .zshrh
John Ottenlips,
42

Existem DUAS coisas que você precisa fazer. Siga as advertências mostradas após instalar o nvm via brew, e ENTÃO você precisa ativar / recarregar as alterações do .bash_profile.

  1. Corre brew install nvm
  2. Siga as advertências mostradas no console, as minhas foram as seguintes, as suas PODEM ser diferentes !:

Adicione o seguinte a ~ / .bash_profile ou ao arquivo de configuração de shell desejado:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Execute . ~/.bash_profilepara aplicar as alterações feitas ao seu arquivo .bash_profile
redfox05
fonte
Isso é útil para usuários Bash, mas o OP está em zsh. Eu acho que o mesmo se aplica às .zshrcmodificações necessárias.
tripleee
5

Embora a resposta aceita tecnicamente funcione, é importante notar que a instalação do Homebrew não é oficialmente suportada pelo nvmpacote. A maneira recomendada de evitar problemas como os levantados acima é aplicar um dos métodos de instalação abaixo.

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

fonte: https://github.com/creationix/nvm

DarkPurple141
fonte
3

Passei algumas horas dando voltas e mais voltas neste assunto, mas cheguei à conclusão de que DarkPurple141 está certo: nvm simplesmente não é compatível com Homebrew, como afirmam em seu nó nvm-sh / nvm do Github Gerenciador de versões . O Homebrew instalará o nvm e tudo parecerá bem, até que se tente fazer o npm instalar um módulo, Mocha no meu caso. Isso me levou de volta ao temido erro:

ERRAR! Erro: EACCES: permissão negada, acesso '/ usr / local / lib / node_modules'

NOTA: Na etapa 3, certifique-se de substituir a versão pela versão correta.

A solução, no MacOS 10.14 Mojave, foi:

  1. $ brew uninstall nvm
  2. $ brew cleanup(apenas por precaução)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Verifique se o nvm foi instalado corretamente executando $ command -v nvm.

    4.a Se a resposta for diferente de $ nvm, adicione as duas linhas a seguir ao arquivo ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Reinicie o computador (você pode tentar fechar o Terminal e reiniciá-lo primeiro) command -v nvm should now return4.c $ nvm`

  5. Agora atualize o Node.js com $ nvm install --lts

  6. Atualizar npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Finalmente, sucesso! Bem, para mim e espero para você também.
Elise van Looij
fonte
1

Para instalar o nvm, brew install nvm

Para executar o nvm após a instalação ou apenas uma vez, $(brew --prefix nvm)/nvm.sh

Para executar o nvm sempre que zshabrir

  1. nano ~/.zshrc
  2. Adicione esta linha source $(brew --prefix nvm)/nvm.sh
Ricky Dam
fonte
1

Eu gostaria de adicionar que a localização do nvm no github mudou e a versão aumentou. O comando curl agora deve ser:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
Onno van der Zee
fonte
0

O motivo pelo qual você precisaria recarregar seus perfis bash ou quaisquer outros arquivos bash pode ser porque o comando nvm pode não ser um programa, mas uma função que é definida e só pode ser usada se o arquivo bash correspondente for originado.

Em um sistema que verifiquei

which nvm 

não funciona mas

nvm list

faz. Isso significa que você pode usar a palavra "nvm" para invocar algo. Esse algo não é um programa. No caso atual, é uma função que pode ser verificada por

typeset -F | grep -P ' nvm$'

quais saídas

declare -F nvm

o que significa que nvm é uma função, cujo corpo pode ser inspecionado fazendo

type -F nvm
Saurabh Hirani
fonte
1
Legal .. Mas, como isso é uma resposta?
Dayan
1
Obrigado pela atualização Dayan - editou a resposta - o motivo pelo qual não consegui encontrar porque estava contando com ele como um programa, mas foi definido como uma função. Queria destacar isso.
Saurabh Hirani
Para verificar se o nvm foi instalado corretamente, use o 'comando -v nvm' no Terminal. A resposta deve ser 'nvm'. Se não estiver, siga as instruções em github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij
0

Uma possibilidade se brewfoi usado é que o nvmpode ser desvinculado, especialmente se tiver sido instalado por outro usuário do MAC OS.

Neste caso, execute:

brew link nvm
Lindoélio Lázaro
fonte