Como instalar a versão mais recente do Node usando o Brew

154

A versão mais recente dos NodeJs agora é 0.4.1

O comando brew install nodeagora, instala 0.2.6 - o que não é o ideal. Eu gostaria de 0.4.1

Eu olhei para esta lista de comandos para preparar e tenteibrew install --HEAD node

Mas isso instala o nó 0.5-pre.

Por que o brew não está instalando a versão correta e como posso forçá-la a obter a correta?

Nesse estágio, parece que seria mais fácil baixar o src e instalá-lo manualmente. Mas eu gostaria de saber o que está acontecendo com o Brew.

PandaWood
fonte
Estou curioso. Qual é a diferença entre instalar via Homebrew e instalar a partir do pacote baixado do nodejs.org ?
yihangho

Respostas:

126

Você correu brew updateprimeiro? Se você não fizer isso, o Homebrew não poderá atualizar suas fórmulas e, se não atualizar suas fórmulas, não saberá como instalar as versões mais recentes do software.

Lily Ballard
fonte
2
Certo, tentei o 'nó de atualização de distribuição', mas agora vejo que você está certo. Isso não me ocorreu porque o documento diz que a 'atualização de atualização' atualizaria o software de preparação - o que parece não fazer diferença. Mas ele menciona 'formea' - que é apenas uma palavra (francamente) estúpida para o que é basicamente sua 'biblioteca de versões de software'. Eu posso fazer o 'nó de informações de distribuição' para descobrir qual versão ele instalará. Ele está definido como 0.4.0, então acabei instalando a partir do src, mas está certo. Obrigado.
PandaWood
Quando diz "atualizar o software de preparação", isso não significa que o software de instalação foi instalado - significa atualizar a própria preparação, bem como sua biblioteca de fórmulas.
Lily Ballard
301

Execute os comandos abaixo, nesta ordem:

brew update
brew doctor
brew upgrade node

Agora você instalou a versão atualizada do nó, e provavelmente não está vinculado. Caso contrário, basta digitar: brew link nodeoubrew link --overwrite node

Andrey Bodoev
fonte
1
Continue recebendo/usr/local/share/doc/node is not writable.
Saba Ahang 7/16
@SabaAhang, consulte: Corrija permissões em / usr / local para Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile
3
Erro: Não existe tal barril: / usr / local / Cellar / node
Hos Mercury
Bom, isso corrigiu uma falha do NPM ("Buffer.alloc não é uma função") porque o barril do nó estava desvinculado; necessário para forçar a vinculação / substituição de arquivos antigos.
dave
2
brew link --overwrite nodeé realmente de importância! graças
hanzichi
136

Após a instalação / atualização do nó via brew, deparei-me com esse problema exatamente: o comando node funcionou, mas não o comando npm.

Eu usei esses comandos para corrigi-lo.

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

Eu montei esta solução após tentativa e erro usando ...

Eric Walsh
fonte
Obrigado! Tinha exatamente o mesmo problema, e isso resolveu.
elsurudo
7
sudo brew postinstall nodegerará um erro, a menos que a mistura seja de propriedade da raiz (não recomendado). Acho que não seria necessário se você já o fez sudo chown -R $(whoami) /usr/local. Você deve ser capaz de executar brew postinstall node.
Sam Fen
2
@SamFen está certo. sudonão é necessário. Primeiro, executei a resposta aceita antes de dar uma olhada nesta lista de comandos. Depois corri node -ve tudo parece bem agora.
6754534367
1
Use sudo chown -R $ (whoami) $ (bebida --prefix) / * em vez de sudo chown -R $ (whoami) / usr / local
Troy DC Thompson
1
Isso funcionou para mim. Fiz o que o @TroyDCThompson recomendou sudo chown -R $(whoami) $(brew --prefix)/*enquanto estava recebendo Operation not permitted.
Thurzo101 31/07/1918
21

Às vezes, brew updatefalha em mim porque um pacote não é baixado corretamente. Então você pode simplesmente atualizar uma biblioteca específica como esta:

brew upgrade node

https://gist.github.com/3005832

Lance Pollard
fonte
13

Além disso, tente desativar a versão atual do nó após instalar uma nova versão do nó. Isso me ajuda.

nvm deactivate

Isso é removido /Users/user_name/.nvm/*/bin de $ PATH

E depois que o nó foi atualizado

node --version
v10.9.0
Alexandr
fonte
9

Eu tive que fazer brew link --overwrite nodedepois brew install nodede atualizar de 0,4 para 0,8.18

ojreadmore
fonte
Erro: Não existe tal barril: / usr / local / Cellar / node
Hos Mercury
7

Tente usar "n" o nó gerenciador de pacotes extremamente simples .

> npm install -g n

Depois de ter "n" instalado. Você pode obter o nó mais recente, fazendo o seguinte:

> n latest

Eu usei com sucesso no Ubuntu 16.0x e MacOS 10.12 (Sierra)

Referência: https://github.com/tj/n

Reuben
fonte
7

Se você instalou o nó atual via Homebrew, basta usar estes comandos.

brew update
brew upgrade node

Verifique a versão do nó por

node -v

Harikrishnan
fonte
3

Acabei de usar esta solução com o Homebrew 0.9.5 e parecia uma solução rápida para atualizar para a versão estável mais recente do nó.

brew update

Isso instalará a versão mais recente

brew install node

Desvincule sua versão atual do uso do nó, node -v, para encontrar este

brew unlink node012

Isso mudará para a versão mais atualizada do nó.

brew link node

Nota: Esta solução funcionou como resultado de eu receber este erro:

Erro: Não existe tal barril: / usr / local / Cellar / node

user2096561
fonte
2

Eu fiz isso no Mac OSX Sierra. Eu tinha o Nó 6.1 instalado, mas o Puppetter exigia o Nó 6.4. Isto é o que eu fiz:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

E, em seguida, abra uma nova janela do terminal e execute:

node -v
v8.11.2

A substituição - é necessária para substituir arquivos conflitantes entre o nó6 e o ​​nó8

Donato
fonte
2
  1. node -v irá mostrar a versão atual.
  2. npm -v irá mostrar a versão atual.
  3. brew link --overwrite --dry-run node forçará o link e substituirá todos os arquivos conflitantes.
  4. brew install node faça uma nova instalação.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    ou

    brew link node

O procedimento de atualização do nó está abaixo

Mahendra Rao
fonte
1

Você pode usar um parafuso nodoso . Também pode alternar versões de nós.

projeto c
fonte
0

Se você deseja remover a brewdependência, eu recomendaria o nvm - não posso recomendá-lo sobre nenhuma outra solução de controle de versão, porque não precisei tentar mais nada. Ter a capacidade de alternar instantaneamente entre as versões, dependendo do projeto em que você está trabalhando, é bastante valioso.

Jon z
fonte