Homebrew installe NVM mais NVM ne peut pas être trouvé par la suite?

95

J'utilise homebrewet oh-my-zshsur une nouvelle installation OSX 10.10.1. J'ai obtenu nvmvia homebrew, puis j'ai essayé de l'exécuter mais j'ai dit - zsh: commande introuvable: nvm

Une idée du problème? J'ai pu installer et utiliser git très bien ...

entrez la description de l'image ici

entrez la description de l'image ici


MISE À JOUR 9/20/2019

Comme indiqué par des réponses plus récentes de DarkPurple141 et Elise van Looij . nvmne semble pas compatible avec homebrew. Ceci est également indiqué dans le repo officiel nvm-sh situé ici .

L'installation Homebrew n'est pas prise en charge. Si vous rencontrez des problèmes avec nvm installé par homebrew, veuillez le désinstaller et l'installer en suivant les instructions ci-dessous, avant de signaler un problème.

Remarque: si vous utilisez zsh, vous pouvez facilement installer nvm en tant que plugin zsh. Installez zsh-nvm et exécutez la mise à niveau de nvm pour mettre à niveau.

Les étapes suivantes devraient vous aider:

  1. $ brew uninstall nvm
  2. $ brew cleanup(juste pour faire bonne mesure)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Vérifiez que nvm a été correctement installé en exécutant $ command -v nvm.

    4.a Si la réponse est autre que $ nvm, ajoutez les deux lignes suivantes au fichier ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Redémarrez votre ordinateur (vous pouvez essayer de fermer le Terminal et de le redémarrer en premier) 4.c ​​$ command -v nvm should now returnnvm`

  5. Maintenant, mettez à jour Node.js avec $ nvm install --lts

  6. Mettre à jour npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Enfin, succès! Eh bien, pour moi et j'espère pour vous aussi.
Dayan
la source
3
Cela persiste-t-il si vous redémarrez Terminal?
Aaron Brager
Essayez de taper rehash ou d'ouvrir un nouveau shell. Parfois, zsh ne prend pas en charge les ajouts.
Doon
J'ai fermé le shell, redémarré le système et rien. J'ai ressassé et pas de chance.
Dayan
Que diriez-vous de Brew Link NVM que cela fasse quelque chose?
Doon
Avertissement: Déjà lié: /usr/local/Cellar/nvm/0.20.0 Pour relier: brew unink nvm && brew link nvm
Dayan

Réponses:

127

Avez-vous suivi les instructions répertoriées dans les mises en garde?

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

Sans la configuration supplémentaire, il ne semble pas trouver NVM par défaut.

Doon
la source
3
Merci pour le heads-up Doon, je n'étais pas au courant brew info, encore nouveau à homebrew:) Cela fonctionne bien maintenant après avoir suivi ces étapes.
Dayan
Ils devraient également être affichés une fois l'installation terminée. Mais si vous ne les cherchez pas, ils peuvent être manqués.
Doon
4
J'ai dû ajouter ceci à par ~/.bash_profilepour le faire fonctionner: /
Janaka
1
hmm. Je n'utilise pas bash (je préfère zsh), mais cela ressemble à OSX terminal.app (je n'utilise pas de terminal non plus, je préfère Iterm2), ouvre chaque shell comme un shell de connexion donc oui .bash_profile serait correct dans ce cas. . aussi les informations ont changé. vous devriez donc vous référer à la dernière version ..
Doon
Merci! Je manquais cette ligne source $(brew --prefix nvm)/nvm.sh. Ajouté à mon .zshrh
John Ottenlips
42

Vous devez faire DEUX choses. Suivez les mises en garde affichées après l'installation de nvm via brew, et ALORS vous devez activer / recharger les modifications .bash_profile.

  1. Courir brew install nvm
  2. Suivez les mises en garde affichées dans la console, les miennes étaient les suivantes, les vôtres PEUVENT être différentes!:

Ajoutez ce qui suit à ~ / .bash_profile ou au fichier de configuration de shell souhaité:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Exécutez . ~/.bash_profilepour appliquer les modifications que vous avez apportées à votre fichier .bash_profile
redfox05
la source
Ceci est utile pour les utilisateurs de Bash, mais l'OP est sur zsh. J'imagine que la même chose s'applique .zshrcavec les modifications nécessaires.
tripleee
5

Bien que la réponse acceptée fonctionne techniquement, il convient de noter que l'installation de Homebrew n'est pas officiellement prise en charge par le nvmpackage. La méthode recommandée pour éviter les problèmes tels que ceux soulevés ci-dessus consiste à appliquer l'une des méthodes d'installation ci-dessous.

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

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

Violet foncé141
la source
3

J'ai passé quelques heures à tourner en rond sur cette question, mais j'en suis venu à la conclusion que DarkPurple141 a raison: nvm n'est tout simplement pas compatible avec Homebrew, comme ils le disent sur leur nœud Github nvm-sh / nvm Gestionnaire de versions . Homebrew installera nvm et tout va bien, jusqu'à ce que l'on essaie d'obtenir npm pour installer un module, Mocha dans mon cas. Cela m'a renvoyé à l'erreur redoutée:

SE TROMPER! Erreur: EACCES: autorisation refusée, accès à '/ usr / local / lib / node_modules'

REMARQUE: à l'étape 3, assurez-vous de remplacer la version par la version correcte.

La solution, sur MacOS 10.14 Mojave, était:

  1. $ brew uninstall nvm
  2. $ brew cleanup(juste pour faire bonne mesure)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Vérifiez que nvm a été correctement installé en exécutant $ command -v nvm.

    4.a Si la réponse est autre que $ nvm, ajoutez les deux lignes suivantes au fichier ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Redémarrez votre ordinateur (vous pouvez essayer de fermer le Terminal et de le redémarrer en premier) 4.c ​​$ command -v nvm should now returnnvm`

  5. Maintenant, mettez à jour Node.js avec $ nvm install --lts

  6. Mettre à jour npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Enfin, succès! Eh bien, pour moi et j'espère pour vous aussi.
Elise van Looij
la source
1

Pour installer NVM, brew install nvm

Pour exécuter nvm après l'installation ou une seule fois, $(brew --prefix nvm)/nvm.sh

Pour exécuter NVM à chaque zshouverture

  1. nano ~/.zshrc
  2. Ajouter cette ligne source $(brew --prefix nvm)/nvm.sh
Barrage Ricky
la source
1

Je voudrais ajouter que l'emplacement de nvm sur github a changé et que la version a été modifiée. La commande curl devrait maintenant être:

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

La raison pour laquelle vous auriez besoin de recharger vos profils bash ou tout autre fichier bash peut être parce que la commande nvm n'est peut-être pas un programme mais une fonction qui est définie et ne peut être utilisée que si le fichier bash correspondant provient.

Sur un système que j'ai vérifié

which nvm 

ne fonctionne pas mais

nvm list

Est-ce que. Cela signifie que vous pouvez utiliser le mot «nvm» pour invoquer quelque chose. Ce quelque chose n'est pas un programme. Dans le cas présent, c'est une fonction qui peut être vérifiée par

typeset -F | grep -P ' nvm$'

quelles sorties

declare -F nvm

ce qui signifie que nvm est une fonction, dont le corps peut être inspecté en faisant

type -F nvm
Saurabh Hirani
la source
1
Bien .. Mais, comment est-ce une réponse?
Dayan
1
Merci pour la mise à jour Dayan - a édité la réponse - la raison pour laquelle je ne l'ai pas trouvée parce que je comptais sur le fait qu'il s'agissait d'un programme mais qu'il était défini comme une fonction. Je voulais souligner cela.
Saurabh Hirani
Pour vérifier si nvm a été correctement installé, utilisez 'commande -v nvm' dans le terminal. La réponse doit être «nvm». Si ce n'est pas le cas, suivez les instructions sur github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij
0

Une possibilité si a brewété utilisé est que le nvmpeut être dissocié, surtout s'il a été installé par un autre utilisateur MAC OS.

Dans ce cas, exécutez:

brew link nvm
Lindoélio Lázaro
la source