You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何标记Homebrew Tap Cask公式为已更新?解决升级检测失效问题

问题描述

我有一个用于下载并安装预构建pkg的Homebrew Cask,代码如下:

cask "mypkg" do
  version "1.0.0.0"
  sha256 "4b928d..."

  url "https://location/my.pkg",

  name "mytestpkg"
  desc "My Test Pkg"

  pkg "#{version}-My-Test-Package.pkg"

  uninstall pkgutil: "my.pkg"

end

最近我更新了该Cask的版本号和sha256值,但运行brew upgrade时无法检测到更新或变化。目前只能通过以下步骤获取更新:

  • 卸载Cask
  • 卸载Tap
  • 安装Tap
  • 安装Cask

请问是否有办法标记Cask或Tap为已更新?

解决方案

1. 更新本地Tap仓库

如果你的Cask托管在自定义Tap里,先进入Tap的本地目录(默认路径为/usr/local/Homebrew/Library/Taps/[你的用户名]/[tap名]),执行:

git pull

拉取Tap仓库的最新代码后,Homebrew就能识别到Cask的版本更新。

2. 强制重新安装Cask

无需卸载Tap和Cask,直接用强制安装命令覆盖现有版本:

brew install --cask --force [你的cask名]

该命令会跳过版本检查,直接下载并安装最新版本的Cask。

3. 检查Cask配置正确性

  • 确认url字段与新版本pkg的地址匹配:你当前url是固定地址,但pkg字段使用了#{version}变量,若新版本pkg文件名包含版本号,url也应对应包含版本号,比如:
    url "https://location/#{version}-My-Test-Package.pkg"
    
    否则Homebrew会判定下载文件无变化,无法识别版本更新。
  • 确保版本号格式符合Homebrew规范,避免格式问题导致版本检测失效。

4. 刷新Homebrew缓存

执行以下命令清理并刷新缓存,确保Homebrew读取到最新的Cask信息:

brew cleanup
brew update

内容的提问来源于stack exchange,提问作者chughts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:25:04