Homebrew instaluje nvm, ale nie można go później znaleźć?

98

Używam homebrewi oh-my-zshna nowej instalacji OSX 10.10.1. Dostałem się nvmprzez, homebrewa następnie próbowałem go uruchomić, ale mówi - zsh: command not found: nvm

Masz pojęcie, na czym polega problem? Udało mi się zainstalować i używać git w porządku ...

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj


ZAKTUALIZOWANO 9/20/2019

Jak stwierdzono w nowszych odpowiedziach od DarkPurple141 i Elise van Looij . nvmnie wydaje się być zgodny z homebrew. Jest to również określone w oficjalnym repozytorium nvm-sh znajdującym się tutaj .

Instalacja Homebrew nie jest obsługiwana. Jeśli masz problemy z nvm zainstalowanym przez homebrew, przed zgłoszeniem problemu należy go odinstalować i zainstalować zgodnie z instrukcjami poniżej.

Uwaga: jeśli używasz zsh, możesz łatwo zainstalować nvm jako wtyczkę zsh. Zainstaluj zsh-nvm i uruchom aktualizację nvm, aby zaktualizować.

Poniższe kroki powinny pomóc:

  1. $ brew uninstall nvm
  2. $ brew cleanup(tak na wszelki wypadek)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Sprawdź, czy nvm został poprawnie zainstalowany, uruchamiając $ command -v nvm.

    4.a Jeśli odpowiedź jest inna niż $ nvm, dodaj następujące dwie linie do pliku ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Uruchom ponownie komputer (możesz spróbować najpierw zamknąć Terminal i uruchomić go ponownie) 4.c ​​$ command -v nvm should now returnnvm`

  5. Teraz zaktualizuj Node.js za pomocą $ nvm install --lts

  6. Zaktualizuj npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Wreszcie sukces! Cóż, dla mnie i mam nadzieję również dla Ciebie.
Dayan
źródło
3
Czy utrzymuje się, jeśli ponownie uruchomisz Terminal?
Aaron Brager
Spróbuj wpisać rehash lub otworzyć nową powłokę. Czasami zsh nie zbiera dodatków.
Doon
Zamknąłem powłokę, zrestartowałem system i nic. Zrobiłem powtórkę i bez powodzenia.
Dayan
A co powiesz na brew link nvm, który coś robi?
Doon
Ostrzeżenie: już połączone: /usr/local/Cellar/nvm/0.20.0 Aby ponownie połączyć: brew unlink nvm && brew link nvm
Dayan

Odpowiedzi:

129

Czy postępowałeś zgodnie z instrukcjami podanymi w zastrzeżeniach?

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

Bez dodatkowej konfiguracji nie wygląda na to, że domyślnie znajdzie NVM.

Doon
źródło
3
Dziękuję za ostrzeżenia Doon, nie byłem tego świadomy brew info, wciąż nowy homebrew:) Teraz działa dobrze po wykonaniu tych kroków.
Dayan
Powinny zostać wyświetlone również po zakończeniu instalacji. Ale jeśli ich nie szukasz, możesz je przegapić.
Doon
4
Musiałem to dodać, żeby ~/.bash_profiledziałało: /
Janaka
1
hmm. Nie używam basha (wolę zsh), ale wygląda jak terminal OSX .app (nie używam też terminala, wolę Iterm2), otwiera każdą powłokę jako powłokę logowania, więc tak .bash_profile byłby w tym przypadku poprawny. , również informacje uległy zmianie. więc powinieneś zapoznać się z najnowszą wersją ..
Doon
Dzięki! Brakowało mi tej linii source $(brew --prefix nvm)/nvm.sh. Dodałem go do mojego .zshrh
John Ottenlips
44

Musisz zrobić DWIE rzeczy. Postępuj zgodnie z ostrzeżeniami wyświetlanymi po zainstalowaniu nvm przez brew, a NASTĘPNIE musisz aktywować / przeładować zmiany .bash_profile.

  1. Biegać brew install nvm
  2. Postępuj zgodnie z zastrzeżeniami pokazanymi w konsoli, moje były następujące, twoje MOŻE być inne !:

Dodaj następujące elementy do ~ / .bash_profile lub żądanego pliku konfiguracyjnego powłoki:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Uruchom, . ~/.bash_profileaby zastosować zmiany wprowadzone w pliku .bash_profile
redfox05
źródło
Jest to przydatne dla użytkowników Bash, ale OP jest na zsh. Myślę, że to samo dotyczy .zshrcz niezbędnymi modyfikacjami.
tripleee
5

Chociaż zaakceptowana odpowiedź działa technicznie, warto zauważyć, że instalacja Homebrew nie jest oficjalnie obsługiwana przez nvmpakiet. Zalecanym sposobem uniknięcia problemów, takich jak opisane powyżej, jest zastosowanie jednej z poniższych metod instalacji.

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

źródło: https://github.com/creationix/nvm

DarkPurple141
źródło
3

Spędziłem kilka godzin w kółko nad tym problemem, ale doszedłem do wniosku, że DarkPurple141 ma rację: nvm po prostu nie jest kompatybilny z Homebrew, jak twierdzą w swoim węźle Github nvm-sh / nvm Menedżer wersji . Homebrew zainstaluje nvm i wszystko wygląda dobrze, dopóki nie spróbuje się zmusić npm do zainstalowania modułu, w moim przypadku Mocha. To sprowadziło mnie z powrotem do przerażającego błędu:

BŁĄDZIĆ! Błąd: EACCES: odmowa uprawnień, dostęp do „/ usr / local / lib / node_modules”

UWAGA: W kroku 3 upewnij się, że wersja została zastąpiona poprawną wersją.

Rozwiązaniem na MacOS 10.14 Mojave było:

  1. $ brew uninstall nvm
  2. $ brew cleanup(tak na wszelki wypadek)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Sprawdź, czy nvm został poprawnie zainstalowany, uruchamiając $ command -v nvm.

    4.a Jeśli odpowiedź jest inna niż $ nvm, dodaj następujące dwie linie do pliku ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Uruchom ponownie komputer (możesz spróbować najpierw zamknąć Terminal i uruchomić go ponownie) 4.c ​​$ command -v nvm should now returnnvm`

  5. Teraz zaktualizuj Node.js za pomocą $ nvm install --lts

  6. Zaktualizuj npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Wreszcie sukces! Cóż, dla mnie i mam nadzieję również dla Ciebie.
Elise van Looij
źródło
1

Aby zainstalować nvm, brew install nvm

Aby uruchomić nvm po instalacji lub tylko raz, $(brew --prefix nvm)/nvm.sh

Aby uruchomić nvm za każdym razem, gdy się zshotwiera

  1. nano ~/.zshrc
  2. Dodaj tę linię source $(brew --prefix nvm)/nvm.sh
Ricky Dam
źródło
1

Chciałbym dodać, że zmieniła się lokalizacja nvm na githubie i wersja się zderzyła. Teraz polecenie curl powinno wyglądać następująco:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
Onno van der Zee
źródło
0

Powodem, dla którego będziesz musiał ponownie załadować swoje profile bash lub jakiekolwiek inne pliki bash, może być to, że polecenie nvm może nie być programem, ale funkcją, która jest zdefiniowana i może być używana tylko wtedy, gdy pochodzi odpowiedni plik bash.

W systemie, który sprawdziłem

which nvm 

nie działa, ale

nvm list

robi. Oznacza to, że możesz użyć słowa „nvm”, aby coś wywołać. To coś nie jest programem. W tym przypadku jest to funkcja, którą można zweryfikować

typeset -F | grep -P ' nvm$'

które wyjścia

declare -F nvm

co oznacza, że ​​nvm jest funkcją, której treść można sprawdzić wykonując

type -F nvm
Saurabh Hirani
źródło
1
Fajnie ... Ale jak to jest odpowiedź?
Dayan
1
Dzięki za aktualizację Dayan - zredagowałem odpowiedź - powód, dla którego nie mogłem jej znaleźć, ponieważ polegałem na tym, że jest to program, ale został zdefiniowany jako funkcja. Chciałem to podkreślić.
Saurabh Hirani
Aby sprawdzić, czy nvm został poprawnie zainstalowany, użyj „polecenia -v nvm” w terminalu. Odpowiedź powinna brzmieć „nvm”. Jeśli tak nie jest, postępuj zgodnie z instrukcjami na github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij
0

Jedną z możliwości, jeśli brewzostała użyta, jest to, że nvmmoże być odłączony, zwłaszcza jeśli został zainstalowany przez innego użytkownika MAC OS.

W takim przypadku wykonaj:

brew link nvm
Lindoélio Lázaro
źródło