So installieren Sie die neueste Version von Node mit Brew

154

Die neueste Version von NodeJs ist derzeit 0.4.1

Der Befehl brew install nodeinstalliert derzeit 0.2.6 - was nicht ideal ist. Ich möchte 0.4.1

Ich habe mir diese Liste mit Befehlen zum Brauen angesehen und es versuchtbrew install --HEAD node

Damit wird jedoch der Knoten 0.5-pre installiert.

Warum installiert Brew nicht die richtige Version und wie kann ich sie zwingen, die richtige zu bekommen?

In diesem Stadium scheint es tatsächlich einfacher zu sein, den src herunterzuladen und manuell zu installieren. Aber ich würde gerne wissen, was mit Brew los ist.

PandaWood
quelle
Ich bin neugierig. Was ist der Unterschied zwischen der Installation über Homebrew und der Installation über das von nodejs.org heruntergeladene Paket ?
Yihangho

Antworten:

126

Bist du brew updatezuerst gelaufen ? Wenn Sie dies nicht tun, kann Homebrew seine Formeln nicht aktualisieren, und wenn es seine Formeln nicht aktualisiert, weiß es nicht, wie die neuesten Softwareversionen installiert werden.

Lily Ballard
quelle
2
Richtig, ich habe 'Brew Update Node' ausprobiert, aber ich sehe jetzt, dass Sie Recht haben. Mir ist das nicht in den Sinn gekommen, weil das Dokument sagt, dass 'Brew Update' die Brew Software aktualisieren würde - was keinen Unterschied zu machen scheint. Aber es wird "formulea" erwähnt - was nur ein (ehrlich gesagt) dummes Wort für das ist, was im Grunde genommen "Bibliothek von Softwareversionen" ist. Ich kann 'Brew Info Node' ausführen, um herauszufinden, welche Version installiert werden soll. Es ist auf 0.4.0 eingestellt, also habe ich trotzdem von src installiert, aber das ist richtig. Danke dir.
PandaWood
Wenn "Brew-Software aktualisieren" angezeigt wird, bedeutet dies nicht, dass die von Brew installierte Software aktualisiert wurde - es bedeutet, dass Brew selbst sowie die Formelbibliothek aktualisiert werden.
Lily Ballard
301

Führen Sie die folgenden Befehle in dieser Reihenfolge aus:

brew update
brew doctor
brew upgrade node

Jetzt haben Sie die aktualisierte Version des Knotens installiert und dieser ist wahrscheinlich nicht verknüpft. Wenn nicht, geben Sie einfach: brew link nodeoder einbrew link --overwrite node

Andrey Bodoev
quelle
1
Immer weiter/usr/local/share/doc/node is not writable.
Saba Ahang
@SabaAhang, siehe: Fix Berechtigungen für / usr / local für Homebrew; ;; gist.github.com/rpavlik/768518
AnneTheAgile
3
Fehler: Kein solches Fass: / usr / local / Cellar / node
Hos Mercury
Schön, dies hat einen NPM-Fehler behoben ("Buffer.alloc ist keine Funktion"), da das Knotenfass nicht verbunden war. erforderlich, um das Verknüpfen / Überschreiben alter Dateien zu erzwingen.
Dave
2
brew link --overwrite nodees ist wirklich wichtig! danke
hanzichi
136

Nach der Installation / Aktualisierung des Knotens über Brew bin ich genau auf dieses Problem gestoßen: Der Befehl node hat funktioniert, aber nicht der Befehl npm.

Ich habe diese Befehle verwendet, um das Problem zu beheben.

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

Ich habe diese Lösung nach Versuch und Irrtum mit ...

Eric Walsh
quelle
Danke dir! Hatte genau das gleiche Problem, und das löste es.
Elsurudo
7
sudo brew postinstall nodewird einen Fehler auslösen, es sei denn, das Gebräu gehört root (nicht empfohlen). Ich denke nicht, dass es nötig sein sollte, wenn Sie es bereits getan haben sudo chown -R $(whoami) /usr/local. Sie sollten in der Lage sein, einfach zu rennen brew postinstall node.
Sam Fen
2
@ SamFen ist richtig. sudonicht benötigt. Ich habe zuerst die akzeptierte Antwort ausgeführt, bevor ich diese Liste von Befehlen ausprobiert habe. Danach bin ich gelaufen node -vund jetzt scheint alles in Ordnung zu sein.
6754534367
1
Verwenden Sie Sudo Chown -R $ (whoami) $ (Brew - Präfix) / * anstelle von Sudo Chown -R $ (Whoami) / usr / local
Troy DC Thompson
1
Das hat bei mir funktioniert. Ich habe getan, was @TroyDCThompson empfohlen hat, sudo chown -R $(whoami) $(brew --prefix)/*als ich es bekam Operation not permitted.
Thurzo101
21

brew updateScheitert manchmal an mir, weil ein Paket nicht richtig heruntergeladen wird. Sie können also einfach eine bestimmte Bibliothek wie folgt aktualisieren:

brew upgrade node

https://gist.github.com/3005832

Lance Pollard
quelle
13

Versuchen Sie außerdem, die aktuelle Knotenversion nach der Installation einer neuen Knotenversion zu deaktivieren. Es hilft mir.

nvm deactivate

Dies wird /Users/user_name/.nvm/*/bin aus $ PATH entfernt

Und nachdem dieser Knoten aktualisiert wurde

node --version
v10.9.0
Alexandr
quelle
9

Ich musste brew link --overwrite nodedanach brew install nodevon 0.4 auf 0.8.18 aktualisieren

ojreadmore
quelle
Fehler: Kein solches Fass: / usr / local / Cellar / node
Hos Mercury
7

Versuchen Sie, den extrem einfachen Paketmanager "n" des Knotens zu verwenden .

> npm install -g n

Sobald Sie "n" installiert haben. Sie können den neuesten Knoten wie folgt abrufen:

> n latest

Ich habe es erfolgreich unter Ubuntu 16.0x und MacOS 10.12 (Sierra) verwendet.

Referenz: https://github.com/tj/n

Ruben
quelle
7

Wenn Sie den aktuellen Knoten über installiert haben Homebrew, verwenden Sie einfach diese Befehle.

brew update
brew upgrade node

Überprüfen Sie die Knotenversion mit

node -v

Harikrishnan
quelle
3

Ich habe diese Lösung gerade mit Homebrew 0.9.5 verwendet und es schien eine schnelle Lösung zu sein, um auf die neueste stabile Version von Node zu aktualisieren.

brew update

Dadurch wird die neueste Version installiert

brew install node

Trennen Sie die Verknüpfung Ihrer aktuellen Version von node use, node -v, um dies zu finden

brew unlink node012

Dies ändert sich auf die aktuellste Version des Knotens.

brew link node

Hinweis: Diese Lösung hat funktioniert, weil ich diesen Fehler erhalten habe:

Fehler: Kein solches Fass: / usr / local / Cellar / node

user2096561
quelle
2

Ich habe das unter Mac OSX Sierra gemacht. Ich hatte Node 6.1 installiert, aber Puppetter benötigte Node 6.4. Das habe ich getan:

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

Öffnen Sie dann ein neues Terminalfenster und führen Sie Folgendes aus:

node -v
v8.11.2

Das --overwrite ist erforderlich, um widersprüchliche Dateien zwischen Knoten6 und Knoten8 zu überschreiben

Donato
quelle
2
  1. node -v zeigt Ihnen die aktuelle Version.
  2. npm -v zeigt Ihnen die aktuelle Version.
  3. brew link --overwrite --dry-run node erzwingt die Verknüpfung und überschreibt alle in Konflikt stehenden Dateien.
  4. brew install node Führen Sie eine Neuinstallation durch.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    oder

    brew link node

Das Verfahren zum Aktualisieren der Knoten finden Sie weiter unten

Mahendra Rao
quelle
1

Sie können Nodebrew verwenden . Es kann auch Knotenversionen wechseln.

c-projekt
quelle
0

Wenn Sie bereit sind, die brewAbhängigkeit zu entfernen , würde ich nvm empfehlen - ich kann es keiner anderen Versionslösung wirklich empfehlen, da ich nichts anderes ausprobieren musste. Die Möglichkeit, sofort zwischen den Versionen zu wechseln, je nachdem, an welchem ​​Projekt Sie arbeiten, ist sehr wertvoll.

Jon z
quelle