Comment puis-je rétrograder un nœud ou installer une version antérieure spécifique à l'aide de homebrew?


230

J'utilise de la bière. J'ai le noeud installé, en utilisant la bière. Je veux utiliser une version antérieure de noeud.

En ligne, je trouve des instructions telles que , par exemple :

cd /usr/local/Library/Formula
brew remove node --force
brew versions node
git checkout 83988e4 /usr/local/Library/Formula/node.rb
brew install node

Le problème que j'ai avec ceci est qu'il brewne semble pas avoir de versionssous - commande:

$ brew versions node
Error: Unknown command: versions
$ brew --version
0.9.5

Je suis nouveau à brasser. Dois-je activer la versionssous - commande d'une manière ou d'une autre? Devrais-je utiliser une sous-commande différente à la place? Y a-t-il une méthode complètement différente que je devrais essayer?

J'utilise OS X Yosemite (10.10.1); breuvage 0.9.5.


Quelle version de node.js souhaitez-vous installer?
bmike

Mon patron me dit 10.32. Je suppose qu'il veut dire 0.10.32. J'ai 0.12.0 installé en ce moment.
dave4420

A cette date, le lecteur devrait se rendre à cette réponse: stackoverflow.com/a/4158763/48136
Brice

Réponses:


354

Ces jours-ci, si vous souhaitez installer une version différente, nodeprocédez comme suit:

Commencez par rechercher votre forfait souhaité:

brew search node

Cela pourrait vous donner les résultats suivants:

heroku/brew/heroku-node ✔
llnode
node@10
nodebrew
leafnode
node ✔
node@8
....

Et installez ensuite la version souhaitée:

brew install node@8

N'oubliez pas non plus que vous pouvez installer plusieurs packages de nœud à la fois, mais que vous ne pouvez pas les avoir disponibles en même temps. Donc, si vous avez le dernier nodepaquet / générique déjà installé, vous devez d'abord le dissocier:

brew unlink node

Et puis vous pouvez lier une autre version:

brew link node@8

Pour certaines versions de noeud plus anciennes (réservées aux fûts), il peut être nécessaire de les lier avec les options --forceet --overwrite:

brew link --force --overwrite node@8

10
meilleure réponse ici.
Chovy

3
Notez que vous pouvez être invité à "dissocier" une version existante du noeud avant de pouvoir installer avec succès l'une des autres versions répertoriées (selon les instructions ci-dessus). En "dissociant" vous laissez l'autre version physiquement installée sur votre système, mais celle que vous installez (après la suppression de liaison) deviendra la version "par défaut" de votre système. Par exemple, vous devrez peut-être taper brew unlink nodesi vous aviez installé brew install node. Ensuite, vous pouvez faire brew install homebrew/versions/node4-lts(que vous devriez voir comme une version listée selon les instructions de cette réponse).
xmnboy

1
Au lieu de homebrew/versions/node06c'est maintenant homebrew/versions/node6-lts. Aussi faire brew link node6-lts.
Akauppi

1
J'ai mis à jour ma réponse pour refléter les dernières modifications apportées à la préparation. Merci!
Paweł Gościcki

2
mais comment pouvons-nous installer une version spécifique comme le noeud 8.2.1 en utilisant brew?
Nadav B

39

Voici étape par étape.

Pour voir votre version actuelle du nœud

$ node --version

Pour voir les versions de nœuds disponibles

$ brew search node

Dissocier de la version actuelle

$ brew unlink node

Installez n'importe quelle version, par exemple 8

$ brew install node@8

Pour lier la version installée

$ brew link node@8

Pour voir votre version de noeud actuelle (à nouveau)

$ node --version

Juste ce dont j'avais besoin
Brian Colavito

Comment résoudre ce problème? lien de brassage noeud @ 10 Avertissement: noeud @ 10 est réservé à un fût et doit être lié à --force Si vous devez d'abord avoir ce logiciel dans votre PATH, envisagez de lancer: echo 'export PATH = "/ usr / local / opt / node @ 10 / bin: $ PATH "'>> ~ / .bash_profile
vikramvi

ne fonctionnait pas sur Mac OS 10.13.5, obtenant une erreur stackoverflow.com/questions/53043476/…
vikramvi

15

À partir de ce RP pour homebrew / versions et de ce RP pour homebrew , les réponses impliquant des packages brew tap homebrew/versionsou des *-ltspackages ne fonctionnent plus.

La bonne réponse est maintenant:

brew install node@<version>

<version>est 0.10, 0.12, 4, etc. Par exemple, pour installer Node.js v6 (de cette écriture, version la plus récente LTS)

brew install node@6

Vous devrez peut-être exécuter brew updateavant ces commandes pour vous assurer que ces nouvelles formules versionnées sont disponibles. Si une autre version de la nodeformule est installée, vous devez également l'exécuter en brew unlink nodepremier.


3
ne fonctionnait pas avec Mac OS 10.13.5 stackoverflow.com/questions/53043476/…
vikramvi

11

brew versionsdoit être installé à un moment donné après l’installation brew.

$ brew tap homebrew/boneyard

Vous pouvez ensuite utiliser la brew versionscommande en suivant les instructions.


4
homebrew/boneyardest obsolète et va être remplacé par github.com/Homebrew/homebrew-versions à partir de mars 2015. Installez via brew tap homebrew/versions.
Jakub Holý

12
Avec homebrew/versionsvous obtiendrez le nom versionné du package: brew search node => leafnode node node010 node04 node06 node08 nodebrew .... Alors faites brew install node010ensuite brew link --overwrite node010pour installer la version 0.10 de Node.JS.
Jakub Holý

3
Vous devrez peut-être aussi le faire brew unlink nodeavantbrew install node010
chananelb

10

Pour votre information, si l'ancienne version était déjà installée et que vous ne l'avez pas exécutée brew cleanup(ce qui supprime les anciennes versions), vous pouvez choisir entrebrew switch node 5.7.0

Toutes les versions installées du noeud peuvent être listées en exécutant brew info nodeouls -l /usr/local/Cellar/node/

Voir la feuille de triche pour la commande d'infusion: http://ricostacruz.com/cheatsheets/homebrew.html


Fonctionne à partir de 2017/12! Homebrew 1.4.0-17-gc912d26
Jason Harrison

5

Si vous en avez besoin spécifiquement pour Node, vous pouvez l'utiliser nvm. C'est très pratique si vous travaillez beaucoup avec Node.


Selon nvm, docs et brassage ne sont pas pris en charge. J'ai commenté ceci ici. github.com/angular/angular-cli/issues/… Je serais intéressé à entendre des histoires de guerre à ce sujet. Parce
qu'en

3

Vous pouvez le faire sans homebrew.

Vous pouvez désinstaller puis installer le nœud manuellement.

Vous devez télécharger votre version actuelle. Voici la liste .

Téléchargez le noeud-v {votre-numéro-de-version-actuelle} .tar.gz, extrayez-le, puis accédez à la ligne de commande.

cd node-v{your-current-version-number}
./configure
make
sudo make install

Pour le désinstaller sudo make uninstall

Ensuite, téléchargez la version que vous souhaitez installer et suivez les étapes ci-dessus.

De ce blog


+1 cette réponse. FWIW, je pouvais simplement copier le bin/dossier sans bande sur mon CHEMIN pour que cela fonctionne.
Shicholas

Mieux encore, vous pouvez télécharger le fichier .pkg à partir de là et double-cliquer dessus pour l’installer.
Henrik N


3

Il y a beaucoup de réponses ici et à d'autres endroits qui recommandent d'utiliser les versions homebrew, mais cela vous donne des options très limitées pour quelle version de Node vous pouvez installer.

L'utilisation de NVM est beaucoup plus simple et vous permet de basculer très facilement d'une version à l'autre.

homebrew install nvm

Suivez ensuite les instructions contenues dans les mises en garde - mkdir ~/.nvmet ajouter deux lignes à votre .bash_profileetsource .bash_profile

Ensuite, exécutez simplement nvm install <version>toutes les versions dont vous avez besoin. Puis nvm use <version>pour passer.


Ce n'est pas la réponse acceptée, mais c'est le seul qui a fonctionné pour moi. J'aurais aimé l'essayer le premier car j'aurais économisé beaucoup de temps.
Alex

1

Imaginons que vous avez la version 0.12. *. Pour installer (déclasser) la version 0.10 du nœud jeter la bière dans OSX, vous devez:

$ sudo brew tap homebrew-versions
$ brew unlink node
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/node010.rb
$ node -v

La liste de toutes les versions de nœud est ici


1

La manière préférée dans le monde NodeJS est d'utiliser l'outil n

  • Installation: npm install -g n
  • Installer le nœud 8.8.4 n 8.8.4
  • Répertoriez toutes les versions de nœud disponibles localement et choisissez-en une: n

Cela semble similaire à nvm, mais j'ai eu des problèmes avec nvm, et ntravaillé hors de la boîte.


0

https://nodejs.org/en/blog/release/

Vous pouvez aller ici et installer la version dont vous avez besoin.

Avant d'installer, vous souhaiterez peut-être exécuter brew unlink nodepour dissocier la version actuelle.


1
Quel serait l'avantage de le faire de cette façon, par opposition à l'utilisation de Brew (comme le décrivent plusieurs autres réponses) ou à la désinstallation d'un noeud, puis à son installation manuelle (comme décrit dans la réponse de @ Terente-Ionut-Alexandru)?
John N

Les versions de bière @JohnN sont obsolètes à partir de maintenant. Ses alternatives ne sont pas très faciles à comprendre. En outre, il est assez complexe d’installer la version exacte.
Anant Simran Singh

La réponse de @ Paweł-Gościcki (la mieux notée, avec 140 voix) semble très facile à comprendre, et pas du tout complexe - ce qui correspond à mon expérience récente avec le brassage et les différentes versions de formules. Ce que je veux dire, c'est que votre réponse ne semble rien ajouter à ce qui n'a pas déjà été dit dans d'autres réponses - à moins qu'il y ait une raison de ne pas associer + installer manuellement plutôt que de désinstaller + installer manuellement, comme l'a suggéré Terente?
John N

@ JohnN Ce cours est facile à comprendre. Mais vous serez limité par les options offertes par la recherche brassée. Pour par exemple. si vous voulez que le noeud 4.4.6 soit exactement mais que l'infusion fournisse seulement une option noeud @ 4. Par conséquent.
Anant Simran Singh

Il y a, je pense, 3 bonnes réponses à la question: (1) utiliser Brew, (2) utiliser NVM, et (3) désinstaller et installer manuellement. Ce que j'essaie de vous faire faire, c'est d'expliquer pourquoi votre réponse ajoute à ces réponses existantes. Pourquoi pensez-vous que dissocier + installation manuelle est préférable aux réponses existantes? Plus précisément, pourquoi estimez-vous que * dissocier * + l'installation manuelle est préférable à * la désinstallation * + l'installation manuelle, comme le suggère la réponse de Terente?
John N
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.