如何使用Brew安装最新版本的Node


154

目前,最新版本的NodeJ是0.4.1

brew install node现在,该命令将安装0.2.6-这并不理想。我想要0.4.1

我查看了清单中的brew 命令并尝试了brew install --HEAD node

但这将安装节点0.5-pre。

为什么brew没有安装正确的版本,我怎么能强迫它获得正确的版本?

在此阶段,仅下载src并手动安装它似乎实际上会更容易。但是我想知道Brew发生了什么。


我好奇。通过Homebrew安装和从nodejs.org下载的软件包安装之间有什么区别?
yihangho

Answers:


126

你先跑了brew update吗 如果您不这样做,Homebrew将无法更新其公式,并且如果不更新其公式,那么它将不知道如何安装最新版本的软件。


2
是的,我尝试过“ brew update node”,但现在我知道你是对的。对我而言,这没有发生,因为doco表示“酿造更新”将更新酿造软件-这似乎没有什么区别。但它提到了“ formulea”-坦率地说,这只是“软件版本库”的愚蠢词汇。我可以做“ brew info node”来了解它要安装什么版本。它设置为0.4.0,所以无论如何我还是从src安装了,但这是正确的。谢谢。
PandaWood

当它说“更新酿造软件”时,并不表示酿造已安装的更新软件,而是指更新酿造本身以及其Formulae库。
莉莉巴拉德

301

按以下顺序运行以下命令:

brew update
brew doctor
brew upgrade node

现在,您已经安装了节点的更新版本,并且可能未链接。如果不是,则只需键入:brew link nodebrew link --overwrite node


1
持续获取/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang,请参阅:修复/ brew / local对Homebrew的权限;; gist.github.com/rpavlik/768518
AnneTheAgile '16

3
错误:没有这样的桶:/ usr / local / Cellar / node
Hos Mercury

好的,这解决了NPM失败(“ Buffer.alloc不是函数”)的问题,因为节点桶未链接。需要强制链接/覆盖旧文件。
戴夫

2
brew link --overwrite node这真的很重要!谢谢
hanzichi

136

通过brew安装/升级节点后,我遇到了这个问题:node命令有效,但npm命令无效。

我使用这些命令对其进行了修复。

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

经过反复试验,我使用...拼凑了这个解决方案


谢谢!出现了完全相同的问题,并且此问题得以解决。
elsurudo 2015年

7
sudo brew postinstall node除非brew由root拥有,否则将抛出错误(不建议)。如果您已经这样做,我认为不需要sudo chown -R $(whoami) /usr/local。您应该能够运行brew postinstall node
山芬

2
@SamFen的权利。sudo没有必要。在我给出命令清单之前,我首先运行了可接受的答案。之后我跑了node -v,现在一切似乎都很好。
6754534367 '16

1
使用sudo chown -R $(whoami)$(brew --prefix)/ *代替sudo chown -R $(whoami)/ usr / local
Troy DC Thompson

1
这对我有用。我做了什么@TroyDCThompson建议sudo chown -R $(whoami) $(brew --prefix)/*,因为我是越来越Operation not permitted
thurzo101 '18


13

另外,在安装新节点版本后,请尝试停用当前节点版本。它帮助到我。

nvm deactivate

这已从$ PATH中删除/Users/user_name/.nvm/*/bin

在该节点更新后

node --version
v10.9.0

9

我不得不这样做brew link --overwrite nodebrew install node,以更新从0.4到0.8.18


错误:没有这样的桶:/ usr / local / Cellar / node
Hos Mercury

7

尝试使用“ n” Node 非常简单的程序包管理器。

> npm install -g n

一旦安装了“ n”。您可以通过执行以下操作拉出最新节点:

> n latest

我已经在Ubuntu 16.0x和MacOS 10.12(Sierra)上成功使用了它

参考:https : //github.com/tj/n


7

如果您通过安装了当前节点Homebrew,则只需使用以下命令。

brew update
brew upgrade node

通过以下方式检查节点版本

node -v


3

刚在Homebrew 0.9.5中使用了此解决方案,这似乎是将节点升级到最新稳定版本的快速解决方案。

brew update

这将安装最新版本

brew install node

取消链接当前使用的节点版本node -v,以查找此版本

brew unlink node012

这将更改为节点的最新版本。

brew link node

注意:由于出现此错误,导致此解决方案有效:

错误:没有这样的桶:/ usr / local / Cellar / node


2

我是在Mac OSX Sierra上完成的。我安装了Node 6.1,但是Puppetter需要Node 6.4。这是我所做的:

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

然后打开一个新的终端窗口并运行:

node -v
v8.11.2

--overwrite对于覆盖node6和node8之间的冲突文件是必需的


2
  1. node -v 将显示当前版本。
  2. npm -v 将显示当前版本。
  3. brew link --overwrite --dry-run node 将强制链接并覆盖所有冲突的文件。
  4. brew install node 重新安装。
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    要么

    brew link node

节点升级步骤如下



0

如果您愿意删除brew依赖项,我将推荐nvm-我真的不能推荐它于任何其他版本控制解决方案,因为我不需要尝试其他任何事情。能够根据正在处理的项目在版本之间即时切换的能力非常有价值。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.