【问题标题】:How do I update a formula with Homebrew?如何使用 Homebrew 更新公式?
【发布时间】:2011-05-30 06:20:00
【问题描述】:

如何更新公式?

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

mongodb (1.4.3-x86_64 < 1.6.5-x86_64)

因此,mongodb 已过时。

如何升级它?我是先卸载再安装吗?

【问题讨论】:

    标签: homebrew formula


    【解决方案1】:

    仅升级 MongoDB 公式,correct way

    brew install mongodb
    

    如果您想升级所有过时的公式,只需这样做

    brew upgrade
    

    【讨论】:

    • 当我运行“brew upgrade ”时,它实际上升级了所有过时的包,需要几小时而不是几秒钟。这是一个非常糟糕的设计。 “只升级一个包”的正确方法是“brew install ”,这又是一个令人困惑的设计。
    • 我也刚刚运行了“brew upgrade ”(我想更新一个包和一个直接依赖项),然后它还升级了所有包而不是这两个。跨度>
    【解决方案2】:

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

    brew install `brew outdated`
    

    brew outdated | xargs brew install
    

    brew upgrade
    

    这是来自 brew 网站..

    用于升级单个公式:

    brew install formula-name && brew cleanup formula-name
    

    【讨论】:

    • 我认为现在可以输入brew upgrade outdated 并跳过所有复杂的废话。
    • 现在是 2021 年。不,你不能。 brew upgrade outdate 将更新所有过时的公式。
    【解决方案3】:

    您首先需要通过以下方式更新本地公式

    brew update
    

    然后通过做升级包

    brew upgrade formula-name
    

    如果我想升级 mongodb,我会这样做,假设 mongodb 已经安装:

    brew update && brew upgrade mongodb && brew cleanup mongodb
    

    【讨论】:

      【解决方案4】:

      原来如此

      brew install mongodb
      

      并按照完成安装后输出到STDOUT 的说明进行操作,这似乎工作得很好。我猜它有点像make install 并覆盖(升级)以前的安装。

      【讨论】:

      • Brew 将 mongodb 安装到 $HOMEBREW_PREFIX/Cellar/mongodb/&lt;version&gt;/,因此您很可能同时安装了这两个版本。然后它将最新版本符号链接到$HOMEBREW_PREFIX/bin 等。运行brew cleanup mongodb 将删除旧版本。
      【解决方案5】:

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

      brew outdated | xargs brew upgrade
      

      【讨论】:

      • 您最好解释一下您的解决方案,以便对其他 SO 用户有所帮助。在这里仅发布代码并不是最佳做法。
      【解决方案6】:

      我更喜欢升级所有自制配方自制桶配方

      为此,我在我的环境中添加了一个 Bourne shell 函数(我加载了一个 .bashrc)

      function updatebrew() {
      set -x;
      brew update;
      brew cleanup;
      brew cask upgrade --greedy
      )
      }
      
      • set -x 透明:以便终端输出 Homebrew 在后台执行的任何操作。
      • brew update 更新自制公式
      • brew cleanup 删除安装后遗留的任何更改
      • brew cask upgrade --greedy 将安装所有木桶;有版本信息的和没有的

      【讨论】:

      • 如果你安装了带有自制扩展的 postgres,我不推荐这个。我有一个新的 postgres 版本,它只会用新版本替换旧版本,让您没有简单的方法来升级您的数据库。
      • @narrowtux 数据库升级总是如此。您需要处理备份和恢复。因此最好将它们排除在外(黑名单)。我认为这超出了这个问题的范围。
      猜你喜欢
      • 2016-07-28
      • 2011-04-25
      • 2018-10-08
      • 2011-08-26
      • 2022-11-06
      • 2015-12-16
      • 2017-09-18
      • 2020-09-28
      相关资源
      最近更新 更多