Instalacja węzła Menedżer wersji - nie znaleziono polecenia nvm

303

Próbuję zainstalować NVM zgodnie z tymi instrukcjami

Wpisałem to polecenie w terminalu:

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

Po uruchomieniu instalacji ponownie uruchamiam terminal i próbuję zainstalować Node.js za pomocą tego polecenia:

$ nvm install 0.8

ale dostaję odpowiedź:

-bash: nvm: command not found

Nie jestem pewien, co robię źle tutaj.

Dodatkowe informacje--

Rozglądałem się za rozwiązaniami z innych postów i forów. Znalazłem inne rozwiązanie

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

ale za każdym razem próbuję tego. Każda pomoc będzie mile widziana. Dzięki.

Jordania
źródło

Odpowiedzi:

369

Sprawdzić .bash_profile, .zshrcczy .profileplik. Najprawdopodobniej wystąpił problem podczas instalacji.

Powinieneś mieć następujące na końcu jednego z tych plików.

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

To . $HOME/.nvm/nvm.shjest to samo cosource $HOME/.nvm/nvm.sh

Zobacz: Pozyskiwanie pliku

Możesz także sprawdzić, czy masz .nvmfolder.

ls -a | grep .nvm

Jeśli brakuje tego folderu, instalacja nie uruchomiła polecenia git. Może to być spowodowane tym, że stoi za serwerem proxy. Zamiast tego spróbuj uruchomić następujące.

git clone http://github.com/creationix/nvm.git .nvm
Travis
źródło
2
.nvmPowinien być katalogiem. Jest instalowany za pomocą następującego polecenia git clone git://github.com/creationix/nvm.git $NVM_TARGET. Powiedziałeś wcześniej, że próbowałeś uruchomić to polecenie i nie udało się? Najprawdopodobniej jesteś za proxy i prawdopodobnie nie jesteś skonfigurowany. Zamiast tego spróbuj uruchomić następujące. git clone http://github.com/creationix/nvm.git .nvm
travis,
21
mają również wiersz, ale działa „source ~ / .nvm / nvm.sh”
K - Toksyczność w SO rośnie.
2
Jeśli folder .nvm jest pusty, to prawdopodobnie dlatego, że pobieranie repozytorium nie powiodło się, ponieważ licencja xcode nie została zaakceptowana. Uruchamianie sudo xcodebuild -licensei akceptowanie licencji (poprzez naciskanie spacena osiągnięcie końca licencji i zaakceptowanie jej warunków) załatwia sprawę.
Pierre Criulanscy
4
Może być konieczne source .bashrclub source .profilezależne
Henry Tseng
1
Prawie zawsze te pliki będą istniały w twoim domu, reż. source $HOME/.bashrc, itp.
Travis
634

Myślę, że przegapiłeś ten krok:

source ~/.nvm/nvm.sh

Możesz uruchomić to polecenie na bash LUB możesz umieścić je w pliku /.bashrc lub ~ / .profile lub ~ / .zshrc, aby automatycznie załadować

https://github.com/creationix/nvm

Deepak Lamichhane
źródło
5
Ulepszmy dokumentację. Utworzyłem problem na repozytorium nvm: github.com/creationix/nvm/issues/748
Jonny Burger
3
Wykonałem to ręcznie wiele razy, aż w końcu umieściłem go w moim .bashrc!
Brady Dowling
2
działało to dla mnie, ale aby to zautomatyzować, musiałem najpierw utworzyć profil. „touch ~ / .profile”, „open ~ / .profile”, wklej powyżej, zapisz + zamknij. działa teraz w nowych oknach
Sonic Soul
6
Dodanie go do ~/.bash_profiletego, co zadziałało dla mnie
spencer.sm
6
To zadziałało dla mnie. Dodałem source ~/.nvm/nvm.shdo mojej ~/.zshrci teraz nvmdziała za każdym razem
Eddy Vinck
88

To działa dla mnie:

  1. Przed instalacją nvmuruchom to w terminalu:touch ~/.bash_profile

  2. Następnie uruchom to w terminalu:
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

  3. Ważne ... - NIE zapomnij zrestartować terminala LUB użyj polecenia source ~/.nvm/nvm.sh(spowoduje to odświeżenie dostępnych poleceń w ścieżce systemowej).

  4. W terminalu użyj polecenia nvm --versioni powinieneś zobaczyć wersję

Alireza
źródło
8
3) Nie zapomnij ponownie uruchomić terminalu Kluczowy komponent! Dlatego mój nie działał. Dzięki
Sebastian
1
Jak „ponownie uruchomić [ich] terminal kluczowy składnik”?
Edward
46

source ~/.nvm/nvm.sh Dodaj ten wiersz do ~ / .bashrc, ~ / .profile lub ~ / .zshrc

użytkownik2015258
źródło
4
jest to „trwałe” rozwiązanie, które działa w wielu powłokach lub sesjach powłoki.
ahnbizcad
To jedyna odpowiedź, która zadziała. Nawet po wielokrotnym otwarciu terminala. Na koniec nie zapomnij zrestartować terminala, gdy to zrobisz :)
coderpc
40

Szybka odpowiedź

Dowiedz się, co następuje:

  1. Jakiej powłoki używa twój terminal, wpisz: echo $0aby dowiedzieć się (normalnie działa)
  2. Który plik startowy ładuje tę powłokę podczas uruchamiania (NIE loguje się plik startowy powłoki , zwykły plik startowy powłoki , jest różnica!)
  3. Dodaj source ~/.nvm/nvm.shdo tego pliku (zakładając, że plik istnieje w tej lokalizacji, jest to domyślna lokalizacja instalacji)
  4. Rozpocznij nową sesję terminalową
  5. Zysk?

Przykład

Jak widać, stwierdza zshi nie bash. wprowadź opis zdjęcia tutaj

Aby to naprawić, musiałem dodać source ~/.nvm/nvm.sh do ~/.zshrcpliku, ponieważ podczas uruchamiania nowego terminalu mój Deepin Terminal zsh czyta, ~/.zshrca nie bash ~/.bashrc.

Dlaczego to się dzieje

Dzieje się tak, ponieważ podczas instalacji NVM dodaje kod ~/.bashrc, jak używa mój terminal Deepin Terminalzsh a nie bashnigdy nie czyta ~/.bashrci dlatego nigdy nie ładuje NVM.

Innymi słowy: jest to wina NVM.

Więcej informacji zshmożna znaleźć na jednej z odpowiedzi tutaj .

K - Toksyczność w SO rośnie.
źródło
możesz po prostu umieścić zsh na końcu polecenia curl. np .: curl raw.github.com/creationix/nvm/master/install.sh | zsh
Prabhakar
22

W systemie macOS musiałem go za pomocą źródła source ~/.nvm/nvm.sh polecenia, aby rozwiązać ten problem.

Następnie dodaj te linie

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

na ~/.bash_profile, aby NVM był pozyskiwany automatycznie po zalogowaniu.

hd84335
źródło
11

Wszystkie odpowiedzi na te pytania są przydatne. Pomogła mi zwłaszcza odpowiedź Travisa. Użytkownikom Mac OS X chciałbym przedstawić kilka kroków, które pomogą im w pracy ze świeżą instalacją Node Version Manager aka nvm.

Instalowanie i używanie nvm na Mac OS X

Oto kroki do nowej instalacji NVM i korzystania z niej bez żadnych problemów:

  • Zainstaluj homebrew stąd .
  • Za pomocą homebrew zainstaluj NVM

    brew update brew install nvm

  • Utwórz .nvmkatalog w ~/.nvmlokalizacji.

    mkdir ~/.nvm

  • Teraz, jeśli nie masz .bash_profilekonfiguracji plików dla terminala OS X, utwórz .bash_profilena poziomie głównym:

    nano ~/.bash_profile

  • Wklej poniższy kod w .bash_profilei naciśnij CTRL + Oi naciśnij klawisz Enter, aby zapisać .bash_profileplik. Naciśnij, CTRL + Xaby wyjść z edytora:

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

  • Teraz albo całkiem ( CMD + Q) terminal, albo uruchom poniżej polecenia, aby załadować .bash_profileustawienia:

    source ~/.bash_profile

  • Teraz uruchom nvm lspolecenie, aby uzyskać listę wszystkich zainstalowanych wersji nodejs.

S.Mishra
źródło
Dziękuję, myślę, że to, czego mi brakowało, to utworzenie .nvmkatalogu.
icarovirtual
11

Najpierw dodaj następujące wiersze w pliku ~ / .bashrc

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

następnie otwórz terminal i wprowadź skrypt nvm.sh

source ~/.nvm/nvm.sh
KARTHIKEYAN.A
źródło
8

OSX 10.15.0 Catalina (wydany w listopadzie 2019 r.) Zmienił domyślną powłokę na zsh.

Domyślną powłoką była wcześniej bash.

Polecenie instalacji podane na stronie GitHub nvm musi zostać poprawione, aby na końcu zawierało „zsh”.

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

Uwaga: może być konieczne wcześniejsze upewnienie się, że .rcplik dla zsh jest obecny:

touch ~/.zsrhrc
Ben Aston
źródło
5

Nie ma bezpośredniego związku z pytaniem, ale może się zdarzyć podobny problem, spójrz na to pytanie: Nie można wykonać NVM z nowego basha


Oto moja odpowiedź na ten post, tylko w celach informacyjnych:

Jeśli korzystasz z nowej instancji bash i masz kod inicjalizacyjny na swoim ~ / .bashrc, ~ / .bash_profile itp., Musisz sprawdzić ten plik inicjalizacyjny pod kątem warunków warunkowych.

W Ubuntu 14 jest:

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

W linii 6 zatrzyma się jego wykonanie, jeśli bash nie jest uruchamiany z flagą „-i” (interaktywną). Musisz więc uruchomić:

bash -i

Ponadto na końcu pliku znajduje się

[ -z "$PS1" ] && return

Spowoduje to zatrzymanie jego wykonania, jeśli nie zostanie uruchomiony z ustawionym $ PS1 (jak na zdalnej sesji ssh).

Jeśli nie chcesz dodawać żadnych zmiennych lub flag env, musisz usunąć te warunki z pliku inicjalizacji.

Mam nadzieję, że to jest pomocne.

Alan Sikora
źródło
5

Jeśli używasz OS X, może być konieczne utworzenie pliku .bash_profile przed uruchomieniem polecenia instalacji. To mi zrobiło.

Utwórz plik profilu

touch ~/.bash_profile

Uruchom ponownie instalację, a tym razem zobaczysz odpowiedni wiersz w danych wyjściowych.

=> Dołączanie ciągu źródłowego do /Users/{username}/.bash_profile

Załaduj ponownie swój profil (lub zamknij / ponownie otwórz okno Terminal).

.  ~/.bash_profile
Nicolas Bouliane
źródło
5

W systemie Mac OS:

  1. Otwórz terminal
  2. Biegać touch ~/.bash_profile
  3. Biegać vi ~/.bash_profile
  4. Rodzaj source ~/.nvm/nvm.sh
  5. Naciśnij Shift + Esci wpiszwq i naciśnijenter
  6. Gotowy.
Arjun Kesava
źródło
W Ubuntu 18.04 potrzebowałem tylko: 4. Wpisz source ~ / .nvm / nvm.sh i dziękuję bardzo!
Darnell Lynch
4

Dodaj następujące wiersze do plików ~/.bashrci ~/.bash_profile:

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

i ponownie uruchom terminal lub wykonaj source ~/.bashrclub source ~/.bash_profile. Jeśli potrzebujesz uzupełnienia polecenia dla NVM, dodaj również wiersz:

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

Wraz z powyższymi liniami do ~/.bashrci ~/.bash_profile.

vantony
źródło
4

Dla MacOS;

Uruchom na terminalu>

open ~/.bash_profile

Wklej to wszystko =

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
Yunus ER
źródło
2

Skrypt instalacyjny nvm domyślnie dodaje kod inicjujący do twojego $HOME/.profile , który jest ładowany tylko przez powłokę logowania (w środowisku pulpitu możesz nigdy nie zobaczyć powłoki logowania).

Polecenie nvm w powłoce logowania nie jest propagowane do podpowłoki (takiej jak okna konsoli i terminale IDE po zalogowaniu). Ten fragment $HOME/.bashrckodu ładuje nvm tylko wtedy, gdy jest interaktywną powłoką i nie został jeszcze załadowany

# 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

Umieszczenie tego w $HOME/.bashrcpliku naprawi problem braku nvm w interaktywnych powłokach bash, nawet z GUI, a nawet jeśli nvm jest zainstalowany w niestandardowej lokalizacji.

Warren MacEvoy
źródło
2

Naprawiłem ten problem.

  1. dotknij ~ / .bash_profile
  2. otwórz ~ / .bash_profile
  3. pastaexport 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
źródło
2

Ponieważ problem został rozwiązany, kiedy się przeprowadziłem

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

do końca .zshrc

almeynman
źródło
1

Na Debianie, a także dodając poniższe wiersze do mojego .bash_profile, jak powiedziała jedna z powyższych odpowiedzi. Musiałem także otworzyć preferencje terminala (Edycja -> Preferencje profilu -> Polecenie) i włączyć „Uruchom polecenie jako powłokę logowania”, aby działało.

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

Edycja: dla tych na komputerach Mac należy pamiętać, że system macOS nie odczytuje pliku .bashrc podczas uruchamiania terminalu, dlatego zaleca się użycie pliku .bash_profile. Spójrz tutaj.

tomhughes
źródło
1

W moim przypadku to dlatego, że używam ryb . jeśli nie zacznę ryb , po prostu wpisz nvm nie będzie teraz błędu.

JerryZhou
źródło
Jak powstrzymałeś rybę ?
Matko
wpisz exit @MobileDream.
JerryZhou,
1

To Windows 8.1 x64samo stało się ze mną i otrzymałem następującą wiadomość.

nvm install 8.3.0 bash: nvm: polecenie nie znaleziono windows

Postępuj zgodnie z poniższymi krokami lub zweryfikuj je:

pierwsza instalacja coreybutler/nvm-windowsz github.com. Obecnie dostępna najnowsza wersja 1.1.5 nvm-setup.zip, później rozpakowano instalator nvm-setup.exei zainstalowano jako następujące lokalizacje:

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

a tymczasem instalator będzie zarządzał zmienną środowiskową, Pathjak opisano powyżej.

Teraz uruchom Git Bashjako Administrator, a następnie.

$ 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)

tutaj uruchom polecenie bez użycia prefiksu $, pokazane jest tutaj, aby określić je jako wiersz polecenia, a teraz zweryfikujemy wersję nvm.

$ nvm --version
Running version 1.1.5.

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

jeśli masz problem z użyciem nvmdo instalacji node, możesz zobaczyć tę listę dostępnychnodejs wersji tutaj https://nodejs.org/download/release/i wybrać odpowiedni instalator zgodnie z wersją wymaganą równą lub wyższą niż v6.3.0bezpośrednio.

ArifMustafa
źródło
0

Dla mnie to zadziałało. Najpierw sprawdź, czy plik .bashrcma następujący wiersz

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

Teraz bashrcjest ładowany dla każdej sesji terminala. Uruchom ponownie terminal, aby został ponownie załadowany i powinieneś już iść.

priyankvex
źródło
0

Ostatnio spotkałem się z tym samym problemem i sourcing nvm bash script za pomocą source ~ / .nvm / nvm.sh rozwiązał ten problem.

Wisznu Dubey
źródło
0

Użyj następujących kodów

wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash`
source ~/.nvm/nvm.sh`
nvm install 0.8
Vivekanand Panda
źródło
0

Po wypróbowaniu wielu kroków nie jestem pewien, jaki był problem w moim przypadku, ale uruchomienie tego pomogło:

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

Zweryfikowany przez nvm --version

wyjście nvm -v

Mohammed Zameer
źródło