SlyDen/HomebrewApp

GitHub: SlyDen/HomebrewApp

一款原生 macOS SwiftUI 应用,为 Homebrew 包管理器提供图形化的浏览、安装、维护和 tap 管理界面。

Stars: 1 | Forks: 0

# HomebrewApp HomebrewApp 是一款原生 macOS SwiftUI 应用,用于浏览、安装和维护 Homebrew formulae 和 casks。 ![HomebrewApp package browser showing an installed package from an untrusted tap, its Trust Tap action, and the console dock.](https://static.pigsec.cn/wp-content/uploads/repos/cas/1f/1fb665e94e6e7f6774b207421795ef5a3bde3a131228b75a8fa5e3d232a96f1e.png) ## 功能 ### 浏览已安装的包 - 立即加载缓存的包信息,随后从 Homebrew 刷新。 - 按名称或描述搜索 formulae 和 casks。 - 按包类型、多个已安装版本、最新升级结果或来自不受信任 tap 的包进行过滤。 - 按名称、已安装大小或更新日期排序。 - 查看摘要、主页链接、安装日期、标识符、已安装版本、formula 依赖项以及已安装的依赖项。 - 直接从已安装的依赖项或依赖包跳转到该 formula 的包信息。 - 通过警告徽标识别来自不受信任 tap 的包,然后从包详情视图中信任该贡献 tap。 ### 发现并安装包 - 在公共 Homebrew formula 注册表与已安装 tap 中的 formulae 和 casks 中进行搜索。 - 在安装前查看包元数据、别名、版本和依赖项。 - 使用带有类型限定的 Homebrew 命令安装 formulae 和 casks。 - 保留一键安装操作,或选择其旁边的**带选项安装...**以添加已验证的 flags 并先检查命令。 - 为第三方 tap 包保留完全限定名称,以避免从其他来源选择同名包。 - 无需离开应用即可添加、刷新和移除 Homebrew taps。 - 在专用的信任面板中查看官方、受信任和不受信任的 tap,展开每个 tap 以查看其 formulae 和 casks,并从已安装的包名称跳转到其包详情。 ### 运行自定义安装 - 使用**自定义安装**进行带有可选 Homebrew flags 的引导式 formula 或 cask 安装。 - 使用 **Command Runner** 选择器进行包操作、Homebrew 维护、缺失依赖检查、环境诊断和漏洞检查。 - 原地预览确切命令并实时跟踪输出、完成、失败或取消状态。 - 将参数作为已验证的 arguments 传递;shell 操作符、重定向、额外的包目标以及任意命令都将被拒绝。 ### 维护 Homebrew - 升级、重新安装、强制重新安装或删除选定的包。 - 激活已安装的版本、对其进行升级或将其移除。 - 对每个过时、未固定的包运行 `brew update`,随后运行 `brew upgrade --no-ask`。 - 在批量升级成功后可选择运行 `brew cleanup`;cleanup 默认处于启用状态。 - 查看每个包的成功和失败徽标,并按最新结果过滤包列表。 - 在带有颜色区分的 console 中跟踪有序的命令进度、警告和错误,直至最后一行输出。 ### 自定义与导出 - 选择系统外观、浅色或深色模式,或多种颜色主题之一。 - 启用或禁用 Homebrew provider,同时保留缓存的包数据。 - 将当前包清单导出为格式化的 JSON。 - 默认保持启用 tap 信任检查,并在“设置”中提供明确的高级覆盖选项。 ## 系统要求 - macOS 26.5 或更高版本 - 正常运行的 [Homebrew](https://brew.sh/) 安装 - Xcode 27 beta 3 或更高版本(用于从源码构建) Homebrew 必须安装在 `/opt/homebrew`、`/usr/local`,或应用继承的 `PATH` 中已存在的其他目录中。HomebrewApp 直接通过 `/usr/bin/env` 并使用参数数组启动 `brew`;它不会将包名称或安装参数作为 shell 命令进行评估。 ## 从源码构建 1. 克隆此代码仓库。 2. 在 Xcode 27 或更高版本中打开 `app/HomebrewApp/HomebrewApp.xcodeproj`。 3. 选择 **HomebrewApp** scheme 并在 **My Mac** 上运行它。 若要更新 `main`、创建 Release 构建、将其安装到 `/Users/sden/Applications` 并打开它,请从仓库根目录运行安装脚本: ``` ./build-and-install.sh ``` 该脚本使用仅快进(fast-forward-only)方式从 `origin/main` 进行更新,因此它会停止而不是重写本地历史记录。如果 HomebrewApp 正在运行,它会在关闭并替换之前询问用户。如果安装失败,之前的应用会自动恢复。安装的构建版本是未签名的,仅供本台 Mac 本地使用。 要在不安装应用的情况下从命令行构建: ``` xcodebuild build \ -project app/HomebrewApp/HomebrewApp.xcodeproj \ -scheme HomebrewApp \ -destination 'platform=macOS' \ CODE_SIGNING_ALLOWED=NO ``` ## 安全性 某些 cask 操作需要管理员权限。HomebrewApp 会创建一个临时的、仅限用户的 `SUDO_ASKPASS` 助手程序,它会显示原生的隐藏密码对话框。密码将直接传递给 `sudo`,绝不会存储在应用状态或日志中,并且该助手程序会在命令退出时被移除。 ![HomebrewApp administrator password prompt displayed while a package operation is running.](https://static.pigsec.cn/wp-content/uploads/repos/cas/b8/b8532cf4051326fd2ba9ec86b7f48db44eca7536897bb227cba7df7063a55e19.png) 自定义命令参数在不进行 shell 评估的情况下进行分词。每个额外的值都必须是一个 option,option 的值使用 `--option=value`,而包类型来自于独立的 Formula/Cask 控件。命令运行器仅公开其原生的允许列表(allow-list),最多保留一个包目标,并防止命令链接或重定向。 **禁用 tap 信任检查** 设置默认处于关闭状态。Tap 信任面板可以信任或取消信任特定的 tap,而警告徽标、**来自不受信任的 Taps** 过滤器以及包级别的**信任 Tap…** 操作有助于在授予整个 tap 信任之前审查已安装的包。请优先使用完全限定的包名称,并仅在您了解并信任受影响的第三方 tap 时才启用更广泛的覆盖选项。 ## 文档 请在 [hap.rewheels.xyz](https://hap.rewheels.xyz/) 阅读完整的用户指南,包括包浏览、发现、tap 管理、维护工作流、设置和导出。
标签:GUI工具, Homebrew, SwiftUI, 包管理器, 桌面应用, 统一API