Wie kann ich einen Knoten downgraden oder eine bestimmte frühere Version mithilfe von Homebrew installieren?


229

Ich benutze Gebräu. Ich habe Knoten mit Brew installiert. Ich möchte eine frühere Version von node verwenden.

Online, finde ich Anweisungen wie , zum Beispiel :

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

Das Problem, das ich damit habe, ist, dass brewes keinen versionsUnterbefehl zu geben scheint :

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

Ich bin neu im Brauen. Muss ich den versionsUnterbefehl irgendwie aktivieren ? Soll ich stattdessen einen anderen Unterbefehl verwenden? Gibt es eine völlig andere Methode, die ich ausprobieren sollte?

Ich verwende OS X Yosemite (10.10.1). brauen 0.9.5.


Welche Version von node.js möchten Sie installieren?
bmike

Mein Chef sagt mir 10.32. Ich denke er meint 0.10.32. Ich habe gerade 0.12.0 installiert.
Dave4420

Zu diesem Zeitpunkt sollte der Leser zu folgender Antwort gehen: stackoverflow.com/a/4158763/48136
Brice

Antworten:


352

Wenn Sie heutzutage eine andere Version von installieren möchten, nodegehen Sie folgendermaßen vor:

Suchen Sie zuerst nach Ihrem gewünschten Paket:

brew search node

Dies kann zu folgenden Ergebnissen führen:

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

Und dann die gewünschte Version installieren:

brew install node@8

Denken Sie auch daran, dass Sie mehrere Knotenpakete gleichzeitig installieren können, diese jedoch nicht gleichzeitig verfügbar sein können. Wenn Sie also das neueste / generische nodePaket bereits installiert haben, müssen Sie es zuerst trennen:

brew unlink node

Und dann können Sie eine andere Version verlinken:

brew link node@8

Bei einigen älteren Knotenversionen (die nur für KEGs bestimmt sind) kann es erforderlich sein, sie mit den Optionen --forceund zu verknüpfen --overwrite:

brew link --force --overwrite node@8

10
Beste Antwort hier.
Chovy

3
Beachten Sie, dass Sie möglicherweise aufgefordert werden, die Verknüpfung einer vorhandenen Knotenversion zu lösen, bevor Sie eine der anderen aufgeführten Versionen erfolgreich installieren können (siehe obige Anweisungen). Durch "Unlinking" verlassen Sie die andere Version, die physisch auf Ihrem System installiert ist, aber die, die Sie (nach dem Unlinking) installieren, wird zur "Standard" -Version auf Ihrem System. Beispielsweise müssen Sie möglicherweise eingeben, brew unlink nodewenn Sie installiert hatten brew install node. Dann könnten Sie tun brew install homebrew/versions/node4-lts(was Sie als eine Version sehen sollten, die gemäß den Anweisungen in dieser Antwort aufgeführt ist).
Xmnboy

1
Statt homebrew/versions/node06jetzt homebrew/versions/node6-lts. Auch tun brew link node6-lts.
Akauppi

1
Ich habe meine Antwort aktualisiert, um die neuesten Änderungen zu berücksichtigen. Vielen Dank!
Paweł Gościcki

2
Aber wie können wir eine bestimmte Version wie Node 8.2.1 mit brew installieren?
Nadav B

39

Hier ist Schritt für Schritt.

Anzeigen Ihrer aktuellen Knotenversion

$ node --version

Anzeigen der verfügbaren Knotenversionen

$ brew search node

Verknüpfung zur aktuellen Version aufheben

$ brew unlink node

Installieren Sie eine beliebige Version, z. B. 8

$ brew install node@8

Installierte Version verlinken

$ brew link node@8

So zeigen Sie Ihre aktuelle Knotenversion (erneut) an

$ node --version

Genau das, was ich brauchte
Brian Colavito

Wie kann man dieses Problem lösen? Brew Link Node @ 10 Warnung: Node @ 10 ist nur für KEGs und muss mit --force verknüpft werden. Wenn Sie diese Software zuerst in Ihrem PATH haben möchten, sollten Sie Folgendes ausführen: echo 'export PATH = "/ usr / local / opt / node @ 10 / bin: $ PATH "'>> ~ / .bash_profile
vikramvi

hat unter Mac OS 10.13.5 nicht funktioniert und Fehler erhalten stackoverflow.com/questions/53043476/…
vikramvi

15

Ab dieser PR für Homebrew / Versionen und dieser PR für Homebrew funktionieren die Antworten für brew tap homebrew/versionsoder *-ltsPakete nicht mehr.

Die richtige Antwort lautet jetzt:

brew install node@<version>

Wo <version>ist 0.10, 0.12, 4, etc. Zum Beispiel Node.js v6 zu installieren (zum Zeitpunkt des Schreibens, das letzte LTS - Version):

brew install node@6

Sie müssen möglicherweise brew updatevor diesen Befehlen ausgeführt werden, um sicherzustellen, dass diese neuen versionierten Formeln verfügbar sind. Wenn Sie eine andere Version der nodeFormel installiert haben, müssen Sie diese brew unlink nodezuerst ausführen .


2
hat mit Mac OS 10.13.5 nicht funktioniert stackoverflow.com/questions/53043476/…
vikramvi

11

brew versionsmuss irgendwann nach der Installation installiert werden brew.

$ brew tap homebrew/boneyard

Sie können den brew versionsBefehl dann wie in den Anweisungen angenommen verwenden.


4
homebrew/boneyardist veraltet und wird ab März 2015 durch github.com/Homebrew/homebrew-versions ersetzt . Installation über brew tap homebrew/versions.
Jakub Holý

12
Mit homebrew/versionsSie erhalten Namen des Pakets versioniert: brew search node => leafnode node node010 node04 node06 node08 nodebrew .... Also , brew install node010gefolgt von brew link --overwrite node010der 0,10 - Version von Node.JS. zu installieren
Jakub Holý

3
Möglicherweise müssen Sie auch brew unlink nodevor Ihnenbrew install node010
Chananelb

10

Zu Ihrer Information, wenn Sie zuvor die alte Version installiert hatten und diese noch nicht ausgeführt haben brew cleanup(wodurch alte Versionen gelöscht werden), können Sie mit so etwas wie wechselnbrew switch node 5.7.0

Alle installierten Versionen des Knotens können durch Ausführen von brew info nodeoder aufgelistet werdenls -l /usr/local/Cellar/node/

Weitere Informationen finden Sie auf dem Cheat-Sheet zum Brew-Befehl: http://ricostacruz.com/cheatsheets/homebrew.html


Funktioniert ab 2017/12! Homebrew 1.4.0-17-gc912d26
Jason Harrison

5

Wenn Sie es nur speziell für Node benötigen, können Sie es verwenden nvm. Es ist sehr praktisch, wenn Sie viel mit Node arbeiten.


Laut nvm sind docs brew und nvm keine unterstützte Combo. Ich habe das hier kommentiert. github.com/angular/angular-cli/issues/… Ich würde gerne Kriegsgeschichten darüber hören. An der Oberfläche scheint dies zu funktionieren, obwohl es "nicht unterstützt" ist
JGFMK

3

Sie können es ohne Homebrew tun.

Sie können den Knoten manuell deinstallieren und anschließend installieren.

Sie müssen Ihre aktuelle Version herunterladen. Hier ist die Liste .

Laden Sie die Datei node-v {Ihre-aktuelle-Versionsnummer} .tar.gz herunter, extrahieren Sie sie und rufen Sie die Befehlszeile auf.

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

So deinstallieren Sie es sudo make uninstall

Laden Sie dann die Version herunter, die Sie installieren möchten, und befolgen Sie dieselben Schritte wie oben.

Aus diesem Blogbeitrag


+1 diese Antwort. FWIW, ich konnte nur den nicht geteerten bin/Ordner in meinen PATH kopieren , um dies zum Laufen zu bringen.
Shicholas

Noch besser ist, dass Sie die .pkg-Datei von dort herunterladen und darauf doppelklicken können, um sie zu installieren.
Henrik N


3

Es gibt viele Antworten hier und an anderen Stellen, die die Verwendung von Homebrew-Versionen empfehlen, aber das gibt Ihnen sehr eingeschränkte Möglichkeiten, für welche Version von Node Sie installieren können.

Die Verwendung von NVM ist viel einfacher und Sie können sehr einfach zwischen Versionen wechseln.

homebrew install nvm

Befolgen Sie dann die Anweisungen in den Vorsichtsmaßnahmen - mkdir ~/.nvmund fügen Sie Ihrem .bash_profileund zwei Zeilen hinzusource .bash_profile

Dann führen Sie einfach nvm install <version>alle benötigten Versionen aus. Dann nvm use <version>wechseln.


Dies ist nicht die akzeptierte Antwort, aber es ist die einzige, die für mich funktioniert hat. Ich wünschte, ich hätte es das erste Mal versucht, weil ich viel Zeit gespart hätte.
Alex

1

Stellen Sie sich vor, Sie haben die Version 0.12. *. Um die 0.10-Version von Node Throw in OSX zu installieren (downgraden), müssen Sie:

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

Eine Liste aller Knotenversionen finden Sie hier


1

Die bevorzugte Methode in der NodeJS-Welt ist die Verwendung des Tools n

  • Installation: npm install -g n
  • Installationsknoten 8.8.4 n 8.8.4
  • Listen Sie alle lokal verfügbaren Knotenversionen auf und wählen Sie eine aus: n

Es scheint ähnlich zu sein nvm, aber ich hatte Probleme mit nvmund narbeitete out of the box.


0

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

Hier können Sie die gewünschte Version installieren.

Möglicherweise möchten Sie vor der Installation ausführen, brew unlink nodeum die Verknüpfung der aktuellen Version aufzuheben.


1
Was wäre der Vorteil, wenn Sie dies auf diese Weise tun würden, anstatt Brew zu verwenden (wie in mehreren anderen Antworten beschrieben) oder Node zu deinstallieren und dann manuell zu installieren (wie in der Antwort von @ Terente-Ionut-Alexandru beschrieben)?
John N

@JohnN Brew-Versionen sind derzeit veraltet. Die Alternativen sind nicht sehr einfach zu verstehen. Außerdem ist es durch das Brauen etwas kompliziert, die genaue Version zu installieren.
Anant Simran Singh

Die Antwort von @ Paweł-Gościcki (mit 140 Stimmen am höchsten bewertet) scheint sehr einfach zu verstehen und überhaupt nicht komplex zu sein - was mit meinen jüngsten Erfahrungen mit dem Brauen und verschiedenen Versionen von Formeln übereinstimmt. Mein Punkt ist, dass Ihre Antwort nichts hinzuzufügen scheint, was in anderen Antworten noch nicht gesagt wurde - es sei denn, es gibt einen Grund, die Verknüpfung zu lösen + manuell zu installieren, anstatt zu deinstallieren + manuell zu installieren, wie Terente es vorgeschlagen hat?
John N

@ JohnN Das ist natürlich leicht zu verstehen. Sie werden jedoch durch die Optionen eingeschränkt, die die Brausuche bietet. Zum Beispiel. Wenn Sie Knoten 4.4.6 genau wollen, aber das Gebräu nur eine Option für Knoten 4 bietet. Daher.
Anant Simran Singh

Ich denke, es gibt drei gute Antworten auf die Frage: (1) Benutze Brew, (2) Benutze NVM und (3) Deinstalliere und installiere es manuell. Ich versuche, Sie dazu zu bringen, zu erklären, warum Ihre Antwort diese vorhandenen Antworten ergänzt. Warum ist es Ihrer Meinung nach vorzuziehen, die Verknüpfung zu lösen und manuell zu installieren, als die vorhandenen Antworten? Warum ist es Ihrer Meinung nach besser, * die Verknüpfung zu lösen * + manuell zu installieren als * zu deinstallieren * + manuell zu installieren, wie die Antwort von Terente nahe legt?
John N
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.