我必须重置 MacBook Pro(2012 年中 15 英寸,装有 macOS Catalina),为了在重置后重新安装所有应用程序,我考虑使用 Homebrew 而不是传统方法(从每个站点下载并安装 .dmg 文件)。所有这些都是 GUI 应用程序(如果我理解正确的话,Homebrew 术语中的“Casks”)。所以我有一些问题:
这里我读到过 Homebrew 的缺点之一是安装程序在 中
/usr/local
。但这个过程的真正缺点是什么?如果真的有缺点,为什么开发人员会选择这种方法?我注意到 TexLive,我认为一个成熟的程序,默认安装在 中/usr/local
。这里第一段解释了使用内置方式自行升级的应用程序(如绝大多数 casks/GUI 应用程序)可能存在 Homebrew 的操作与内置机制之间的冲突,但在常见问题解答的末尾写道,使用选项
auto_updates true
Homebrew 将更新责任留给应用程序本身,从而避免了冲突。所以我不明白安装冲突是否真的存在问题。我安装了一些 cask 来测试 Homebrew 的工作原理,我真的很喜欢通过 CLI 进行所有操作的简单性,但是我在卸载这些应用程序时发现了一些问题。通常,当我必须卸载软件时,我总是以“完整”的方式进行(因此使用AppCleaner),而且效果非常好。
Homebrew 完全卸载某些东西的方法是添加选项
--zap
,但如果安装了我不想删除的同一开发人员的东西(例如,Google Drive 文件流和 Chrome),就会造成混乱。所以我做了另一个测试:我用 HB 安装了一个软件,然后用 AppCleaner 卸载了它,但现在 HB 一直认为该应用程序仍然安装(用 检查brew list
)。所以我的问题是:有没有办法用 HB 安装某些东西并用 App Cleaner 卸载它,但让 HB 知道现在该程序不再安装?
我认为问题 2 和 3 存在的主要原因有两个:与 Linux 不同,macOS 的 GUI 应用程序不是为由 Homebrew 之类的包管理器管理而设计的,而且 HB 本身就是为公式而生的,CLI 软件不会出现这两个问题(casks 是后来添加的,用于尝试从终端管理所有内容)。你觉得这有道理吗?
答案1
对我来说,Homebrew 的最大优势在于它提供的便利性和易用性。你不必费心处理编译器、makefile 等,而且你拥有大量可以轻松安装的应用程序brew install
。
如果您担心 (2) 升级和 (3) 卸载,那么 Homebrew 可能不适合您。听起来您希望对安装进行更多的手动控制,而 Homebrew 却做了很多“魔术”来隐藏用户无法看到的细节。