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.

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.


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

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


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.

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

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

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

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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.