Instalação do Node Version Manager - comando nvm não encontrado

303

Estou tentando instalar o NVM de acordo com estas instruções

Eu digitei este comando no terminal:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

Após executar a instalação, reinicio o terminal e tento instalar o Node.js com este comando:

$ nvm install 0.8

mas eu recebo a resposta:

-bash: nvm: command not found

Não tenho certeza do que estou fazendo de errado aqui.

Informação adicional--

Estive procurando soluções de outros posts e fóruns. Encontrei outra solução usando

$ git clone git://github.com/creationix/nvm.git ~/.nvm

mas isso expira toda vez que eu tento isso. Qualquer ajuda seria apreciada. Obrigado.

Jordânia
fonte

Respostas:

369

Verifique se o seu .bash_profile, .zshrcou.profile arquivo. Você provavelmente teve um problema durante a instalação.

Você deve ter o seguinte no final de um desses arquivos.

[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh  # This loads NVM

O . $HOME/.nvm/nvm.shé o mesmo quesource $HOME/.nvm/nvm.sh

Consulte: Fornecendo um arquivo

Você também pode verificar se possui uma .nvmpasta.

ls -a | grep .nvm

Se você estiver com falta dessa pasta, a instalação falhou ao executar o comando git. Isso pode ser devido a estar atrás de um proxy. Tente executar o seguinte.

git clone http://github.com/creationix/nvm.git .nvm
travis
fonte
2
O .nvmdeve ser um diretório. É instalado através do seguinte comando git clone git://github.com/creationix/nvm.git $NVM_TARGET. Você disse anteriormente que tentou executar esse comando sozinho e ele falhou? Provavelmente você está atrás de um proxy e provavelmente não está configurado. Tente executar o seguinte. git clone http://github.com/creationix/nvm.git .nvm
travis 3/13
21
também tem a linha, mas 'source ~ / .nvm / nvm.sh' funciona
K - A toxicidade no SO está crescendo.
2
Se a pasta .nvm estiver vazia, é provável que a obtenção do repo tenha falhado devido à licença do contrato xcode não ter sido aceita. A execução sudo xcodebuild -licensee a aceitação da licença (pressionando spacepara chegar ao final da licença e concordar com seus termos) faz o truque.
Pierre Criulanscy
4
Você também pode precisar source .bashrcou source .profiledependendo
Henry Tseng
1
Quase sempre esses arquivos existem no diretório home. source $HOME/.bashrc, Etc
travis
634

Eu acho que você perdeu esta etapa:

source ~/.nvm/nvm.sh

Você pode executar este comando no bash OU pode colocá-lo no arquivo /.bashrc ou ~ / .profile ou ~ / .zshrc para carregá-lo automaticamente

https://github.com/creationix/nvm

Deepak Lamichhane
fonte
5
Vamos melhorar a documentação. Eu criei um problema no repositório
Jonny Burger
3
Eu executei isso manualmente várias vezes até finalmente colocá-lo no meu .bashrc!
Brady Dowling
2
isso funcionou para mim, mas para automatizá-lo, tive que criar um perfil primeiro. "toque em ~ / .profile", "abra ~ / .profile", cole acima, salve + feche. trabalha em novas janelas agora
Sonic Soul
6
Adicioná-lo à ~/.bash_profileera o que funcionou para mim
spencer.sm
6
Isso funcionou para mim. Eu adicionei source ~/.nvm/nvm.shà minha ~/.zshrce agora nvmtrabalha o tempo todo
Eddy Vinck
88

Isso funciona para mim:

  1. Antes de instalar nvm, execute isto no terminal:touch ~/.bash_profile

  2. Depois, execute isso no terminal:
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  3. Importante ... - NÃO esqueça de reiniciar o terminal OU use o comando source ~/.nvm/nvm.sh(isso atualizará os comandos disponíveis no caminho do sistema).

  4. No terminal, use o comando nvm --versione você deverá ver a versão

Alireza
fonte
8
3) Não se esqueça de reiniciar o componente principal do terminal! Por isso o meu não estava funcionando. Obrigado
Sebastian
1
Como um "Reiniciar [o] componente principal do terminal"?
Edward
46

source ~/.nvm/nvm.sh Adicione esta linha a ~ / .bashrc, ~ / .profile ou ~ / .zshrc

user2015258
fonte
4
essa é a solução "permanente" que dura em várias conchas ou sessões de shell.
ahnbizcad
Esta é a única resposta que funcionará. Mesmo após várias aberturas do terminal. Por último, não se esqueça de reiniciar seu terminal uma vez que você fazer isso :)
coderpc
40

Resposta rápida

Descobrir o seguinte:

  1. Qual shell o seu terminal está usando, digite: echo $0para descobrir (normalmente funciona)
  2. Qual arquivo de inicialização esse shell carrega ao inicializar (NÃO é o arquivo inicial do shell de login , o arquivo inicial normal do shell , há uma diferença!)
  3. Adicione source ~/.nvm/nvm.sha esse arquivo (assumindo que o arquivo existe nesse local, é o local de instalação padrão)
  4. Iniciar uma nova sessão de terminal
  5. Lucro?

Exemplo

Como você pode ver, afirma zshe não bash. insira a descrição da imagem aqui

Para corrigir isso, eu precisava adicionar source ~/.nvm/nvm.shao ~/.zshrcarquivo, pois ao iniciar um novo terminal, o Deepin Terminal zsh lê ~/.zshrce não o bashs ~/.bashrc.

Por que isso acontece

Isso acontece porque, ao instalar o NVM, ele adiciona código ~/.bashrc, como o meu terminal Deepin Terminal usa zshe não bashnunca lê ~/.bashrce, portanto, nunca carrega o NVM.

Em outras palavras: isso é culpa dos NVMs.

Mais informações zshpodem ser lidas em uma das respostas aqui .

K - A toxicidade no SO está crescendo.
fonte
você pode simplesmente colocar o zsh no final do comando curl. por exemplo: curl raw.github.com/creationix/nvm/master/install.sh | zsh
Prabhakar
22

No macOS, tive que obtê-lo usando o source ~/.nvm/nvm.shcomando para corrigir esse problema.

Depois disso, adicione estas linhas

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

para ~/.bash_profileque o nvm seja originado automaticamente no login.

hd84335
fonte
11

Todas as respostas a estas perguntas são úteis. Especialmente a resposta dada por Travis me ajudou. Para usuários do Mac OS X, gostaria de fornecer algumas etapas que os ajudarão a trabalhar com a nova instalação do Node Version Manager, também conhecido como nvm.

Instalando e usando o nvm no Mac OS X

Aqui estão as etapas para a instalação nova do nvm e para usá-lo sem nenhum problema:

  • Instale o homebrew a partir daqui .
  • Usando o homebrew install nvm

    brew update brew install nvm

  • Crie um .nvmdiretório no ~/.nvmlocal.

    mkdir ~/.nvm

  • Agora, se você não possui uma .bash_profileconfiguração de arquivo para o terminal OS X, crie um .bash_profileno nível raiz:

    nano ~/.bash_profile

  • Cole o código abaixo no .bash_profilee pressione CTRL + Oe pressione Enter para salvar o .bash_profilearquivo. Pressione CTRL + Xpara sair do editor:

    export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

  • Agora, CMD + Qexecute o comando bastante ( ) no terminal ou execute abaixo para carregar as .bash_profileconfigurações:

    source ~/.bash_profile

  • Agora execute o nvm lscomando para obter a lista de todas as versões do nodejs instaladas.

S.Mishra
fonte
Obrigado, acho que o que senti falta de mim foi a criação do .nvmdiretório.
icarovirtual
11

Primeiro adicione as seguintes linhas no arquivo ~ / .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

abra o terminal e origine o script nvm.sh

source ~/.nvm/nvm.sh
KARTHIKEYAN.A
fonte
8

O OSX 10.15.0 Catalina (lançado em novembro de 2019) alterou o shell padrão para zsh.

O shell padrão foi anteriormente bash.

O comando de instalação fornecido na página nvm GitHub precisa ser ajustado para incluir "zsh" no final.

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | zsh

Nota: pode ser necessário garantir que o .rcarquivo para zsh esteja presente previamente:

touch ~/.zsrhrc
Ben Aston
fonte
5

Não está diretamente conectado à pergunta, mas há um problema semelhante que pode ocorrer, dê uma olhada nesta pergunta: Não é possível executar o nvm a partir do novo bash


Aqui está a minha resposta nesse post, apenas para referência:

Se você estiver executando a partir de uma nova instância do bash e possuir o código de inicialização em ~ / .bashrc, ~ / .bash_profile, etc, será necessário verificar esse arquivo de inicialização para obter condicionais.

No Ubuntu 14, existe um:

case $- in
    *i*) ;;
      *) return;;
esac

Na linha 6, isso interromperá sua execução se o bash não estiver sendo executado com o sinalizador "-i" (interativo). Então você precisaria executar:

bash -i

Além disso, no final do arquivo, há um

[ -z "$PS1" ] && return

Isso interromperá sua execução se não estiver sendo executado com o conjunto $ PS1 (como em uma sessão ssh remota).

Se você não deseja adicionar envios ou sinalizadores, será necessário remover esses condicionais do seu arquivo de inicialização.

Espero que seja útil.

Alan Sikora
fonte
5

Se você estiver usando o OS X, poderá ser necessário criar o arquivo .bash_profile antes de executar o comando de instalação. Isso fez por mim.

Crie o arquivo de perfil

touch ~/.bash_profile

Execute novamente a instalação e você verá uma linha relevante na saída desta vez.

=> Anexando a string de origem a /Users/{username}/.bash_profile

Recarregue seu perfil (ou feche / abra novamente a janela do Terminal).

.  ~/.bash_profile
Nicolas Bouliane
fonte
5

Para Mac OS:

  1. Terminal Aberto
  2. Corre touch ~/.bash_profile
  3. Corre vi ~/.bash_profile
  4. Tipo source ~/.nvm/nvm.sh
  5. Pressione Shift + Esce digite wqe pressioneenter
  6. Feito.
Arjun Kesava
fonte
No ubuntu 18.04, eu só precisava: 4. Digite source ~ / .nvm / nvm.sh e muito obrigado!
Darnell Lynch
4

Adicione as seguintes linhas aos arquivos ~/.bashrce ~/.bash_profile:

# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

e reinicie o terminal ou faça source ~/.bashrcou source ~/.bash_profile. Se você precisar concluir o comando para o nvm, adicione também a linha:

[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Junto com as linhas acima para ~/.bashrce ~/.bash_profile.

vantagem
fonte
4

Para MacOS;

Executar no terminal>

open ~/.bash_profile

Cole tudo isso =

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

O script de instalação da nvm, por padrão, adiciona o código de inicialização ao seu $HOME/.profile , o qual é carregado apenas por um shell de logon (em um ambiente de desktop, você nunca verá um shell de logon).

O comando nvm no seu shell de login não é propagado para subconchas (como janelas do console e terminais IDE após o login). Esse trecho no seu $HOME/.bashrcsó carregará nvm se for um shell interativo e ainda não tiver sido carregado

# 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

Colocar isso em seu $HOME/.bashrcarquivo corrigirá o problema de nvm ausente em shells bash interativos, mesmo a partir de uma GUI, e mesmo se o nvm estiver instalado em um local não padrão.

Warren MacEvoy
fonte
2

Eu havia corrigido esse problema.

  1. toque em ~ / .bash_profile
  2. abra ~ / .bash_profile
  3. colarexport 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
ChenguangTian
fonte
2

Para o problema foi corrigido quando mudei

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

até o final de .zshrc

almeynman
fonte
1

No Debian, além de adicionar as linhas abaixo ao meu .bash_profile, como disse uma das respostas acima. Também tive que abrir minhas preferências de terminal (Editar -> Preferências de perfil -> Comando) e ativar 'Executar comando como um shell de login' para fazê-lo funcionar.

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

Editar: para quem está no Mac, saiba que o macOS não lê .bashrc no Terminal start; portanto, é preferível usar .bash_profile. Veja aqui.

tomhughes
fonte
1

No meu caso, é porque eu uso peixe . se eu não iniciar o fish , basta digitar nvm agora não haverá erro.

JerryZhou
fonte
Como você parou o peixe ?
27618 Matko
digite exit @MobileDream.
21418 JerryZhou
1

No Windows 8.1 x64mesmo aconteceu comigo, e recebeu a seguinte mensagem.

nvm install 8.3.0 bash: nvm: comando não encontrado

Portanto, siga ou verifique abaixo as seguintes etapas:

primeira instalação coreybutler/nvm-windowsde github.com. Atualmente, a versão mais recente 1.1.5 nvm-setup.zip, disponível posteriormente, extraiu a instalação nvm-setup.exee instalou os seguintes locais:

NVM_HOME    : C:\Users\Administrator\nvm
NVM_SYMLINK : C:\Program Files\nodejs

Enquanto isso, a instalação gerenciará a variável de ambiente Pathconforme descrito acima para você.

Agora execute Git Bashcomo administrador e, em seguida.

$ 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)

aqui, execute seu comando sem usar o prefixo $, ele é mostrado aqui apenas para determiná-lo como uma linha de comando e agora vamos verificar a versão do nvm.

$ nvm --version
Running version 1.1.5.

Usage:
-----------------------

se você tiver problemas nvmpara usar a instalação node, poderá ver esta lista de nodejsreleases disponíveis aqui https://nodejs.org/download/release/e escolher o instalador correto conforme sua versão do requisito igual ou superior a v6.3.0diretamente.

ArifMustafa
fonte
0

Para mim, isso funcionou. Primeiro verifique se o arquivo .bashrctem a seguinte linha

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

Agora bashrcé carregado para cada sessão do terminal. Assim, reinicie o terminal para que ele seja carregado novamente e você deve estar pronto.

priyankvex
fonte
0

Também enfrentei o mesmo problema recentemente e a fonte do script nvm bash usando o source ~ / .nvm / nvm.sh resolveu esse problema.

Vishnu Dubey
fonte
0

Use os seguintes códigos

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8
Vivekanand Panda
fonte
0

Depois de tentar várias etapas, não tenho certeza qual era o problema no meu caso, mas executar isso ajudou:

touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

Verificado por nvm --version

saída nvm -v

Mohammed Zameer
fonte