Installation de Node Version Manager - commande nvm introuvable

303

J'essaie d'installer NVM selon ces instructions

J'ai tapé cette commande dans le terminal:

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

Après avoir exécuté l'installation, je redémarre le terminal et tente d'installer Node.js avec cette commande:

$ nvm install 0.8

mais je reçois la réponse:

-bash: nvm: command not found

Je ne suis pas sûr de ce que je fais mal ici.

Information additionnelle--

J'ai cherché des solutions dans d'autres publications et forums. J'ai trouvé une autre solution en utilisant

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

mais cela arrive à chaque fois que j'essaye. Toute aide serait appréciée. Merci.

Jordan
la source

Réponses:

369

Vérifiez votre .bash_profile, .zshrcou.profile fichier. Vous avez probablement rencontré un problème lors de l'installation.

Vous devriez avoir ce qui suit à la fin de l'un de ces fichiers.

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

C'est . $HOME/.nvm/nvm.shla même chose quesource $HOME/.nvm/nvm.sh

Voir: Sourcing d'un fichier

Vous pouvez également vérifier si vous avez un .nvmdossier.

ls -a | grep .nvm

Si ce dossier vous manque, l'installation n'a pas pu exécuter la commande git. Cela peut être dû au fait d'être derrière un proxy. Essayez plutôt d'exécuter ce qui suit.

git clone http://github.com/creationix/nvm.git .nvm
travis
la source
2
Le .nvmdevrait être un répertoire. Il est installé via la commande suivante git clone git://github.com/creationix/nvm.git $NVM_TARGET. Vous avez dit précédemment que vous avez essayé d'exécuter cette commande vous-même et qu'elle a échoué? Vous êtes probablement derrière un proxy et n'êtes probablement pas configuré. Essayez plutôt d'exécuter le suivi. git clone http://github.com/creationix/nvm.git .nvm
travis
21
ont également la ligne, mais «source ~ / .nvm / nvm.sh» fonctionne
K - La toxicité dans le SO augmente.
2
Si le dossier .nvm est vide, c'est probablement parce que la récupération du dépôt a échoué car la licence d'accord xcode n'a pas été acceptée. L'exécution sudo xcodebuild -licenseet l'acceptation de la licence (en poussant spacepour atteindre la fin de la licence et en accepter les termes) font l'affaire.
Pierre Criulanscy
4
Vous devrez peut-être aussi source .bashrcou source .profileselon
Henry Tseng
1
Presque toujours, ces fichiers existent dans votre répertoire personnel. source $HOME/.bashrc, etc.
travis
634

Je pense que vous avez raté cette étape:

source ~/.nvm/nvm.sh

Vous pouvez exécuter cette commande sur le bash OU vous pouvez la placer dans le fichier /.bashrc ou ~ / .profile ou ~ / .zshrc pour la charger automatiquement

https://github.com/creationix/nvm

Deepak Lamichhane
la source
5
Améliorons la documentation. J'ai créé un problème sur le dépôt nvm: github.com/creationix/nvm/issues/748
Jonny Burger
3
Je l'ai exécuté manuellement plusieurs fois jusqu'à ce que je le mette enfin dans mon .bashrc!
Brady Dowling
2
cela a fonctionné pour moi, mais pour l'automatiser, j'ai d'abord dû créer un profil. "touchez ~ / .profile", "ouvrez ~ / .profile", collez ci-dessus, enregistrez + fermez. fonctionne dans de nouvelles fenêtres maintenant
Sonic Soul
6
L'ajouter à ~/.bash_profilece qui a fonctionné pour moi
spencer.sm
6
Cela a fonctionné pour moi. J'ai ajouté source ~/.nvm/nvm.shà mon ~/.zshrcet nvmtravaille maintenant à chaque fois
Eddy Vinck
88

Cela fonctionne pour moi:

  1. Avant l'installation nvm, exécutez ceci dans le terminal:touch ~/.bash_profile

  2. Ensuite, exécutez ceci dans le terminal:
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  3. Important ... - N'OUBLIEZ PAS de redémarrer votre terminal OU d' utiliser la commande source ~/.nvm/nvm.sh(cela actualisera les commandes disponibles dans votre chemin système).

  4. Dans le terminal, utilisez la commande nvm --versionet vous devriez voir la version

Alireza
la source
8
3) N'oubliez pas de redémarrer votre composant clé du terminal! C'est pourquoi le mien ne fonctionnait pas. Merci
Sebastian
1
Comment "redémarrer [leur] composant clé du terminal"?
Edward
46

source ~/.nvm/nvm.sh Ajoutez cette ligne à ~ / .bashrc, ~ / .profile ou ~ / .zshrc

user2015258
la source
4
il s'agit de la solution "permanente" qui dure sur plusieurs shells ou sessions shell.
ahnbizcad
C'est la seule réponse qui fonctionnera. Même après plusieurs réouvertures de terminal. Enfin, n'oubliez pas de redémarrer votre terminal une fois que vous avez fait cela :)
coderpc
40

Réponse rapide

Découvrez ce qui suit:

  1. Quel shell utilise votre terminal, saisissez: echo $0 pour le savoir (fonctionne normalement)
  2. Quel fichier de démarrage ce shell charge-t-il au démarrage (PAS le fichier de démarrage du shell de connexion, le fichier de démarrage normal du shell , il y a une différence!)
  3. Ajouter source ~/.nvm/nvm.shà ce fichier (en supposant que le fichier existe à cet emplacement, il s'agit de l'emplacement d'installation par défaut)
  4. Démarrer une nouvelle session de terminal
  5. Profit?

Exemple

Comme vous pouvez le voir, il indique zshet nonbash . entrez la description de l'image ici

Pour résoudre ce problème, je devais ajouter source ~/.nvm/nvm.shau ~/.zshrcfichier comme lors du démarrage d'un nouveau terminal, mon Deepin Terminal zsh lit ~/.zshrcet non bashs~/.bashrc .

Pourquoi cela arrive-t-il

Cela se produit car lors de l'installation de NVM, il ajoute du code à ~/.bashrc, comme mon terminal Deepin Terminal l'utilise zshet non bashil ne lit jamais~/.bashrc et ne charge donc jamais NVM.

En d'autres termes: c'est la faute des NVM.

Pour en savoir zshplus, lisez l'une des réponses ici .

K - La toxicité du SO augmente.
la source
vous pouvez simplement mettre zsh à la fin de la commande curl. par exemple: curl raw.github.com/creationix/nvm/master/install.sh | zsh
Prabhakar
22

Sous macOS, je devais le source en utilisant source ~/.nvm/nvm.sh commande pour résoudre ce problème.

Après cela, ajoutez ces lignes

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

sur ~/.bash_profileafin que nvm provienne automatiquement lors de la connexion.

hd84335
la source
11

Toutes les réponses à ces questions sont utiles. Surtout la réponse donnée par Travis m'a aidé. Pour les utilisateurs de Mac OS X, je voudrais fournir quelques étapes qui les aideront à travailler avec la nouvelle installation de Node Version Manager aka nvm.

Installation et utilisation de NVM sur Mac OS X

Voici les étapes pour une nouvelle installation de nvm et son utilisation sans aucun problème:

  • Installez homebrew d' ici .
  • Utilisation de homebrew install nvm

    brew update brew install nvm

  • Créez un .nvmrépertoire à l' ~/.nvmemplacement.

    mkdir ~/.nvm

  • Maintenant, si vous n'avez pas de .bash_profileconfiguration de fichier pour le terminal OS X, veuillez en créer un .bash_profileau niveau racine:

    nano ~/.bash_profile

  • Collez le code ci-dessous dans .bash_profileet appuyez sur CTRL + Oet appuyez sur Entrée pour enregistrer le .bash_profilefichier. Appuyez CTRL + Xpour quitter l'éditeur:

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

  • Maintenant, tout à fait ( CMD + Q) le terminal ou exécutez la commande ci-dessous pour charger les .bash_profileparamètres:

    source ~/.bash_profile

  • Exécutez maintenant la nvm lscommande pour obtenir la liste de toutes les versions de nodejs installées.

S.Mishra
la source
Merci, je pense que ce qui m'a manqué, c'est la création du .nvmrépertoire.
icarovirtual
11

Ajoutez d'abord les lignes suivantes dans le fichier ~ / .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

puis ouvrez le terminal et sourcez le script nvm.sh

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

OSX 10.15.0 Catalina (sorti en novembre 2019) a changé le shell par défaut en zsh.

Le shell par défaut était auparavant bash.

La commande d'installation donnée sur la page nvm GitHub doit être modifiée pour inclure "zsh" à la fin.

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

Remarque: vous devrez peut-être vous assurer que le .rcfichier pour zsh est présent au préalable:

touch ~/.zsrhrc
Ben Aston
la source
5

Pas directement connecté à la question, mais un problème similaire peut se produire, jetez un œil à cette question: impossible d'exécuter nvm à partir de nouveau bash


Voici ma réponse sur ce post, juste pour la référence:

Si vous exécutez à partir d'une nouvelle instance bash et que vous AVEZ le code d'initialisation dans votre ~ / .bashrc, ~ / .bash_profile, etc., vous devez vérifier ce fichier d'initialisation pour les conditions.

Sur Ubuntu 14, il y a:

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

À la ligne 6, cela arrêtera son exécution si bash n'est pas exécuté avec l'indicateur "-i" (interactif). Vous devez donc exécuter:

bash -i

De plus, à la fin du fichier, il y a un

[ -z "$PS1" ] && return

Cela arrêtera son exécution s'il n'est pas exécuté avec $ PS1 (comme sur une session ssh distante).

Si vous ne souhaitez pas ajouter de variables ou de drapeaux env, vous devrez supprimer ces conditions de votre fichier d'initialisation.

J'espère que cela vous sera utile.

Alan Sikora
la source
5

Si vous utilisez OS X, vous devrez peut-être créer votre fichier .bash_profile avant d'exécuter la commande d'installation. Ça l'a fait pour moi.

Créez le fichier de profil

touch ~/.bash_profile

Réexécutez l'installation et vous verrez cette fois une ligne appropriée dans la sortie.

=> Ajout de la chaîne source à /Users/{username}/.bash_profile

Rechargez votre profil (ou fermez / rouvrez la fenêtre Terminal).

.  ~/.bash_profile
Nicolas Bouliane
la source
5

Pour Mac OS:

  1. Terminal ouvert
  2. Courir touch ~/.bash_profile
  3. Courir vi ~/.bash_profile
  4. Type source ~/.nvm/nvm.sh
  5. Appuyez sur Shift + Escet tapez wqet appuyez surenter
  6. Terminé.
Arjun Kesava
la source
Dans Ubuntu 18.04, je n'avais besoin que de: 4. Tapez source ~ / .nvm / nvm.sh et merci beaucoup!
Darnell Lynch
4

Ajoutez les lignes suivantes aux fichiers ~/.bashrcet ~/.bash_profile:

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

et redémarrez le terminal ou faites source ~/.bashrcou source ~/.bash_profile. Si vous avez besoin de l'exécution de la commande pour nvm, ajoutez également la ligne:

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

Avec les lignes ci-dessus vers ~/.bashrcet ~/.bash_profile.

vantony
la source
4

Pour MacOS;

Exécuter sur le terminal>

open ~/.bash_profile

Collez tout cela =

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

Le script d'installation nvm par défaut ajoute du code d'initialisation à votre $HOME/.profile , qui n'est chargé que par un shell de connexion (dans un environnement de bureau, vous ne verrez peut-être jamais un shell de connexion).

La commande nvm dans votre shell de connexion n'est pas propagée aux sous-shells (comme les fenêtres de console et les terminaux IDE après vous être connecté). Cet extrait de $HOME/.bashrccode ne chargera nvm que s'il s'agit d'un shell interactif et qu'il n'a pas déjà été chargé

# 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

Mettre cela dans votre $HOME/.bashrcfichier corrigera le problème nvm manquant dans les shells bash interactifs, même à partir d'une interface graphique, et même si nvm est installé dans un emplacement non standard.

Warren MacEvoy
la source
2

J'avais résolu ce problème.

  1. touchez ~ / .bash_profile
  2. ouvrir ~ / .bash_profile
  3. pâteexport 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
la source
2

Car le problème a été résolu lorsque j'ai déménagé

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

à la fin de .zshrc

almeynman
la source
1

Sur Debian, ainsi que l'ajout des lignes ci-dessous à mon .bash_profile comme l'a dit l'une des réponses ci-dessus. J'ai également dû ouvrir mes préférences de terminal (Édition -> Préférences de profil -> Commande) et activer «Exécuter la commande en tant que shell de connexion» pour le faire fonctionner.

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

Edit: pour ceux qui sont sur Mac, sachez que macOS ne lit pas .bashrc au démarrage du terminal, il est donc préférable d'utiliser .bash_profile. Vois ici.

tomhughes
la source
1

Pour mon cas, c'est parce que j'utilise du poisson . si je ne démarre pas fish , tapez simplement nvm sans erreur maintenant.

JerryZhou
la source
Comment avez-vous arrêté le poisson ?
Matko
tapez exit @MobileDream.
JerryZhou
1

Dans Windows 8.1 x64 même arrivé avec moi, et a reçu le message suivant.

nvm install 8.3.0 bash: nvm: commande introuvable fenêtres

Alors, suivez ou vérifiez ci-dessous les étapes suivantes-

installez d'abord à coreybutler/nvm-windowspartir de github.com. Dernière version 1.1.5 actuellement disponible nvm-setup.zip, a ensuite extrait la configuration nvm-setup.exeet l'installation comme emplacements suivants:

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

et pendant ce temps, la configuration gérera la variable d'environnement Pathcomme indiqué ci-dessus pour vous.

Maintenant, exécutez en Git Bashtant qu'administrateur , puis.

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

ici exécutez votre commande sans utiliser de préfixe $, elle est juste montrée ici pour la déterminer en tant que ligne de commande et maintenant nous allons vérifier la version nvm.

$ nvm --version
Running version 1.1.5.

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

si vous rencontrez des problèmes lors nvmde l'installation node, vous pouvez voir cette liste des nodejsversions disponibles ici https://nodejs.org/download/release/et choisir le programme d'installation correct selon votre version d'exigence égale ou supérieure à celle v6.3.0directement.

ArifMustafa
la source
0

Pour moi, cela a fonctionné. Vérifiez d'abord que le fichier .bashrca la ligne suivante

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

Maintenant bashrcest chargé pour chaque session de terminal. Redémarrez donc le terminal pour qu'il soit à nouveau chargé et vous devriez être prêt à partir.

priyankvex
la source
0

J'ai également fait face au même problème récemment et l'approvisionnement en script bash nvm en utilisant la source ~ / .nvm / nvm.sh a résolu ce problème.

Vishnu Dubey
la source
0

Utilisez les codes suivants

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

Après avoir essayé plusieurs étapes, je ne sais pas quel était le problème dans mon cas, mais cela a aidé:

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

Vérifié par nvm --version

sortie nvm -v

Mohammed Zameer
la source