Node Version Manager install - Befehl nvm nicht gefunden

303

Ich versuche, NVM gemäß diesen Anweisungen zu installieren

Ich habe diesen Befehl im Terminal eingegeben:

$ curl https://raw.github.com/creationix/nvm/master/install.sh | sh

Nach dem Ausführen der Installation starte ich das Terminal neu und versuche, Node.js mit dem folgenden Befehl zu installieren:

$ nvm install 0.8

aber ich bekomme die Antwort:

-bash: nvm: command not found

Ich bin mir nicht sicher, was ich hier falsch mache.

Zusätzliche Information--

Ich habe mich nach Lösungen aus anderen Posts und Foren umgesehen. Ich habe eine andere Lösung gefunden

$ git clone git://github.com/creationix/nvm.git ~/.nvm

Aber diesmal läuft es jedes Mal ab, wenn ich das versuche. Jede Hilfe wäre dankbar. Vielen Dank.

Jordanien
quelle

Antworten:

369

Überprüfen Sie Ihre .bash_profile, .zshrc oder .profileDatei. Sie hatten höchstwahrscheinlich ein Problem während der Installation.

Am Ende einer dieser Dateien sollte Folgendes stehen.

[[ -s $HOME/.nvm/nvm.sh ]] && . $HOME/.nvm/nvm.sh  # This loads NVM

Das . $HOME/.nvm/nvm.sh ist das gleiche wiesource $HOME/.nvm/nvm.sh

Sehen: Beschaffung einer Datei

Sie können auch überprüfen, ob Sie einen .nvmOrdner haben.

ls -a | grep .nvm

Wenn Sie diesen Ordner vermissen, konnte der Befehl git bei der Installation nicht ausgeführt werden. Dies könnte daran liegen, dass Sie sich hinter einem Proxy befinden. Versuchen Sie stattdessen Folgendes auszuführen.

git clone http://github.com/creationix/nvm.git .nvm
Travis
quelle
2
Das .nvmsollte ein Verzeichnis sein. Es wird über den folgenden Befehl installiert git clone git://github.com/creationix/nvm.git $NVM_TARGET. Sie haben zuvor gesagt, dass Sie versucht haben, diesen Befehl selbst auszuführen, und er ist fehlgeschlagen? Höchstwahrscheinlich stehen Sie hinter einem Proxy und sind wahrscheinlich nicht konfiguriert. Versuchen Sie stattdessen, Folgendes auszuführen. git clone http://github.com/creationix/nvm.git .nvm
Travis
21
haben auch die Linie, aber 'source ~ / .nvm / nvm.sh' funktioniert
K - Die Toxizität in SO wächst.
2
Wenn der .nvm-Ordner leer ist, liegt dies wahrscheinlich daran, dass das Abrufen des Repos fehlgeschlagen ist, weil die Lizenz für die xcode-Vereinbarung nicht akzeptiert wurde. Das Ausführen sudo xcodebuild -licenseund Akzeptieren der Lizenz (indem Sie darauf drängen space, das Ende der Lizenz zu erreichen und deren Bedingungen zuzustimmen) reicht aus.
Pierre Criulanscy
4
Möglicherweise müssen Sie auch source .bashrcoder source .profileabhängig
Henry Tseng
1
Fast immer sind diese Dateien in Ihrem Home-Verzeichnis vorhanden. source $HOME/.bashrc, etc.
Travis
634

Ich denke, Sie haben diesen Schritt verpasst:

source ~/.nvm/nvm.sh

Sie können diesen Befehl auf der Bash ausführen ODER ihn in die Datei /.bashrc oder ~ / .profile oder ~ / .zshrc einfügen, um ihn automatisch zu laden

https://github.com/creationix/nvm

Deepak Lamichhane
quelle
5
Lassen Sie uns die Dokumentation verbessern. Ich habe ein Problem im NVM-Repo erstellt: github.com/creationix/nvm/issues/748
Jonny Burger
3
Ich habe dies mehrmals manuell ausgeführt, bis ich es schließlich in meine .bashrc!
Brady Dowling
2
Das hat bei mir funktioniert, aber um es zu automatisieren, musste ich zuerst ein Profil erstellen. "touch ~ / .profile", "open ~ / .profile", oben einfügen, speichern + schließen. funktioniert jetzt in neuen Fenstern
Sonic Soul
6
Das Hinzufügen zu ~/.bash_profilewar das, was für mich funktioniert hat
spencer.sm
6
Das hat bei mir funktioniert. Ich habe source ~/.nvm/nvm.shauf meine ~/.zshrcund jetzt nvmfunktioniert jedes Mal
Eddy Vinck
88

Das funktioniert bei mir:

  1. nvmFühren Sie dies vor der Installation im Terminal aus:touch ~/.bash_profile

  2. Führen Sie dies anschließend im Terminal aus:
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  3. Wichtig ... - Vergessen Sie NICHT, Ihr Terminal neu zu starten ODER den Befehl zu verwenden source ~/.nvm/nvm.sh(dadurch werden die verfügbaren Befehle in Ihrem Systempfad aktualisiert).

  4. Verwenden nvm --versionSie im Terminal den Befehl und Sie sollten die Version sehen

Alireza
quelle
8
3) Vergessen Sie nicht, Ihre Terminal-Schlüsselkomponente neu zu starten! Deshalb hat meine nicht funktioniert. Danke
Sebastian
1
Wie kann man "ihre Terminal-Schlüsselkomponente neu starten"?
Edward
46

source ~/.nvm/nvm.sh Fügen Sie diese Zeile zu ~ / .bashrc, ~ / .profile oder ~ / .zshrc hinzu

user2015258
quelle
4
Dies ist die "permanente" Lösung, die sich über mehrere Shells oder Shell-Sitzungen erstreckt.
Ahnbizcad
Dies ist die einzige Antwort, die funktionieren wird. Auch nach mehrmaligem Öffnen des Terminals. Vergessen Sie nicht, Ihr Terminal neu zu starten, sobald Sie dies tun :)
coderpc
40

Schnelle Antwort

Finden Sie Folgendes heraus:

  1. Welche Shell Ihr Terminal verwendet, geben Sie Folgendes ein: echo $0um herauszufinden (funktioniert normalerweise)
  2. Welche Startdatei lädt diese Shell beim Start (NICHT die Shell- Startdatei anmelden , die normale Shell-Startdatei? , es gibt einen Unterschied!)
  3. In source ~/.nvm/nvm.shauf diese Datei (unter der Annahme , dass Datei an dieser Stelle vorhanden ist , es ist die Standard - Installationsverzeichnis)
  4. Starten Sie eine neue Terminalsitzung
  5. Profitieren?

Beispiel

Wie Sie sehen können, heißt es zshund nichtbash . Geben Sie hier die Bildbeschreibung ein

Um dies zu beheben, musste ich source ~/.nvm/nvm.shder ~/.zshrcDatei hinzufügen , dass beim Starten eines neuen Terminals mein Deepin Terminal zsh liest ~/.zshrcund nicht Bashs~/.bashrc .

Warum passiert das

Dies liegt daran, dass bei der Installation von NVM Code hinzugefügt wird ~/.bashrc, da mein Terminal Deepin Terminal verwendet zshund nicht bashgelesen wird~/.bashrc und daher niemals NVM lädt.

Mit anderen Worten: Dies ist ein NVM-Fehler.

Mehr zshdazu finden Sie in einer der Antworten hier .

K - Die Toxizität in SO nimmt zu.
quelle
Sie können einfach zsh am Ende des Curl-Befehls einfügen. zB: curl raw.github.com/creationix/nvm/master/install.sh | zsh
Prabhakar
22

In macOS musste ich es mit dem source ~/.nvm/nvm.shBefehl beschaffen, um dieses Problem zu beheben.

Fügen Sie danach diese Zeilen hinzu

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

auf, ~/.bash_profiledamit nvm beim Login automatisch bezogen wird.

hd84335
quelle
11

Alle Antworten auf diese Fragen sind nützlich. Besonders die Antwort von Travis hat mir geholfen. Für Mac OS X-Benutzer möchte ich einige Schritte bereitstellen, die ihnen helfen, mit der Neuinstallation von Node Version Manager aka nvm zu arbeiten.

Installation und Verwendung von nvm unter Mac OS X.

Hier sind die Schritte für die Neuinstallation von nvm und die problemlose Verwendung:

  • Installieren Sie Homebrew von hier aus .
  • Installieren Sie nvm mit Homebrew

    brew update brew install nvm

  • Erstellen Sie ein .nvmVerzeichnis am ~/.nvmSpeicherort.

    mkdir ~/.nvm

  • Wenn Sie keine .bash_profileDatei für das OS X-Terminal eingerichtet haben, erstellen Sie bitte eine .bash_profileauf der Stammebene:

    nano ~/.bash_profile

  • Fügen Sie den folgenden Code in das ein .bash_profileund drücken Sie CTRL + Odie Eingabetaste, um die .bash_profileDatei zu speichern . Drücken Sie CTRL + X, um den Editor zu verlassen:

    export NVM_DIR=~/.nvm source $(brew --prefix nvm)/nvm.sh

  • Jetzt entweder ganz ( CMD + Q) das Terminal oder unten Befehl ausführen, um .bash_profileEinstellungen zu laden :

    source ~/.bash_profile

  • Führen Sie nun den nvm lsBefehl aus, um die Liste aller installierten nodejs-Versionen abzurufen.

S.Mishra
quelle
Vielen Dank, ich denke, was mir gefehlt hat, war das Erstellen des .nvmVerzeichnisses.
icarovirtual
11

Fügen Sie zuerst die folgenden Zeilen in die Datei ~ / .bashrc ein

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

Öffnen Sie dann das Terminal und geben Sie das Skript nvm.sh ein

source ~/.nvm/nvm.sh
KARTHIKEYAN.A
quelle
8

OSX 10.15.0 Catalina (veröffentlicht im November 2019) hat die Standard-Shell in zsh geändert.

Die Standard-Shell war zuvor Bash.

Der auf der nvm GitHub-Seite angegebene Installationsbefehl muss so angepasst werden, dass am Ende "zsh" angezeigt wird .

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | zsh

Hinweis: Möglicherweise müssen Sie .rcvorher sicherstellen, dass die Datei für zsh vorhanden ist:

touch ~/.zsrhrc
Ben Aston
quelle
5

Nicht direkt mit der Frage verbunden, aber es gibt ein ähnliches Problem, das auftreten kann. Schauen Sie sich diese Frage an: nvm kann nicht von new bash ausgeführt werden


Hier ist meine Antwort auf diesen Beitrag, nur als Referenz:

Wenn Sie von einer neuen Bash-Instanz ausgeführt werden und den Initialisierungscode in Ihrem ~ / .bashrc, ~ / .bash_profile usw. haben, müssen Sie diese Initialisierungsdatei auf Bedingungen überprüfen.

Unter Ubuntu 14 gibt es Folgendes:

case $- in
    *i*) ;;
      *) return;;
esac

In Zeile 6 wird die Ausführung angehalten, wenn bash nicht mit dem Flag "-i" (interaktiv) ausgeführt wird. Sie müssten also Folgendes ausführen:

bash -i

Außerdem befindet sich am Ende der Datei ein

[ -z "$PS1" ] && return

Dadurch wird die Ausführung angehalten, wenn sie nicht mit $ PS1 ausgeführt wird (wie bei einer Remote-SSH-Sitzung).

Wenn Sie keine Umgebungsvariablen oder Flags hinzufügen möchten, müssen Sie diese Bedingungen aus Ihrer Initialisierungsdatei entfernen.

Hoffe das ist hilfreich.

Alan Sikora
quelle
5

Wenn Sie OS X verwenden, müssen Sie möglicherweise Ihre .bash_profile-Datei erstellen, bevor Sie den Installationsbefehl ausführen können. Das hat es für mich getan.

Erstellen Sie die Profildatei

touch ~/.bash_profile

Führen Sie die Installation erneut aus, und diesmal wird eine relevante Zeile in der Ausgabe angezeigt.

=> Quellzeichenfolge an /Users/{username}/.bash_profile anhängen

Laden Sie Ihr Profil neu (oder schließen Sie das Terminalfenster / öffnen Sie es erneut).

.  ~/.bash_profile
Nicolas Bouliane
quelle
5

Für Mac OS:

  1. Terminal öffnen
  2. Lauf touch ~/.bash_profile
  3. Lauf vi ~/.bash_profile
  4. Art source ~/.nvm/nvm.sh
  5. Drücken Sie Shift + Escund geben Sie ein wqund drücken Sieenter
  6. Getan.
Arjun Kesava
quelle
In Ubuntu 18.04 brauchte ich nur: 4. Geben Sie source ~ / .nvm / nvm.sh ein und vielen Dank!
Darnell Lynch
4

Fügen Sie den Dateien die folgenden Zeilen hinzu ~/.bashrcund ~/.bash_profile:

# NVM changes
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

und starten Sie das Terminal neu oder tun Sie source ~/.bashrcoder source ~/.bash_profile. Wenn Sie den Befehl für nvm ausführen müssen, fügen Sie auch die folgende Zeile hinzu:

[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

Zusammen mit den obigen Zeilen zu ~/.bashrcund ~/.bash_profile.

vantony
quelle
4

Für MacOS;

Auf Terminal ausführen>

open ~/.bash_profile

Fügen Sie all dies ein =

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Yunus ER
quelle
2

Das nvm-Installationsskript fügt Ihrem Standard standardmäßig Initialisierungscode hinzu $HOME/.profile , der nur von einer Anmeldeshell geladen wird (in einer Desktop-Umgebung wird möglicherweise nie eine Anmeldeshell angezeigt).

Der Befehl nvm in Ihrer Login-Shell wird nicht an Sub-Shells weitergegeben (z. B. Konsolenfenster und IDE-Terminals nach dem Anmelden). Dieses Snippet in Ihrem $HOME/.bashrcTestament lädt nvm nur, wenn es sich um eine interaktive Shell handelt und noch nicht geladen wurde

# if nvm dir is not set and the standard nvm directory exists
if [ -z "$NVM_DIR" -a -d "$HOME/.nvm" ] ; then
# set nvm dir
  export NVM_DIR="$HOME/.nvm"
fi

# if nvm dir is set and this shell is interactive
if [ -d "$NVM_DIR" -a -n "$PS1" ] ; then
  # if nvm command is not defined
  if ! type -t nvm >/dev/null ; then
    # set it
    source "$NVM_DIR/nvm.sh"
  fi
fi

Wenn Sie dies in Ihre $HOME/.bashrcDatei einfügen, wird das fehlende NVM-Problem in interaktiven Bash-Shells behoben, selbst von einer GUI aus, und selbst wenn NVM an einem nicht standardmäßigen Speicherort installiert ist.

Warren MacEvoy
quelle
2

Ich hatte dieses Problem behoben.

  1. Berühren Sie ~ / .bash_profile
  2. öffne ~ / .bash_profile
  3. Einfügenexport NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
ChenguangTian
quelle
2

Denn das Problem wurde behoben, als ich umzog

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

bis zum Ende von .zshrc

Almeynman
quelle
1

Auf Debian sowie das Hinzufügen der folgenden Zeilen zu meinem .bash_profile als eine der oben genannten Antworten. Ich musste auch meine Terminaleinstellungen öffnen (Bearbeiten -> Profileinstellungen -> Befehl) und 'Befehl als Anmeldeshell ausführen' aktivieren, damit er funktioniert.

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Bearbeiten: Für Mac-Benutzer ist zu beachten, dass macOS beim Start des Terminals nicht .bashrc liest. Daher ist die Verwendung von .bash_profile vorzuziehen. Siehe hier.

Tomhughes
quelle
1

Für meinen Fall, weil ich Fisch benutze . Wenn ich keinen Fisch starte, tippe einfach nvm und es wird kein Fehler angezeigt.

JerryZhou
quelle
Wie hast du den Fisch aufgehalten ?
Matko
Typ exit @MobileDream.
JerryZhou
1

Das Windows 8.1 x64gleiche geschah mit mir und erhielt die folgende Nachricht.

nvm install 8.3.0 bash: nvm: Befehl Windows nicht gefunden

Befolgen oder überprüfen Sie die folgenden Schritte:

zuerst installieren coreybutler/nvm-windowsvon github.com. Derzeit verfügbare neueste Version 1.1.5 nvm-setup.zip, später das Setup extrahiert nvm-setup.exeund an folgenden Speicherorten installiert:

NVM_HOME    : C:\Users\Administrator\nvm
NVM_SYMLINK : C:\Program Files\nodejs

In der Zwischenzeit verwaltet das Setup die Umgebungsvariable Pathwie oben für Sie angegeben.

Jetzt laufen Git Bashals Administrator und dann.

$ nvm install 8.3.0 all

Downloading node.js version 8.3.0 (64-bit)...
Complete
Creating C:\Users\Administrator\nvm\temp

Downloading npm version 5.3.0... Complete
Installing npm v5.3.0...

Installation complete. If you want to use this version, type

nvm use 8.3.0

$ nvm use 8.3.0
Now using node v8.3.0 (64-bit)

Führen Sie hier Ihren Befehl ohne Präfix aus $. Er wird hier nur angezeigt, um ihn als Befehlszeile zu bestimmen. Jetzt überprüfen wir die NVM-Version.

$ nvm --version
Running version 1.1.5.

Usage:
-----------------------

Wenn Sie Probleme bei nvmder Installation haben node, können Sie diese Liste der verfügbaren nodejsVersionen hier https://nodejs.org/download/release/anzeigen und das richtige Installationsprogramm gemäß Ihrer Anforderungsversion auswählen, das gleich oder höher als v6.3.0direkt ist.

ArifMustafa
quelle
0

Bei mir hat das geklappt. Überprüfen Sie zunächst, ob die Datei .bashrcdie folgende Zeile enthält

[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

Jetzt bashrcwird für jede Terminalsitzung geladen. Starten Sie daher das Terminal neu, damit es wieder geladen wird und Sie können loslegen.

priyankvex
quelle
0

Ich hatte kürzlich auch das gleiche Problem und die Beschaffung von nvm-Bash-Skripten mithilfe von source ~ / .nvm / nvm.sh hat dieses Problem behoben.

Vishnu Dubey
quelle
0

Verwenden Sie die folgenden Codes

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8
Vivekanand Panda
quelle
0

Nachdem ich mehrere Schritte ausprobiert habe, bin ich mir nicht sicher, was das Problem in meinem Fall war, aber das Ausführen hat geholfen:

touch ~/.bash_profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash

Geprüft von nvm --version

nvm -v Ausgabe

Mohammed Zameer
quelle