Homebrew installiert nvm, aber nvm kann danach nicht gefunden werden?

93

Ich verwende homebrewund oh-my-zshauf einer neuen OSX 10.10.1-Installation. Ich kam nvmüber homebrewund versuchte dann, es auszuführen, sagte aber - zsh: Befehl nicht gefunden: nvm

Irgendeine Idee, wo das Problem liegt? Ich konnte git gut installieren und verwenden ...

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


AKTUALISIERT 20.09.2019

Wie aus neueren Antworten von DarkPurple141 und Elise van Looij hervorgeht . nvmscheint nicht kompatibel zu sein mit homebrew. Dies ist auch im offiziellen nvm-sh-Repo angegeben, das sich hier befindet .

Die Installation von Homebrew wird nicht unterstützt. Wenn Sie Probleme mit Homebrew-installiertem NVM haben, deinstallieren Sie es bitte und installieren Sie es gemäß den folgenden Anweisungen, bevor Sie ein Problem einreichen.

Hinweis: Wenn Sie zsh verwenden, können Sie nvm problemlos als zsh-Plugin installieren. Installieren Sie zsh-nvm und führen Sie das nvm-Upgrade aus, um ein Upgrade durchzuführen.

Die folgenden Schritte sollten helfen:

  1. $ brew uninstall nvm
  2. $ brew cleanup(nur für ein gutes Maß)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Überprüfen Sie, ob nvm korrekt installiert wurde, indem Sie $ ausführen command -v nvm.

    4.a Wenn die Antwort etwas anderes als $ ist nvm, fügen Sie der Datei ~ / .bash-profile die folgenden zwei Zeilen hinzu: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Starten Sie Ihren Computer neu (Sie können versuchen, Terminal zu schließen und zuerst neu zu starten). 4.c $ command -v nvm should now returnnvm`

  5. Aktualisieren Sie nun Node.js mit $ nvm install --lts

  6. Update npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Endlich Erfolg! Nun, für mich und ich hoffe auch für dich.
Dayan
quelle
3
Bleibt es bestehen, wenn Sie Terminal neu starten?
Aaron Brager
Versuchen Sie, Rehash einzugeben oder eine neue Shell zu öffnen. Manchmal nimmt zsh keine Ergänzungen auf.
Doon
Ich habe die Shell geschlossen, das System neu gestartet und nichts. Habe aufgewärmt und kein Glück.
Dayan
Wie wäre es mit Brew Link NVM?
Doon
Warnung: Bereits verlinkt: /usr/local/Cellar/nvm/0.20.0 Zum erneuten Verknüpfen: Brew Unlink nvm && Brew Link nvm
Dayan

Antworten:

125

Haben Sie die Anweisungen in den Vorbehalten befolgt?

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

Ohne die zusätzliche Konfiguration sieht es nicht so aus, als würde NVM standardmäßig gefunden.

Doon
quelle
3
Vielen Dank für das Heads-up Doon, von dem ich nichts wusste brew info, das noch neu ist homebrew:) Es funktioniert jetzt gut, nachdem ich diese Schritte befolgt habe.
Dayan
Sie sollten auch nach Abschluss der Installation angezeigt werden. Aber wenn Sie nicht nach ihnen suchen, können sie übersehen werden.
Doon
4
Ich musste dies hinzufügen ~/.bash_profile, um es zum Laufen zu bringen: /
Janaka
1
hmm. Ich verwende kein bash (bevorzuge zsh), aber es sieht so aus, als ob OSX terminal.app (ich benutze auch kein Terminal, bevorzuge Iterm2) jede Shell als Login-Shell öffnet, also wäre .bash_profile in diesem Fall korrekt. Auch die Info hat sich geändert. Sie sollten sich also auf die neueste Version beziehen.
Doon
Vielen Dank! Mir fehlte diese Zeile source $(brew --prefix nvm)/nvm.sh. Fügte es zu meiner .zshrh
John Ottenlips
42

Es gibt ZWEI Dinge, die Sie tun müssen. Befolgen Sie die nach der Installation von nvm über Brew angezeigten Vorsichtsmaßnahmen. DANN müssen Sie die Änderungen an .bash_profile aktivieren / neu laden.

  1. Lauf brew install nvm
  2. Befolgen Sie die in der Konsole gezeigten Vorbehalte, meine waren wie folgt, Ihre können anders sein!:

Fügen Sie ~ / .bash_profile oder Ihrer gewünschten Shell-Konfigurationsdatei Folgendes hinzu:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Führen . ~/.bash_profileSie diese Option aus, um die vorgenommenen Änderungen an Ihrer .bash_profile-Datei zu übernehmen
redfox05
quelle
Dies ist nützlich für Bash-Benutzer, aber das OP ist auf zsh. Ich denke, dasselbe gilt für .zshrcdie notwendigen Änderungen.
Tripleee
4

Obwohl die akzeptierte Antwort technisch funktioniert, ist es erwähnenswert, dass die Homebrew-Installation vom nvmPaket nicht offiziell unterstützt wird . Die empfohlene Methode zur Vermeidung von Problemen wie den oben genannten besteht darin, eine der folgenden Installationsmethoden anzuwenden.

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

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

DarkPurple141
quelle
3

Ich habe ein paar Stunden damit verbracht, mich mit diesem Thema zu befassen, bin aber zu dem Schluss gekommen, dass DarkPurple141 richtig ist: nvm ist einfach nicht mit Homebrew kompatibel, wie sie auf ihrem Github nvm-sh / nvm-Knoten angeben Versionsmanager . Homebrew wird nvm installieren und alles sieht gut aus, bis man versucht, npm dazu zu bringen, ein Modul zu installieren, in meinem Fall Mocha. Das warf mich gleich wieder auf den gefürchteten Fehler zurück:

IRREN! Fehler: EACCES: Berechtigung verweigert, Zugriff auf '/ usr / local / lib / node_modules'

HINWEIS: Stellen Sie in Schritt 3 sicher, dass die Version durch die richtige Version ersetzt wird.

Die Lösung unter MacOS 10.14 Mojave war:

  1. $ brew uninstall nvm
  2. $ brew cleanup(nur für ein gutes Maß)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Überprüfen Sie, ob nvm korrekt installiert wurde, indem Sie $ ausführen command -v nvm.

    4.a Wenn die Antwort etwas anderes als $ ist nvm, fügen Sie der Datei ~ / .bash-profile die folgenden zwei Zeilen hinzu: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Starten Sie Ihren Computer neu (Sie können versuchen, Terminal zu schließen und zuerst neu zu starten). 4.c $ command -v nvm should now returnnvm`

  5. Aktualisieren Sie nun Node.js mit $ nvm install --lts

  6. Update npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Endlich Erfolg! Nun, für mich und ich hoffe auch für dich.
Elise van Looij
quelle
1

Um nvm zu installieren, brew install nvm

Um nvm nach der Installation oder nur einmal auszuführen, $(brew --prefix nvm)/nvm.sh

Um nvm jedes Mal auszuführen, wird zshgeöffnet

  1. nano ~/.zshrc
  2. Fügen Sie diese Zeile hinzu source $(brew --prefix nvm)/nvm.sh
Ricky Dam
quelle
1

Ich möchte hinzufügen, dass sich der Speicherort von nvm auf github geändert hat und die Version gestoßen ist. Der Curl-Befehl sollte jetzt lauten:

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

Der Grund, warum Sie Ihre Bash-Profile oder andere Bash-Dateien neu laden müssten, könnte sein, dass der Befehl nvm möglicherweise kein Programm ist, sondern eine Funktion, die definiert ist und nur verwendet werden kann, wenn die entsprechende Bash-Datei bezogen wird.

Auf einem System, das ich überprüft habe

which nvm 

funktioniert aber nicht

nvm list

tut. Dies bedeutet, dass Sie das Wort "nvm" verwenden können, um etwas aufzurufen. Das etwas ist kein Programm. Im aktuellen Fall handelt es sich um eine Funktion, die von überprüft werden kann

typeset -F | grep -P ' nvm$'

welche Ausgänge

declare -F nvm

was bedeutet, dass nvm eine Funktion ist, deren Körper durch Ausführen inspiziert werden kann

type -F nvm
Saurabh Hirani
quelle
1
Schön .. Aber wie ist das eine Antwort?
Dayan
1
Vielen Dank für das Update Dayan - die Antwort bearbeitet - der Grund, warum ich sie nicht finden konnte, weil ich mich darauf verlassen habe, dass es ein Programm ist, aber es als Funktion definiert wurde. Wollte das hervorheben.
Saurabh Hirani
Um zu überprüfen, ob nvm ordnungsgemäß installiert wurde, verwenden Sie den Befehl -v nvm im Terminal. Die Antwort sollte 'nvm' sein. Wenn dies nicht der Fall ist , befolgen Sie die Anweisungen unter github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij
0

Eine Möglichkeit, wenn verwendet brewwurde, besteht darin, dass die nvmVerknüpfung möglicherweise nicht verbunden ist, insbesondere wenn sie von einem anderen MAC OS-Benutzer installiert wurde.

Führen Sie in diesem Fall Folgendes aus:

brew link nvm
Lindoélio Lázaro
quelle