SlyDen/HomebrewApp
GitHub: SlyDen/HomebrewApp
一款原生 macOS SwiftUI 应用,为 Homebrew 包管理器提供图形化的浏览、安装、维护和 tap 管理界面。
Stars: 1 | Forks: 0
# HomebrewApp
HomebrewApp 是一款原生 macOS SwiftUI 应用,用于浏览、安装和维护 Homebrew formulae 和 casks。

## 功能
### 浏览已安装的包
- 立即加载缓存的包信息,随后从 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`,绝不会存储在应用状态或日志中,并且该助手程序会在命令退出时被移除。

自定义命令参数在不进行 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