十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

BrewUI:给Homebrew套上图形界面,让Mac软件包管理不再依赖命令行

BrewUI:给Homebrew套上图形界面,让Mac软件包管理不再依赖命令行 1. 为什么我把 BrewUI 装上了从一条命令说到图形界面如果你用过 Mac 做开发大概率听说过 Homebrew——那个让你在终端里敲brew install装软件的神器。它好用是好用但说实话它的使用门槛一直卡在“命令行”这三个字上。我记得有次帮同事排查环境问题他在终端里敲了一条brew list想看自己装了哪些包结果看到几百行密密麻麻的包名当场就懵了哪些是常用的哪些是可以清理的哪些之间还存在依赖关系完全看不出来。后来我发现了 BrewUI一个给 Homebrew 套上图形界面的开源工具。它的定位很直接把 Homebrew 的能力全部可视化让那些不想背命令、不想跟终端日志搏斗的人也能用鼠标完成大部分软件包管理操作。对于开发者来说它可以作为日常环境维护的辅助面板对于刚接触 Mac 命令行生态的新手来说它几乎是把命令行操作的试错成本降到了零。这篇文章我会把 BrewUI 从安装到实战的全过程写清楚包括它能干什么、怎么用它、有哪些我已经踩过的坑。内容不涉及太复杂的原理所有操作都是我在实际环境中验证过的可以直接照着做。提示BrewUI 本身不替代 Homebrew它更像是一个 Homebrew 的“遥控器”。你的 Mac 上仍然需要先安装 Homebrew这个后面会说。先说结论如果你已经熟练使用 Homebrew 的命令行操作BrewUI 可能不会让你觉得“惊艳”——毕竟命令行的自由度更高。但如果你偶尔需要管理软件包、又不想记那些参数或者你身边有朋友/同事不是程序员但需要用 Mac 装开发环境那 BrewUI 绝对值得一试。我把它装上的第一周就再也没因为“忘记某个命令”而去翻历史文档了。2. BrewUI 的核心能力拆解它到底能帮你做什么BrewUI 不是简单地把命令行结果搬到一个窗口里而是围绕“软件包管理”这个场景重新组织了一套交互逻辑。我用了一个多月最常碰的功能有以下几类。2.1 已安装软件包的可视化列表这是 BrewUI 最基础也最实用的模块。打开主界面你看到的是一张完整的软件包列表每个包都展示了名称、版本号、安装方式formula 还是 cask、占用空间、最近更新时间等信息。相比终端里一片接一片的纯文本输出这种表格形态能让人一眼就找到自己关心的内容。这里有个细节值得说Homebrew 管理的软件包分为两大类一类是命令行工具和库formula比如 git、node、python另一类是图形化应用程序cask比如 Chrome、VS Code。很多刚接触的人会混淆这两个概念在命令行里用brew list看到的东西和在“应用程序”文件夹里看到的东西对不上原因就在这里。BrewUI 会自动把这两类分开展示并且在过滤器里提供“只看 cask”“只看 formula”的按钮省去了概念理解成本。2.2 搜索与一键安装从输入命令到点击按钮在终端里安装一个软件包你要先确认包名再敲brew install xxx如果包名拼错了终端会直接报错然后你得去搜索正确的名字再试一次。BrewUI 把这个过程简化成了在搜索框输入关键词系统会匹配所有相关的 formula 和 cask点击安装按钮剩下的交给工具处理。实测中我发现它对模糊搜索的支持做得不错。比如我想装一个用来做 HTTP 请求测试的工具输入 “http”它会把 httpie、http-server、httpd 等相关的包都列出来每个包旁边还有一段简短的描述帮助你判断哪个是自己想要的。这个体验比命令行里brew search输出的纯文字列表要友好太多。还有一个我比较喜欢的小功能安装进度可视化。命令行安装时是一行接一行的日志输出在下载大软件包时容易让人产生“是不是卡住了”的错觉。BrewUI 在安装过程中会展示实时的下载进度条并且明确区分“正在下载”“正在解压”“正在链接”等阶段直观程度上了一个量级。2.3 批量更新把容易忽略的维护工作变成一次点击Homebrew 长时间不更新的话依赖库的版本会逐渐落后轻则某些工具报“版本不兼容”重则影响整个环境。但现实中很多人并不会每周都主动去跑brew update brew upgrade。我自己的习惯是隔两周才想起来检查一次有时甚至要等到某个命令报错才处理。BrewUI 把更新入口放在了界面最显眼的位置启动时它会自动检查本地 Homebrew 的状态如果有可更新的软件包右上角会显示一个数字角标。点进去可以看到每个包的当前版本和目标版本并且支持按包勾选想全部更新就全选想只更新某一个也别担心连坐。批量更新的过程同样有进度展示实测更新十几个包时不需要一直盯着终端偶尔切过去看看有没有失败项就行。2.4 依赖关系图与冗余清理Homebrew 的依赖机制是软件包管理的核心魅力也是新手最容易懵的地方。一个软件包装好后可能会自动带入十几个依赖库这些依赖库里有一些是其他软件包也需要的有些则只是被这一个包独占。时间长了系统里会积累大量“不再被任何包需要”的依赖垃圾。命令行里的处理方式是brew autoremove但很多初学者根本不知道还有这个清理操作就算知道了也不确定它会删掉什么怕误删。BrewUI 把依赖关系做成了可视化的树状图选中任意一个软件包它依赖什么、被谁依赖一清二楚。在“清理”面板里它会列出当前所有未被引用的依赖包并提示你“这些包目前没有被任何软件依赖可以安全移除”点击清理即可。我第一次用这个功能的时候系统提示有 30 多个可清理项我当场就删了。清理完跑了一遍常用工具全部正常说明这个冗余判断的逻辑是可靠的。2.5 版本切换与链接管理给有经验用户准备的进阶功能除了上述这些基础操作BrewUI 还提供了一些进阶功能比如软件包的版本切换。比如你同时装了某个工具的两个版本它允许你在不同版本之间切换当前生效的版本这背后对应的其实是对brew switch或brew link命令的封装。这类高级功能的使用场景相对少一些但对于确有需求的人来说能省去记参数的时间。我自己在测试项目兼容性时用过几次切换功能整个操作就是选择目标版本、点击确定比在终端里查brew info再手动链接要省心。3. 安装与上手指引从零到能用的完整路径这部分我写得详细一点因为很多人卡在第一步——没搞明白“BrewUI 和 Homebrew 到底该先装哪个”。3.1 环境准备先确认 Homebrew 是否就绪BrewUI 是 Homebrew 的图形界面客户端不是一个独立的包管理器。所以在安装 BrewUI 之前你的电脑上必须先有能正常工作的 Homebrew。在终端里执行brew --version如果返回类似Homebrew 4.x.x的输出说明已经安装好了直接进入下一步。如果提示command not found那需要先安装 Homebrew。官方推荐的方式是/bin/bash -c $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)这个过程会下载 Command Line Tools 并配置好环境耗时取决于网络状况。安装完成后重新打开终端再次执行brew --version确认成功即可。注意如果你的 Mac 是 Apple Silicon 芯片M1/M2/M3Homebrew 的默认安装路径是/opt/homebrewIntel 芯片的路径是/usr/local。BrewUI 在检测路径时一般能自动识别但如果之后出现找不到 Homebrew 的情况优先检查这个路径差异。3.2 安装 BrewUI两种方式任选BrewUI 的安装方式有两种我用的是第一种方式一通过 Homebrew 安装推荐如果你已经是 Homebrew 用户直接在终端执行brew install brewui它会自动下载应用并完成初始配置。安装完成后在“启动台”里搜索 BrewUI 就能找到图标。方式二下载安装包你也可以从 BrewUI 的官方发布页面下载对应的.dmg文件拖拽到“应用程序”文件夹完成安装。这种方式适合那些还没有安装 Homebrew、想先体验界面效果的人。我第一次使用方式二装完打开应用后它提示“未找到 Homebrew”我当时还愣了一下后来才反应过来这个工具只是外壳核心还是得靠 Homebrew 来干活。所以如果你选择了方式二记得装完 BrewUI 之后还是要去把 Homebrew 补上。3.3 首次启动权限授权与仓库加载首次启动 BrewUI 时它会请求一些权限主要包括文件读写权限和终端执行权限。这个环节不用紧张它只是需要读取 Homebrew 的安装目录、执行 brew 命令来收集数据。授权完成后界面上会有一个短暂的“正在加载仓库”状态——这个过程实际上是在执行brew update把 Homebrew 的软件包索引更新到最新。索引大小取决于网络状况通常几分钟内能完成。如果等了很长时间还在转圈大概率是网络连接问题可以检查一下代理设置。另外我第一次启动时遇到了一个小问题界面显示空列表没有任何软件包。后来发现是权限没有完全授权导致 BrewUI 读不到数据。到“系统设置 - 隐私与安全性”里把对应权限打开重启应用就正常了。3.4 浅探界面布局几分钟就能上手BrewUI 主界面的整体布局是典型的“左侧导航 右侧内容区”。左侧依次是“仪表盘”“已安装”“搜索”“更新”“清理”“仓库设置”等入口右侧根据当前选中的模块展示对应的操作面板。仪表盘是会让你快速了解系统状态的页面Homebrew 版本、软件包总数、待更新数量、可清理空间、上次更新时间等信息一览无余。这个页面适合每次打开时先扫一眼判断系统的健康度。搜索页是最常用的模块搜索框在页面上方下方是搜索结果列表。点击任何一个软件包右侧会滑出详情面板展示版本信息、依赖关系、网站链接等。详情面板里就有“安装”按钮整个操作链路是完整的。4. 实测使用记录从一台裸机到日常维护的完整链路前面把功能拆开讲了这一节我以“新电脑从零搭建环境”为场景完整走一遍 BrewUI 的实际使用流程让大家对它的操作节奏有一个整体感知。4.1 场景一新电脑搭建开发环境假设我拿到一台全新的 MacHomebrew 已经装好现在要装 Node.js、Git、VS Code、Google Chrome 这些常用开发工具。传统命令行方式需要四到六次brew install并且还要处理不同命令之间的依赖。用 BrewUI 的话我先打开搜索页逐个输入名称并点击安装。每一个包安装完成后界面上会有明确的完成提示安装失败的包也会高亮显示方便定位原因。这里我感觉最方便的是 cask 类软件也就是图形化应用的安装。命令行方式安装 VS Code 后很多人会忘了它会自动出现在“应用程序”文件夹里还以为装失败了。BrewUI 则在安装完成后提供了一个“打开应用”按钮点击即可启动体验和 App Store 差不多了。不过也要说句公道话如果用命令行把几条 install 命令拼成一条执行速度上其实比 GUI 逐条操作更快。BrewUI 的优势不在于速度而在于操作过程中的信息透明和犯错率低。4.2 场景二日常更新维护每隔一两周我会打开 BrewUI先看仪表盘的“待更新数量”有没有变化然后进入更新页面勾选所有需要更新的包点击更新。实测下来更新十来个包全程大概需要 5 到 10 分钟取决于包的大小和数量。屏幕上的进度条会显示当前正在更新的包名和整体进度不需要像终端那样盯着一行行滚动的日志。更新完成后我会顺手去清理页面看一眼——软件包升级后有时会留下旧版本的冗余文件。根据 BrewUI 的提示如果存在“未被引用的依赖”就点清理按钮几秒钟就完成。4.3 场景三排查软件包问题有一次我发现某个已经安装的 CLI 工具版本不对但明明几天前才更新过。我打开 BrewUI 的已安装列表找到那个工具查看了它的版本和安装时间发现它被另一个软件包“连带降级”了。这个问题在命令行里排查起来其实有点绕需要brew deps --tree xxx查依赖树还要brew info xxx看版本历史。而 BrewUI 的依赖关系图直接把“谁导致了这个版本变化”展示得很直观——顺着有问题的工具点开依赖树很快就看到一个工具对版本有锁定要求导致它被降级。虽然最后还是需要命令行来解决但排查的路径短了很多。5. 同类工具横向对比BrewUI、Cakebrew 与其他方案市面上不只有 BrewUI 一个 Homebrew 图形界面工具选型的时候大家肯定会纠结。我把主流方案放在一起对比过这里给出我的主观看法。对比项BrewUICakebrew纯命令行操作方式图形界面图形界面UI 较传统终端命令安装方式brew install brewuibrew install --cask cakebrew无需额外安装软件包搜索内置搜索带描述支持搜索brew search依赖关系图可视化支持较弱仅列表brew deps --tree批量更新支持勾选批量支持一键更新brew upgrade界面语言简体中文英文为主英文适合人群新手、中文用户、图形化偏好者习惯传统 Mac 风格者资深开发者从功能覆盖度看BrewUI 是最全面的——它不仅仅是把列表放可视化还做了依赖关系图、冗余清理、版本切换这些进阶能力。Cakebrew 更像是 Homebrew 官方 GUI 的“古典实现”该有的基本操作都有但交互上没有太多创新。如果你是完全的命令行熟手这两个 GUI 工具对你来说都只是辅助但假如你需要在非开发人员面前演示“如何装软件”或者你自己就是那个不想碰终端的人那 BrewUI 的易用性优势会被放大很多。6. 我踩过的坑和给你的避坑建议最后这部分是我最想写的。我用 BrewUI 的过程中遇到了一些问题有的解决了有的花了不少时间才定位到原因提前告诉大家能省很多麻烦。6.1 GUI 操作和命令行操作可能互相“覆盖”BrewUI 本质上还是在调用 Homebrew 的命令行工具。如果你一边用 BrewUI 安装某个软件包一边又在终端里手动执行安装另一个软件包有可能造成进程冲突。我遇到过一次BrewUI 显示安装失败错误信息指向“lock file 被占用”就是因为我同时在终端里跑了一次brew install。建议用 BrewUI 做批量操作时尽量别再开终端跑 brew 命令。等界面上的操作结束再用命令行干活。6.2 仓库源慢导致加载超时BrewUI 首次加载依赖brew update来同步索引。如果你的克隆源连接不稳定界面会长时间停留在加载状态甚至直接报超时。很多人第一反应是软件坏了其实只是网络问题。建议如果碰到这个情况先在终端里手动执行一次brew update确认能正常完成后再打开 BrewUI。如果终端也慢那要考虑更换 Homebrew 的镜像源这不是 BrewUI 自身能解决的问题。6.3 “自动清理”不要手滑全选BrewUI 的清理页面会列出“未被引用的依赖”一键清理确实方便但有个别情况需要留意某些依赖虽然没被“引用”但你可能有其他手动配置依赖它比如你手动设置过某个工具的环境变量或者某个脚本直接调用了它的二进制路径。清理掉以后这些功能会失效。建议清理前先看一眼列表如果对某个包有印象不确定是否还需要就把它的勾选取消。宁可少清理几个也不要为了清空间误伤环境。6.4 应用图标启动了但是啥也不显示这个问题的原因很可能是权限。BrewUI 首次启动后会请求访问你的主目录和 Homebrew 安装目录如果弹出的权限对话框被你误点了“不允许”应用就会处于“假运行”状态窗口能打开但内容全是空的。建议遇到空列表先去“系统设置 - 隐私与安全性 - 文件与文件夹”里找到 BrewUI 并把相关开关打开然后重启应用。这个问题在这类工具里其实还挺常见的不只是 BrewUI 一家。6.5 版本切换功能值得谨慎使用前面提到 BrewUI 支持版本切换这个功能本质上是在改动当前生效的软件版本影响范围比“装一个新包”要大。如果你对一个软件包的版本兼容性没有把握不建议轻易切换尤其是那些被很多其他包依赖的底层工具比如 openssl、python。我一开始没注意把主 Python 的版本切换了结果导致好几个用到了旧版库的脚本全部报错后来切回来才恢复。建议版本切换前先看一下依赖关系图确认有哪些包会受到影响。如果是实验性的测试尽量做完马上切回原版本。最后再分享一个小技巧如果你日常主力还是命令行但又不想完全放弃 BrewUI可以把它当作一个“环境健康检查工具”来使用。不必每次安装删除都打开它而是偶尔启动看看仪表盘上的更新数和冗余空间用它在“宏观层面”发现那些命令行里不容易察觉的问题。我现在的习惯是每周花一分钟打开 BrewUI 扫一眼状态有更新就点一下有冗余就清一下剩下的安装操作仍然用终端搞定。两套工具各司其职配合起来效率最高。
返回列表