¿Cuál es la forma sugerida de instalar brew, node.js, io.js, nvm, npm en OS X?

175

Estoy tratando de usar homebrew tanto como sea posible. ¿Cuál es la forma sugerida de instalar lo siguiente en OS X?

y con suerte apoya el desarrollo para:

Oh ho
fuente
9
Cabe señalar que, aunque solicitó utilizar homebrew. No se recomienda el uso de homebrew para instalar nvm. De github.com/creationix/nvm "La instalación de Homebrew no es compatible. Si tiene problemas con nvm instalado por homebrew, desinstálelo e instálelo siguiendo las instrucciones a continuación, antes de presentar un problema ".
Eric

Respuestas:

267
  1. Usando homebrewinstalar nvm:

    brew update
    brew install nvm
    source $(brew --prefix nvm)/nvm.sh

    Añadir el último comando al .profile, .bashrco .zshrcarchivo para no ejecutarla de nuevo en cada inicio de terminales. Entonces, por ejemplo, para agregarlo a la .profileejecución:

    echo "source $(brew --prefix nvm)/nvm.sh" >> ~/.profile

    Si tiene problemas con la instalación nvmusando brewpuede instalarlo manualmente (ver aquí )

  2. Usando nvminstalar nodeo iojs(puede instalar cualquier versión que desee):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
  3. npmse envía con node(o iojs), por lo que estará disponible después de la instalación node(o iojs). Es posible que desee actualizarlo a la última versión:

    $ npm install -g npm@latest

    UPD La versión anterior era npm update -g npm. Gracias a @Metallica por señalar la forma correcta (mira el comentario a continuación).

  4. Usando npminstalar ionic:

    npm install -g ionic
  5. Qué pasa ngCordova: puedes instalarlo usando npmo bower. No sé qué variante es más adecuada para usted, depende del administrador de paquetes que desee usar para el lado del cliente. Entonces los describiré a ambos:

    1. Usonpm : vaya a la carpeta de su proyecto e instálela ng-cordova:

      npm install --save ng-cordova
    2. Usobower : Instalar bower:

       npm install -g bower

      Y luego vaya a la carpeta de su proyecto e instálela ngCordova:

       bower install --save ngCordova

PD

  1. Algunos comandos pueden requerir privilegios de superusuario
  2. Variante corta de npm install some_moduleisnpm i some_module
alexpods
fuente
10
Si actualiza npm, NO use el comando npm update. La forma recomendada para actualizar npm es: npm install -g npm@latest(desde brew info nodey aquí )
Javad Sadeqzadeh
10
De la instalación actual de brew nvm: "Tenga en cuenta que upstream nos ha pedido que hagamos una gestión explícita de nvm a través de Homebrew no es compatible con ellos ..." -> Entonces, probablemente la respuesta correcta es no usar brew para nvm / node.js / io .js.
s.Daniel
77
Recibí el mensaje de error "nvm no es compatible con la opción" prefijo "de la configuración npm". De acuerdo con este sitio ( github.com/creationix/nvm/issues/855#issue-109279804 ), NVM no es compatible con Homebrew. "Preparé nvm desinstalado" e instalé nvm mediante el comando CURL y ahora el mensaje de error desapareció.
YeeHaw1234
44
Usé nvm vía brew por un tiempo, pero también recibí el mensaje "aguas arriba ... explícito ... no compatible". Los documentos de NVM dicen explícitamente que "la instalación de Homebrew no es compatible. Si tiene problemas con nvm instalado con homebrew, desinstálelo e instálelo siguiendo las instrucciones a continuación, antes de presentar un problema". Entonces, esta probablemente ya no debería ser la respuesta aceptada. Acabo de empezar a usar n, que funciona.
whatsthatitspat
3
La versión actual de NVM (v0.33.2) NO admite la instalación de homebrew: consulte: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro
45

Actualización de 2019: use NVM para instalar el nodo, no Homebrew

En la mayoría de las respuestas, la forma recomendada de instalar nvm es usar Homebrew

No hagas eso

En Github Page para nvm se llama claramente:

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.

Use el siguiente método en su lugar

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

El script clona el repositorio nvm en ~ / .nvm y agrega la línea de origen a su perfil (~ / .bash_profile, ~ / .zshrc, ~ / .profile o ~ / .bashrc).

Y luego use nvm para instalar el nodo. Por ejemplo, para instalar la última versión de LTS:

nvm install v8.11.1

Limpio y sin complicaciones. También marcaría esto como su versión de nodo predeterminada, por lo que debería estar listo

Abhijit Mazumder
fuente
2
Creo que también podrías nvm install --ltsobtener el último LTS
skube
1
Gracias por mencionar esto, bajé por una horrible madriguera de conejos con nvm y homebrew y acabo de salir ...
cssidy el
¡Buena respuesta! Después de mucha lectura (las instalaciones de nodos pueden ser un campo minado), acabo de preparar el nodo desinstalado, limpié todo y usé nvm para instalar el nodo en Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt
13

Estoy usando n (gestión de versiones de nodo)

Puedes instalarlo de dos maneras

brew install n

o

npm install -g n

Puede cambiar entre diferentes versiones de node y io. Aquí hay un ejemplo de mi entorno actual cuando llamo n sin params:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
fuente
2
Puede agregar una tercera forma de instalación que sea sencilla y deje una práctica utilidad de desinstalación si la necesita: github.com/mklement0/n-install Este método se sugiere en los n documentos en github.com/tj/n
whatsthatitspat
1
También debe mencionarse que si planea ejecutar diferentes versiones de nodo para diferentes proyectos simultáneamente (como en 2 ventanas de terminal diferentes) nvm es una mejor opción, ya que cambia solo las rutas al nodo en cada sesión.
Nilloc
10

Llegué muy tarde a esto, pero no me gustaron las otras respuestas

Instalar Homebrew

Para brebaje plazo

"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Instalación de nodo y npm

Usted NO DEBE utilizar brewpara instalar el nodo y NPM .

He visto algunos lugares que sugieren que debe usar Homebrew para instalar Node (como la respuesta de alexpods y en esta publicación del blog de Team Treehouse ), pero al instalar de esta manera, es más propenso a tener problemas, npmya que brewson administradores de paquetes y deberían haga que un administrador de paquetes administre otro administrador de paquetes, esto genera problemas, como este error, problemas oficiales de npm Error: se niega a eliminar: / usr / local / bin / npm o esto módulo de NPM no puede desinstalar en OSX

Puede leer más sobre el tema en la publicación de DanHerbert Fixing npm en Mac OS X para usuarios de Homebrew , donde continúa diciendo

Además, el uso de la instalación Homebrew de npm requerirá que use sudo al instalar paquetes globales. Dado que una de las ideas centrales detrás de Homebrew es que las aplicaciones se pueden instalar sin darles acceso de root, esta es una mala idea.

Para todo lo demás

Yo usaría npm; pero realmente debería seguir las instrucciones de instalación para cada módulo siguiendo las instrucciones en su sitio web, ya que estarán más conscientes de cualquier problema o error que tengan que cualquier otra persona

garrettmac
fuente
¿Entonces sugiere instalarlo desde su descarga?
Shawn Mclean
6

Si anteriormente instaló el nodo utilizando brew, tendrá un montón de archivos adicionales que debe limpiar antes de instalar el nodo "de la manera correcta". Además, tuve que agregar algunas configuraciones a mi script de inicio para que las cosas funcionen sin problemas.

Escribí un guión para facilitar esto.

# filename:  install-nvm-npm-node
# author:    Lex Sheehan
# purpose:   To cleanly install NVM, NODE and NPM
# dependencies:  brew

NOW=$(date +%x\ %H:%M:%S)
CR=$'\n'
REV=$(tput rev)
OFF=$(tput sgr0)
BACKUP_DIR=$HOME/backups/nvm-npm-bower-caches/$NOW
MY_NAME=$(basename $0)
NODE_VER_TO_INSTALL=$1
if [ "$NODE_VER_TO_INSTALL" == "" ]; then
    NODE_VER_TO_INSTALL=v0.12.2
fi
if [ "`echo "$NODE_VER_TO_INSTALL" | cut -c1-1`" != "v" ]; then
    echo """$CR""Usage:   $ $MY_NAME <NODE_VERSION_TO_INSALL>"
    echo "Example: $ $MY_NAME v0.12.1"
    echo "Example: $ $MY_NAME $CR"
    exit 1
fi
echo """$CR""First, run:  $ brew update"
echo "Likely, you'll need to do what it suggests."
echo "Likely, you'll need to run: $ brew update$CR"
echo "To install latest node version, run the following command to get the latest version:  $ nvm ls-remote"
echo "... and pass the version number you want as the only param to $MY_NAME. $CR"
echo "Are you ready to install the latest version of nvm and npm and node version $NODE_VER_TO_INSTALL ?$CR"
echo "Press CTL+C to exit --or-- Enter to continue..."
read x

echo """$REV""Uninstalling nvm...$CR$OFF"
# Making backups, but in all likelyhood you'll just reinstall them (and won't need these backups)
if [ ! -d "$BACKUP_DIR" ]; then 
    echo "Creating directory to store $HOME/.nvm .npm and .bower cache backups: $BACKUP_DIR"
    mkdir -p $BACKUP_DIR
fi 
set -x
mv $HOME/.nvm   $BACKUP_DIR  2>/dev/null
mv $HOME/.npm   $BACKUP_DIR  2>/dev/null
mv $HOME/.bower $BACKUP_DIR  2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Uninstalling node...$CR$OFF"
echo "Enter your password to remove user some node-related /usr/local directories"
set -x
sudo rm -rf /usr/local/lib/node_modules
rm -rf /usr/local/lib/node
rm -rf /usr/local/include/node
rm -rf /usr/local/include/node_modules
rm /usr/local/bin/npm
rm /usr/local/lib/dtrace/node.d
rm -rf $HOME/.node
rm -rf $HOME/.node-gyp
rm /opt/local/bin/node
rm /opt/local/include/node
rm -rf /opt/local/lib/node_modules
rm -rf /usr/local/Cellar/nvm
brew uninstall node 2>/dev/null
{ set +x; } &>/dev/null

echo "$REV""$CR""Installing nvm...$CR$OFF"

echo "++brew install nvm"
brew install nvm 
echo '$(brew --prefix nvm)/nvm.sh'
source $(brew --prefix nvm)/nvm.sh

echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc):$CR$OFF"
echo "export NVM_DIR=\"\$(brew --prefix nvm)\"; [ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\"$CR"
NVM_DIR="$(brew --prefix nvm)"

echo """$CR""Using nvm install node...$CR"
echo "++ nvm install $NODE_VER_TO_INSTALL"
nvm install $NODE_VER_TO_INSTALL
NODE_BINARY_PATH="`find /usr/local/Cellar/nvm -name node -type d|head -n 1`/$NODE_VER_TO_INSTALL/bin"
echo "$REV""$CR""Insert the following line in your startup script (ex: $HOME/.bashrc) and then restart your shell:$CR$OFF"
echo "export PATH=\$PATH:$NODE_BINARY_PATH:$HOME/.node/bin"

echo """$CR""Upgrading npm...$CR"
echo '++ install -g npm@latest'
npm install -g npm@latest
{ set +x; } &>/dev/null
echo "$REV""$CR""Insert following line in your $HOME/.npmrc file:$OFF"
echo """$CR""prefix=$HOME/.node$CR"
echo "Now, all is likley well if you can run the following without errors:  npm install -g grunt-cli$CR"
echo "Other recommended global installs: bower, gulp, yo, node-inspector$CR"

Escribí un breve artículo aquí que detalla por qué esta es "la forma correcta".

Si necesita instalar iojs, hágalo usando nvm así:

nvm install iojs-v1.7.1

Para instalar brew, solo vea su página de inicio .

Vea la respuesta de alexpods para el resto.

l3x
fuente
55
Es increíble ver que todos estos gestores de paquetes y gestores de versiones realmente ayudan a eliminar los scripts escritos personalizados, los hacks y las soluciones para que Techstack xyz funcione. increíble.
Michael Trouw
Me funcionó a pesar de que comencé con npm y preparé ambos rotos
Chris F Carroll
5

Debe instalar node.js con nvm, porque de esa manera no tiene que proporcionar privilegios de superusuario al instalar paquetes globales (simplemente puede ejecutar "npm install -g packagename" sin anteponer 'sudo').

Sin embargo, la cerveza es fantástica para otras cosas. Tiendo a ser parcial hacia Bower siempre que tengo la opción de instalar algo con Bower.

Rajan Patel
fuente
Instalar nodo usando nvm es ahora mi enfoque preferido. Por la razón obvia de poder tener múltiples versiones de nodo en mi máquina y tampoco tengo que ejecutar npm con sudo. Escribí una publicación de blog garywoodfine.com/install-nodejs-nvm-osx explicando cómo instalar
Gary Woodfine
4

Estoy de acuerdo con noa: si necesita tener varias versiones de node, io.jsbrew no es la solución adecuada.

Puede ayudar al io.jssoporte de pruebas beta en nvm: https://github.com/creationix/nvm/pull/616

Si solo quieres io.js y no está cambiando versiones, entonces se puede instalar la distribución binaria de io.jspartir https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; eso incluye npmy no necesitará nvmsi no está cambiando las versiones.

Recuerda actualizar npm después de instalar:sudo npm install -g npm@latest

Sam Mikes
fuente
3

Esto es lo que hago:

curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
cd / && . ~/.nvm/nvm.sh && nvm install 0.10.35
. ~/.nvm/nvm.sh && nvm alias default 0.10.35

No Homebrew para este.

nvm pronto admitirá io.js, pero no al momento de la publicación: https://github.com/creationix/nvm/issues/590

Luego instale todo lo demás, por proyecto, con un package.jsony npm install.

paulmelnikow
fuente
0

Para instalar con zsh y Homebrew:

brew install nvm

Luego agregue lo siguiente a ~ / .zshrc o al archivo de configuración de shell deseado:

export NVM_DIR="$HOME/.nvm"
. "/usr/local/opt/nvm/nvm.sh"

Luego instale una versión de nodo y úsela.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
fuente