如何使用Homebrew更新公式?

ma1*_*w28 154 homebrew formula

如何更新公式?

我跑brew update.然后,运行brew outdated,输出:

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)
Run Code Online (Sandbox Code Playgroud)

因此,mongodb已经过时了.

我该如何升级呢?我只是卸载然后安装?

y.c*_*y.c 226

我认为正确的做法是

brew升级mongodb

它将升级mongodb公式.如果您想升级所有过时的公式,只需

酿造升级

  • 当我运行“brew update &lt;packagename&gt;”时,它实际上升级了所有过时的软件包,需要几个小时而不是几秒钟。这是一个非常糟糕的设计。“仅升级一个包”的正确方法是“brew install &lt;packagename&gt;”,这又是一个令人困惑的设计。 (23认同)
  • 我还刚刚运行了“brew update &lt;packagename&gt; &lt;packagename&gt;”(我想更新一个包和一个直接依赖项),然后它也升级所有包而不是这两个包。 (3认同)
  • 事实上,“brew install &lt;packagename&gt;”并没有真正更新软件包,而是仅表示该软件包已安装。也许这个答案太旧了,但现在你必须运行“brew install -f &lt;packagename&gt;” (3认同)
  • 啊,升级不是更新是诀窍,谢谢! (2认同)

小智 57

您可以像这样更新所有过时的软件包:

brew install `brew outdated`
Run Code Online (Sandbox Code Playgroud)

要么

brew outdated | xargs brew install
Run Code Online (Sandbox Code Playgroud)

要么

brew upgrade
Run Code Online (Sandbox Code Playgroud)

这是来自酿造现场..

升级个别配方:

brew install formula-name && brew cleanup formula-name
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`brew upgrade` (4认同)
  • 我想现在可以输入`brew upgrade outdated`并跳过所有复杂的垃圾. (3认同)

Jos*_*eph 18

您首先需要通过执行更新本地公式

brew update
Run Code Online (Sandbox Code Playgroud)

然后通过执行升级包

brew upgrade formula-name
Run Code Online (Sandbox Code Playgroud)

一个例子是如果我想升级mongodb,我会做这样的事情,假设已经安装了mongodb:

brew update && brew upgrade mongodb && brew cleanup mongodb
Run Code Online (Sandbox Code Playgroud)


ma1*_*w28 11

好吧,我刚刚做了

brew install mongodb
Run Code Online (Sandbox Code Playgroud)

并按照STDOUT安装完成后输出的说明进行操作,这看起来效果很好.我想它有点像make install以前的安装并覆盖(升级).

  • Brew将mongodb安装到`$ HOMEBREW_PREFIX/Cellar/mongodb/<version> /`中,因此您很可能安装了两个版本.然后将最新版本符号链接到`$ HOMEBREW_PREFIX/bin`等.运行`brew cleanup mongodb`将删除旧版本. (9认同)

Unc*_*rks 5

您不能使用brew install 来升级已安装的公式。如果您想升级所有过时的公式,可以使用以下命令。

brew outdated | xargs brew upgrade
Run Code Online (Sandbox Code Playgroud)

  • 您最好解释一下您的解决方案,以帮助其他 SO 用户。在这里仅发布代码并不是最佳实践。 (2认同)