Homebrew installa nvm ma nvm non può essere trovato in seguito?


95

Sto usando homebrewe oh-my-zshsu una nuova installazione di OSX 10.10.1. Ho ricevuto nvmtramite homebrewe poi ho tentato di eseguirlo ma dice - zsh: command not found: nvm

Qualche idea su quale sia il problema? Sono stato in grado di installare e utilizzare git senza problemi ...

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


AGGIORNATO AL 20/09/2019

Come affermato da risposte più recenti di DarkPurple141 e Elise van Looij . nvmnon sembra essere compatibile con homebrew. Questo è anche affermato nel repository ufficiale nvm-sh che si trova qui .

L'installazione homebrew non è supportata. In caso di problemi con nvm installato in homebrew, prima di presentare un problema, disinstallalo e installalo utilizzando le istruzioni seguenti.

Nota: se stai usando zsh puoi facilmente installare nvm come plugin zsh. Installa zsh-nvm ed esegui nvm upgrade per l'aggiornamento.

I seguenti passaggi dovrebbero aiutare:

  1. $ brew uninstall nvm
  2. $ brew cleanup(solo per buona misura)
  3. $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Verificare che nvm sia stato installato correttamente eseguendo $ command -v nvm.

    4.a Se la risposta è qualcosa di diverso da $ nvm, aggiungi le seguenti due righe al file ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Riavvia il computer (puoi provare a chiudere Terminal e riavviarlo prima) 4.c ​​$ command -v nvm should now returnnvm`

  5. Ora aggiorna Node.js con $ nvm install --lts

  6. Aggiorna npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Finalmente successo! Beh, per me e spero anche per te.

3
Persiste se riavvii Terminal?
Aaron Brager

Prova a digitare rehash o ad aprire una nuova shell. A volte zsh non raccoglie le aggiunte.
Doon

Ho chiuso la shell, riavviato il sistema e niente. Ripensato e senza fortuna.
Dayan

Che ne dici di brew link nvm che fa qualcosa?
Doon

Avviso: già collegato: /usr/local/Cellar/nvm/0.20.0 Per ricollegare: brew unlink nvm && brew link nvm
Dayan

Risposte:


127

Hai seguito le istruzioni elencate nelle avvertenze?

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

Senza la configurazione extra non sembra che troverà NVM per impostazione predefinita.


3
Grazie per l'avviso Doon, di cui non ero a conoscenza brew info, è ancora nuovo homebrew:) Funziona bene ora dopo aver seguito questi passaggi.
Dayan

Dovrebbero essere visualizzati anche al termine dell'installazione. Ma se non li stai cercando, possono mancare.
Doon

4
Ho dovuto aggiungere questo per ~/.bash_profilefarlo funzionare: /
Janaka

1
hmm. Non uso bash (preferisco zsh), ma sembra OSX terminal.app (non uso nemmeno il terminale, preferisco Iterm2), apre ogni shell come shell di login quindi sì .bash_profile sarebbe corretto in quel caso. anche le informazioni sono cambiate. quindi dovresti fare riferimento all'ultima versione ..
Doon

Grazie! Mi mancava questa linea source $(brew --prefix nvm)/nvm.sh. Aggiunto al mio .zshrh
John Ottenlips

42

Ci sono DUE cose che devi fare. Segui le avvertenze mostrate dopo l'installazione di nvm tramite brew, e ALLORA devi attivare / ricaricare le modifiche .bash_profile.

  1. Correre brew install nvm
  2. Segui gli avvertimenti mostrati nella console, i miei erano i seguenti, il tuo POTREBBE essere diverso!:

Aggiungere quanto segue a ~ / .bash_profile o al file di configurazione della shell desiderato:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Esegui . ~/.bash_profileper applicare le modifiche apportate al tuo file .bash_profile

Questo è utile per gli utenti di Bash, ma l'OP è su zsh. Immagino che lo stesso si applichi alle .zshrcmodifiche necessarie.
tripleee

5

Sebbene la risposta accettata tecnicamente funzioni, vale la pena notare che l'installazione di Homebrew non è ufficialmente supportata dal nvmpacchetto. Il modo consigliato per evitare problemi come quelli sollevati sopra è applicare uno dei seguenti metodi di installazione.

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

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


3

Ho passato un paio d'ore a girare su questo problema, ma sono giunto alla conclusione che DarkPurple141 ha ragione: nvm non è compatibile con Homebrew, come affermano sul loro nodo Github nvm-sh / nvm Version Manager . Homebrew installerà nvm e tutto sembra a posto, finché non si cerca di ottenere npm per installare un modulo, Mocha nel mio caso. Questo mi ha riportato indietro al temuto errore:

ERR! Errore: EACCES: autorizzazione negata, accesso a "/ usr / local / lib / node_modules"

NOTA: al passaggio 3, assicurarsi di sostituire la versione con la versione corretta.

La soluzione, su MacOS 10.14 Mojave, era:

  1. $ brew uninstall nvm
  2. $ brew cleanup(solo per buona misura)
  3. $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Verificare che nvm sia stato installato correttamente eseguendo $ command -v nvm.

    4.a Se la risposta è qualcosa di diverso da $ nvm, aggiungi le seguenti due righe al file ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Riavvia il computer (puoi provare a chiudere Terminal e riavviarlo prima) 4.c ​​$ command -v nvm should now returnnvm`

  5. Ora aggiorna Node.js con $ nvm install --lts

  6. Aggiorna npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. Finalmente successo! Beh, per me e spero anche per te.

1

Per installare nvm, brew install nvm

Per eseguire nvm dopo l'installazione o solo una volta, $(brew --prefix nvm)/nvm.sh

Per eseguire nvm ogni volta che si zshapre

  1. nano ~/.zshrc
  2. Aggiungi questa linea source $(brew --prefix nvm)/nvm.sh

1

Vorrei aggiungere che la posizione di nvm su GitHub è cambiata e la versione è stata eliminata. Il comando curl ora dovrebbe essere:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash

0

Il motivo per cui dovresti ricaricare i tuoi profili bash o qualsiasi altro file bash potrebbe essere perché il comando nvm potrebbe non essere un programma ma una funzione definita e può essere utilizzata solo se il file bash corrispondente è originato.

Su un sistema che ho controllato

which nvm 

non funziona ma

nvm list

fa. Ciò significa che puoi usare la parola "nvm" per invocare qualcosa. Quel qualcosa non è un programma. Nel caso attuale, è una funzione che può essere verificata da

typeset -F | grep -P ' nvm$'

quali uscite

declare -F nvm

il che significa che nvm è una funzione, il cui corpo può essere ispezionato eseguendo

type -F nvm

1
Bello .. Ma come è questa una risposta?
Dayan

1
Grazie per l'aggiornamento Dayan - ha modificato la risposta - il motivo per cui non sono riuscito a trovarlo perché facevo affidamento sul fatto che fosse un programma ma era definito come una funzione. Volevo evidenziarlo.
Saurabh Hirani

Per verificare se nvm è stato installato correttamente, utilizzare 'comando -v nvm' nel Terminale. La risposta dovrebbe essere "nvm". In caso contrario, segui le istruzioni su github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij

0

Una possibilità se è brewstato utilizzato è che nvmpotrebbe essere scollegato, specialmente se è stato installato da un altro utente MAC OS.

In questo caso, eseguire:

brew link nvm


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.