Qual é a maneira sugerida de instalar o brew, node.js, io.js, nvm, npm no OS X?

175

Estou tentando usar o homebrew o máximo possível. Qual é a maneira sugerida de instalar o seguinte no OS X?

e espero que apóie o desenvolvimento para:

Oh Ho
fonte
9
Note-se que, embora você tenha solicitado o uso de homebrew. Usar o homebrew para instalar o nvm não é recomendado Em github.com/creationix/nvm "A instalação do homebrew não é suportada. Se você tiver problemas com o nvm instalado pelo homebrew, desinstale-o e instale-o usando as instruções abaixo, antes de registrar um problema. . "
Eric

Respostas:

267
  1. Usando a homebrewinstalação nvm:

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

    Adicionar o último comando à .profile, .bashrcou .zshrcarquivo para não executá-lo novamente em cada início terminal. Por exemplo, para adicioná-lo à .profileexecução:

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

    Se você tiver problemas para instalar nvmusando, brewpode instalá-lo manualmente (veja aqui )

  2. Usando nvminstall nodeou iojs(você pode instalar qualquer versão que desejar):

    nvm install 0.10
    # or
    nvm install iojs-1.2.0
    
  3. npmé enviado com node(ou iojs), portanto estará disponível após a instalação node(ou iojs). Convém atualizá-lo para a versão mais recente:

    $ npm install -g npm@latest

    UPD A versão anterior era npm update -g npm. Agradecemos a @Metallica por apontar para a maneira correta (veja o comentário abaixo).

  4. Usando a npminstalação ionic:

    npm install -g ionic
  5. Que tal ngCordova: você pode instalá-lo usando npmou bower. Não sei qual variante é mais adequada para você, depende do gerenciador de pacotes que você deseja usar para o lado do cliente. Então, eu vou descrever os dois:

    1. Usandonpm : Vá para a pasta do projeto e instale ng-cordovanela:

      npm install --save ng-cordova
    2. Usandobower : Instale o pavilhão:

       npm install -g bower

      E então vá para a pasta do seu projeto e instale ngCordovanela:

       bower install --save ngCordova

PS

  1. Alguns comandos podem exigir privilégios de superusuário
  2. Variante curta de npm install some_moduleénpm i some_module
alexpods
fonte
10
Se você atualizar o próprio npm, NÃO use o comando npm update. A maneira recomendada-montante para atualização npm é: npm install -g npm@latest(a partir de brew info node, e aqui )
Javad Sadeqzadeh
10
Na instalação atual do nvm do brew: "Observe que o upstream nos pediu para tornar o gerenciamento explícito do nvm via Homebrew não é suportado por eles ..." -> Portanto, provavelmente a resposta certa é não usar o brew para nvm / node.js / io .js.
s.Daniel
7
Eu estava recebendo a mensagem de erro "nvm não é compatível com a opção npm config" prefix "". de acordo com este site ( github.com/creationix/nvm/issues/855#issue-109279804 ), o NVM não é compatível com o Homebrew. Eu "preparei o nvm desinstalado" e instalei o nvm através do comando CURL e agora a mensagem de erro se foi.
precisa saber é o seguinte
4
Eu usei o nvm via brew por um tempo, mas também recebi a mensagem "upstream ... explícito ... sem suporte". Os documentos da NVM dizem explicitamente "A instalação do Homebrew não é suportada. Se você tiver problemas com o nvm instalado no homebrew, faça a desinstalação e instale-o usando as instruções abaixo, antes de registrar um problema". Portanto, essa provavelmente não deve mais ser a resposta aceita. Eu apenas comecei a usar n que funciona.
whatsthatitspat
3
Versão NVM atual (v0.33.2) não suporta a instalação homebrew: See: github.com/creationix/nvm/tree/v0.33.2#installation
Andrea Carraro
45

Atualização de 2019: use o NVM para instalar o nó, não o Homebrew

Na maioria das respostas, a maneira recomendada de instalar o nvm é usar o Homebrew

Não faça isso

No Github Page for nvm, é claramente destacado:

A instalação do Homebrew não é suportada. Se você tiver problemas com o nvm instalado no homebrew, faça a desinstalação e instale-o usando as instruções abaixo, antes de registrar um problema.

Use o método a seguir

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

O script clona o repositório nvm para ~ / .nvm e adiciona a linha de origem ao seu perfil (~ / .bash_profile, ~ / .zshrc, ~ / .profile ou ~ / .bashrc).

E, em seguida, use o nvm para instalar o nó. Por exemplo, para instalar a versão mais recente do LTS, faça:

nvm install v8.11.1

Limpo e sem complicações. Marcaria isso como sua versão padrão do nó, assim você deve estar pronto

Abhijit Mazumder
fonte
2
Eu acho que você também nvm install --ltspode obter as últimas LTS
skube 19/01/19
1
Obrigado por trazer isso, desci um buraco de coelho horrível com nvm e homebrew e acaba de sair ...
cssidy
Boa resposta! Após muita leitura (a instalação do nó pode ser um campo minado), acabei de preparar o nó desinstalado, limpei tudo e usei o nvm para instalar o nó no Mojave 10.14.4: stackoverflow.com/q/55735701/123033
Dave Everitt
13

Estou usando n (gerenciamento de versão do nó)

Você pode instalá-lo de duas maneiras

brew install n

ou

npm install -g n

Você pode alternar entre versões diferentes do nó e io. Aqui está um exemplo do meu ambiente atual quando eu chamo n sem parâmetros:

$ n

  io/3.3.1
  node/0.12.7
  node/4.0.0
  node/5.0.0
ο node/5.10.1 
Serge Seletskyy
fonte
2
Você pode adicionar uma terceira maneira de instalar, que é indolor e deixa um prático utilitário de desinstalação, se necessário - github.com/mklement0/n-install Esse método é sugerido nos documentos n em github.com/tj/n
whatsthatitspat
1
Também deve ser mencionado que, se você planeja executar diferentes versões de nós para diferentes projetos simultaneamente (como em duas janelas de terminal diferentes), a nvm é uma escolha melhor, pois alterna apenas os caminhos para os nós em cada sessão.
Nilloc
10

Estou super atrasado para isso, mas não gostei das outras respostas

Instalando o Homebrew

For brew run

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

Instalando o nó & npm

Você NÃO DEVE usar brewpara instalar o e o npm .

Eu vi alguns lugares sugeriu que você deve usar Homebrew para instalar Node (como alexpods responder e nesta equipe Treehouse postagem no blog ), mas a instalação desta forma você está mais propenso a ter problemas como npme brewsão ambos gerenciadores de pacotes e você deve ter um gerenciador de pacotes gerir outro gerenciador de pacotes isto leva a problemas, como este bug oficial NPM questões de erro: Recusando-se a eliminar: / usr / local / bin / npm ou este módulo npm não pode desinstalar no OSX

Você pode ler mais sobre o tópico na postagem de DanHerbert Fixando o npm No Mac OS X para usuários Homebrew , onde ele continua dizendo

Além disso, o uso da instalação Homebrew do npm exigirá o uso do sudo ao instalar pacotes globais. Como uma das idéias principais por trás do Homebrew é que os aplicativos podem ser instalados sem fornecer acesso root, essa é uma má idéia.

Para tudo o resto

Eu usaria npm; mas você realmente deve seguir as instruções de instalação de cada módulo, seguindo as instruções no site, pois elas estarão mais conscientes de qualquer problema ou bug do que qualquer outra pessoa

garrettmac
fonte
Então você sugere apenas instalá-lo a partir do seu download?
Shawn Mclean
6

Se você instalou o nó anteriormente usando o brew, terá vários arquivos extras que devem ser limpos antes de instalar o nó "da maneira certa". Além disso, tive que adicionar algumas configurações ao meu script de inicialização para que as coisas funcionassem sem problemas.

Eu escrevi um script para facilitar isso.

# 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"

Escrevi aqui um pequeno artigo que detalha por que esse é "o caminho certo".

Se você precisar instalar o iojs, faça-o usando o nvm assim:

nvm install iojs-v1.7.1

Para instalar o brew, basta ver sua página inicial .

Veja alexpods responder pelo resto.

l3x
fonte
5
É impressionante ver que todos esses gerenciadores de pacotes e gerenciadores de versões realmente ajudam a remover scripts escritos personalizados, hacks e soluções alternativas para que o techstack xyz funcione. impressionante.
Michael Trouw
Trabalhou para mim mesmo que eu comecei com NPM e preparar tanto quebrado
Chris F Carroll
5

Você deve instalar o node.js com o nvm, pois dessa forma não é necessário fornecer privilégios de superusuário ao instalar pacotes globais (você pode simplesmente executar "npm install -g packagename" sem preceder 'sudo').

Brew é fantástico para outras coisas, no entanto. Costumo ser tendencioso em relação ao Bower sempre que tenho a opção de instalar algo com o Bower.

Rajan Patel
fonte
Instalar o nó usando o nvm agora é minha abordagem preferida. Pelo motivo óbvio de poder ter várias versões do nó na minha máquina e também não preciso executar o npm com o sudo. Eu escrevi um post no blog garywoodfine.com/install-nodejs-nvm-osx explicando como instalar
Gary Woodfine
4

Concordo com a noa - se você precisar de várias versões node, o io.jsbrew não é a solução apropriada.

Você pode ajudar o io.jssuporte ao teste beta na nvm: https://github.com/creationix/nvm/pull/616

Se você quiser apenas io.jse não estão mudando versões, então você pode instalar a distribuição binária do io.jsde https://iojs.org/dist/v1.0.2/iojs-v1.0.2-darwin-x64.tar.gz ; isso inclui npme você não precisará nvmse não estiver trocando de versão.

Lembre-se de atualizar npmapós a instalação:sudo npm install -g npm@latest

Sam Mikes
fonte
3

Aqui está o que eu faço:

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

Não Homebrew para este.

nvmem breve oferecerá suporte ao io.js, mas não no momento da publicação: https://github.com/creationix/nvm/issues/590

Em seguida, instale tudo o mais, por projeto, com um package.jsone npm install.

paulmelnikow
fonte
0

Para instalar com zsh e Homebrew:

brew install nvm

Adicione o seguinte a ~ / .zshrc ou ao arquivo de configuração de shell desejado:

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

Em seguida, instale uma versão do nó e use-a.

nvm install 7.10.1
nvm use 7.10.1
David Dehghan
fonte