Comment installer la dernière version de Node à l'aide de Brew

154

La dernière version de NodeJs actuellement est la 0.4.1

La commande en brew install nodece moment installe 0.2.6 - ce qui n'est pas idéal. Je voudrais 0.4.1

J'ai regardé cette liste de commandes pour brew et essayébrew install --HEAD node

Mais cela installe le nœud 0.5-pre.

Pourquoi Brew n'installe pas la bonne version et comment puis-je la forcer à obtenir la bonne?

À ce stade, il semble qu'il serait en fait plus facile de télécharger le src et de l'installer manuellement. Mais j'aimerais savoir ce qui se passe avec Brew.

PandaWood
la source
Je suis curieux. Quelle est la différence entre l'installation via Homebrew et l'installation à partir du package téléchargé depuis nodejs.org ?
yihangho

Réponses:

126

Avez-vous couru en brew updatepremier? Si vous ne le faites pas, Homebrew ne peut pas mettre à jour ses formules, et s'il ne met pas à jour ses formules, il ne sait pas comment installer les dernières versions du logiciel.

Lily Ballard
la source
2
D'accord, j'avais essayé 'brew update node' mais je vois maintenant que vous avez raison. Cela ne m'est pas venu à l'esprit parce que le doco dit que la `` mise à jour du brassage '' mettrait à jour le logiciel de brassage - ce qui ne semble faire aucune différence. Mais il mentionne «formulea» - qui est juste un mot (franchement) stupide pour ce qui est fondamentalement une «bibliothèque de versions de logiciels». Je peux faire 'brew info node' pour savoir quelle version il va installer. Il est réglé sur 0.4.0 donc j'ai fini par installer de toute façon à partir de src, mais c'est vrai. Je vous remercie.
PandaWood
Quand il dit «mettre à jour le logiciel de brassage», cela ne signifie pas mettre à jour le logiciel que le brassage a installé - cela signifie mettre à jour le brassage lui-même, ainsi que sa bibliothèque de formules.
Lily Ballard
301

Exécutez les commandes ci-dessous, dans cet ordre:

brew update
brew doctor
brew upgrade node

Vous avez maintenant installé la version mise à jour du nœud, et il n'est probablement pas lié. Si ce n'est pas le cas, saisissez simplement: brew link nodeoubrew link --overwrite node

Andrey Bodoev
la source
1
Continuez à recevoir/usr/local/share/doc/node is not writable.
Saba Ahang
@SabaAhang, voir: Corriger les autorisations sur / usr / local pour Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile
3
Erreur: No such keg: / usr / local / Cellar / node
Hos Mercury
Bien, cela a corrigé un échec de NPM ("Buffer.alloc n'est pas une fonction") parce que le noeud keg n'était pas lié; nécessaire pour forcer le lien / écraser les anciens fichiers.
dave le
2
brew link --overwrite nodec'est vraiment important! merci
hanzichi
136

Après l'installation / la mise à niveau du nœud via brew, j'ai rencontré exactement ce problème: la commande node a fonctionné mais pas la commande npm.

J'ai utilisé ces commandes pour le réparer.

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

J'ai reconstitué cette solution après essais et erreurs en utilisant ...

Eric Walsh
la source
Je vous remercie! Avait exactement le même problème, et cela l'a résolu.
elsurudo
7
sudo brew postinstall nodelancera une erreur sauf si brew appartient à root (non recommandé). Je ne pense pas que cela devrait être nécessaire si vous l'avez déjà fait sudo chown -R $(whoami) /usr/local. Vous devriez pouvoir simplement courir brew postinstall node.
Sam Fen du
2
@SamFen a raison. sudopas besoin. J'ai d'abord exécuté la réponse acceptée avant de lancer cette liste de commandes. Ensuite, j'ai couru node -vet tout semble bien maintenant.
6754534367
1
Utilisez sudo chown -R $ (whoami) $ (brew --prefix) / * au lieu de sudo chown -R $ (whoami) / usr / local
Troy DC Thompson
1
Cela a fonctionné pour moi. J'ai fait ce que @TroyDCThompson recommandait au sudo chown -R $(whoami) $(brew --prefix)/*fur et à mesure que j'obtenais Operation not permitted.
thurzo101
21

Parfois brew updateéchoue sur moi parce qu'un package ne se télécharge pas correctement. Vous pouvez donc simplement mettre à niveau une bibliothèque spécifique comme celle-ci:

brew upgrade node

https://gist.github.com/3005832

Lance Pollard
la source
13

Essayez également de désactiver la version actuelle du nœud après avoir installé une nouvelle version du nœud. Ça m'aide.

nvm deactivate

Ceci est supprimé /Users/user_name/.nvm/*/bin de $ PATH

Et après la mise à jour de ce nœud

node --version
v10.9.0
Alexandr
la source
9

J'ai dû faire brew link --overwrite nodeaprès brew install nodepour mettre à jour de 0.4 à 0.8.18

ojreadmore
la source
Erreur: No such keg: / usr / local / Cellar / node
Hos Mercury
7

Essayez d'utiliser "n" le gestionnaire de paquets extrêmement simple de Node .

> npm install -g n

Une fois que vous avez "n" installé. Vous pouvez extraire le dernier nœud en procédant comme suit:

> n latest

Je l'ai utilisé avec succès sur Ubuntu 16.0x et MacOS 10.12 (Sierra)

Référence: https://github.com/tj/n

Ruben
la source
7

Si vous avez installé le nœud actuel via Homebrew, utilisez simplement ces commandes.

brew update
brew upgrade node

Vérifier la version du nœud par

node -v

Harikrishnan
la source
3

Je viens d'utiliser cette solution avec Homebrew 0.9.5 et cela semblait être une solution rapide pour passer à la dernière version stable de node.

brew update

Cela installera la dernière version

brew install node

Dissociez votre version actuelle de l'utilisation du nœud, node -v, pour trouver ceci

brew unlink node012

Cela passera à la version la plus à jour du nœud.

brew link node

Remarque: cette solution a fonctionné car j'ai obtenu cette erreur:

Erreur: aucun fût de ce type: / usr / local / Cellar / node

user2096561
la source
2

Je l'ai fait sur Mac OSX Sierra. J'avais installé Node 6.1 mais Puppetter avait besoin de Node 6.4. C'est ce que j'ai fait:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

Et puis ouvrez une nouvelle fenêtre de terminal et exécutez:

node -v
v8.11.2

Le --overwrite est nécessaire pour remplacer les fichiers en conflit entre node6 et node8

Donato
la source
2
  1. node -v vous montrera la version actuelle.
  2. npm -v vous montrera la version actuelle.
  3. brew link --overwrite --dry-run node forcera le lien et écrasera tous les fichiers en conflit.
  4. brew install node faire une nouvelle installation.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    ou

    brew link node

La procédure de mise à niveau du nœud est ci-dessous

Mahendra Rao
la source
1

Vous pouvez utiliser nodebrew . Il peut également changer de version de nœud.

projet c
la source
0

Si vous êtes prêt à supprimer la brewdépendance, je recommanderais nvm - je ne peux pas vraiment le recommander par rapport à toute autre solution de contrôle de version car je n'ai pas eu besoin d'essayer autre chose. Avoir la possibilité de basculer instantanément entre les versions en fonction du projet sur lequel vous travaillez est très précieux.

Jon z
la source