¿Homebrew instala nvm pero luego no se puede encontrar nvm?

94

Estoy usando homebrewy oh-my-zshen una instalación nueva de OSX 10.10.1. Llegué nvma través homebrewy luego trató de correr, pero dice - zsh: command not found: NVM

¿Alguna idea de cuál es el problema? Pude instalar y usar git muy bien ...

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


ACTUALIZADO 20/09/2019

Como se indica en respuestas más recientes de DarkPurple141 y Elise van Looij . nvmno parece ser compatible con homebrew. Esto también se indica en el repositorio oficial de nvm-sh que se encuentra aquí .

La instalación de Homebrew no es compatible. Si tiene problemas con nvm instalado por Homebrew, por favor, desinstálelo e instálelo siguiendo las instrucciones a continuación, antes de presentar un problema.

Nota: Si está utilizando zsh, puede instalar nvm fácilmente como un complemento de zsh. Instale zsh-nvm y ejecute nvm upgrade para actualizar.

Los siguientes pasos deberían ayudar:

  1. PS brew uninstall nvm
  2. $ brew cleanup(solo por si acaso)
  3. PS curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  4. Compruebe que nvm se haya instalado correctamente ejecutando $ command -v nvm.

    4.a Si la respuesta no es $ nvm, agregue las dos líneas siguientes al archivo ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Reinicie su computadora (puede intentar cerrar la Terminal y reiniciarla primero) 4.c ​​$ command -v nvm should now returnnvm`

  5. Ahora actualice Node.js con $ nvm install --lts

  6. Actualizar npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. ¡Finalmente, éxito! Bueno, para mí y yo también espero para ti.
Dayan
fuente
3
¿Persiste si reinicia la Terminal?
Aaron Brager
Intente escribir rehash o abrir un nuevo shell. A veces, zsh no detecta adiciones.
Doon
Cerré el shell, reinicié el sistema y nada. Rehash y sin suerte.
Dayan
¿Qué tal brew link nvm que hace algo?
Doon
Advertencia: Ya vinculado: /usr/local/Cellar/nvm/0.20.0 Para volver a vincular: brew unlink nvm && brew link nvm
Dayan

Respuestas:

127

¿Seguiste las instrucciones enumeradas en las advertencias?

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

Sin la configuración adicional, no parece que encuentre NVM por defecto.

Doon
fuente
3
Gracias por el heads up Doon, no estaba al tanto brew info, todavía soy nuevo en homebrew:) Está funcionando bien ahora después de seguir esos pasos.
Dayan
También deben mostrarse después de que se complete la instalación. Pero si no los está buscando, se los puede perder.
Doon
4
Tuve que agregar esto para ~/.bash_profileque funcionara: /
Janaka
1
hmm. No uso bash (prefiero zsh), pero parece OSX terminal.app (tampoco uso terminal, prefiero Iterm2), abre cada shell como un shell de inicio de sesión, así que sí .bash_profile sería correcto en ese caso. .también la información ha cambiado. por lo que debe consultar la última versión ..
Doon
¡Gracias! Me estaba perdiendo esta línea source $(brew --prefix nvm)/nvm.sh. Lo agregué a mi .zshrh
John Ottenlips
42

Hay DOS cosas que debe hacer. Siga las advertencias que se muestran después de instalar nvm a través de brew, y ENTONCES debe activar / recargar los cambios .bash_profile.

  1. correr brew install nvm
  2. Siga las advertencias que se muestran en la consola, las mías fueron las siguientes, ¡la suya PUEDE ser diferente !:

Agregue lo siguiente a ~ / .bash_profile o al archivo de configuración de shell que desee:

export NVM_DIR="$HOME/.nvm"
. "$(brew --prefix nvm)/nvm.sh"
  1. Ejecutar . ~/.bash_profilepara aplicar los cambios que realizó a su archivo .bash_profile
redfox05
fuente
Esto es útil para los usuarios de Bash, pero el OP está en zsh. Supongo que lo mismo se aplica a .zshrclas modificaciones necesarias.
tripleee
5

Si bien la respuesta aceptada funciona técnicamente, vale la pena señalar que la instalación de Homebrew no es oficialmente compatible con el nvmpaquete. La forma recomendada de evitar problemas como los planteados anteriormente es aplicar cualquiera de los métodos de instalación siguientes.

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

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

DarkPurple141
fuente
3

He pasado un par de horas dando vueltas y vueltas sobre este tema, pero he llegado a la conclusión de que DarkPurple141 tiene razón: nvm simplemente no es compatible con Homebrew, como afirman en su nodo Github nvm-sh / nvm Administrador de versiones . Homebrew instalará nvm y todo se verá bien, hasta que uno intente que npm instale un módulo, Mocha en mi caso. Eso me devolvió al temido error:

¡ERRAR! Error: EACCES: permiso denegado, acceso '/ usr / local / lib / node_modules'

NOTA: En el paso 3, asegúrese de reemplazar la versión con la versión correcta.

La solución, en MacOS 10.14 Mojave, fue:

  1. PS brew uninstall nvm
  2. $ brew cleanup(solo por si acaso)
  3. PS curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
  4. Compruebe que nvm se haya instalado correctamente ejecutando $ command -v nvm.

    4.a Si la respuesta no es $ nvm, agregue las dos líneas siguientes al archivo ~ / .bash-profile: export NVM_DIR=~/.nvm source ~/.nvm/nvm.sh 4.b Reinicie su computadora (puede intentar cerrar la Terminal y reiniciarla primero) 4.c ​​$ command -v nvm should now returnnvm`

  5. Ahora actualice Node.js con $ nvm install --lts

  6. Actualizar npm: $ nvm install-latest-npm
  7. $ npm install --global mocha. ¡Finalmente, éxito! Bueno, para mí y yo también espero para ti.
Elise van Looij
fuente
1

Para instalar nvm, brew install nvm

Para ejecutar nvm después de la instalación o solo una vez, $(brew --prefix nvm)/nvm.sh

Para ejecutar nvm cada vez que se zshabre

  1. nano ~/.zshrc
  2. Agregar esta línea source $(brew --prefix nvm)/nvm.sh
Ricky Dam
fuente
1

Me gustaría agregar que la ubicación de nvm en github cambió y la versión saltó. El comando curl ahora debería ser:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.0/install.sh | bash
Onno van der Zee
fuente
0

La razón por la que necesitaría volver a cargar sus perfiles de bash o cualquier otro archivo de bash podría ser porque el comando nvm puede no ser un programa, sino una función que está definida y solo se puede usar si se obtiene el archivo de bash correspondiente.

En un sistema que verifiqué

which nvm 

no funciona pero

nvm list

hace. Esto significa que puede utilizar la palabra "nvm" para invocar algo. Ese algo no es un programa. En el caso actual, es una función que puede ser verificada por

typeset -F | grep -P ' nvm$'

que salidas

declare -F nvm

lo que significa que nvm es una función, cuyo cuerpo se puede inspeccionar haciendo

type -F nvm
Saurabh Hirani
fuente
1
Bien .. Pero, ¿cómo es esto una respuesta?
Dayan
1
Gracias por la actualización, Dayan, editó la respuesta, la razón por la que no pude encontrarlo porque confiaba en que era un programa, pero estaba definido como una función. Quería resaltar eso.
Saurabh Hirani
Para verificar si nvm se ha instalado correctamente, use 'comando -v nvm' en la Terminal. La respuesta debería ser 'nvm'. Si no es así, siga las instrucciones en github.com/nvm-sh/nvm#installation-and-update .
Elise van Looij
0

Una posibilidad si brewse utilizó es que nvmse pueda desvincular, especialmente si fue instalado por otro usuario de MAC OS.

En este caso, ejecute:

brew link nvm
Lindoélio Lázaro
fuente