Mac 怎么安装软件?App Store、DMG、PKG 与 Homebrew 的安全做法

Mac 怎么安装软件?App Store、DMG、PKG 与 Homebrew 的安全做法

作者 Josh Callahan阅读约 12 分钟

你下载了一个 App,在「下载」文件夹里打开了文件,然后面对的是一个「应用程序」快捷方式、一个安装器窗口,或者一条死活不让你继续的警告。可与此同时,App 官网只说了一句:双击就能用。

想搞懂 Mac 怎么安装软件,最有用的思路是把安装、Gatekeeper 放行、隐私权限这三件事分开看。把 App 拷到你的 Mac 上,并不等于认可了它的开发者;允许它启动,也不等于它能访问你的项目文件夹或屏幕。动手改任何设置之前,先弄清楚自己卡在哪一步。

根据文件类型选择安装方式 ​

看开发者提供的是哪种文件,选对应的那一行,别照搬你从别的 App 那里记下来的步骤。

在 Mac 上安装软件的四种方式

方式适用场景要打开什么如何更新首次检查
Mac App Store想要 Apple 上架的 App,并带内置更新App Store 中的「获取」或「购买」App Store上架前经过 Apple 审核
DMG 拖拽安装开发者官网提供包含 .app 的磁盘映像.dmg,然后把 .app 拖到「应用程序」App 内置更新或重新下载首次打开时由 Gatekeeper 检查
PKG 安装包安装需要驱动、系统文件或向导式安装器.pkg新的安装包或 App 内置更新Gatekeeper 检查安装包
Homebrew想在「终端」里安装工具或桌面 caskbrew install 或 brew install --caskbrew upgrade该 formula 或 cask 的来源与签名

如果你要的 App 在 App Store 里有,那是个不错的起点。下载和更新它都替你包办了,不用自己管安装文件。开发者官网下载则可能提供不同的发布渠道,或者需要向导式安装器的组件,但选对下载文件、保持更新,就都是你自己的事了。

如果你本来就习惯在「终端」里管理软件,Homebrew 很好用。但装普通的桌面 App 并不一定要它;为了省掉把 App 拖进「应用程序」这一步而特意装个包管理器,通常只会更麻烦。

先看看下载包里到底是什么 ​

DMG 只是个容器,不一定就是安装方式。打开一个里面装着 Firefox.app 的磁盘映像,你通常是把这个 App 拷进「应用程序」。打开一个里面装着安装包的磁盘映像,你就得去运行那个安装包。

Homebrew 的 cask 可以安装 VLC 这样的普通桌面 App。formula 通常用来安装 wget 这类命令行工具;区别在于 Homebrew 怎么打包这个软件,而不是「终端」能不能启动它。

App Store 为什么让人觉得亲切,其实有一段历史:Apple 关于 Mac App Store 的公告提到,它于 2011 年 1 月上线,首日下载量就超过 100 万,到 2011 年 12 月 12 日下载量突破 1 亿。不过开发者官网下载从来没有消失过,所以 App Store 看着像默认选项,并不代表它对每个 App 都是正确的途径。

安装 App 和系统修复是两回事 ​

安装一个应用程序,不该需要重装操作系统。如果你同时在修另一台 Windows 电脑,NeoTeo 的 Windows 重装教程讲的是另一回事。别把 Windows 的恢复步骤套到只需要拷贝或放行的 Mac App 上。

只用下面对应的那一套步骤就行。其他方式跳过,别给同一个 App 装出好几份重复的副本。

从 App Store、DMG、PKG 或 Homebrew 安装 ​

照着你手里的下载文件走对应的流程,然后启动装好的那一份。下面的文件名只是具体的例子;开发者提供的下载可能带版本号,或者名字不同。

下面这几条路径,标出了安装工作到底发生在哪里。

一张信息图,展示在 Mac 电脑上安装软件的四种方式:App Store、DMG、PKG 和 Homebrew。

App Store 安装 ​

  1. 打开 App Store。 从「应用程序」中启动 App Store.app,如有提示,用你的 Apple 账户(以前叫 Apple ID)登录。
  2. 找到确切的 App。 在 App Store.app 中搜索 Tintd,它已在 Mac App Store 上架。认准它的详情页,别随手点了名字相近的结果。
  3. 确认下载。 在 App Store.app 中点按「获取」或显示的价格,然后完成账户、密码或触控 ID 的确认。
  4. 确认安装完成。 等 App Store.app 里出现「打开」,再到访达的「应用程序」文件夹里确认下载好的 App。进度条还在走,不能算安装完成。

DMG 安装 ​

  1. 从开发者官网下载。 把官方的磁盘映像,比如 Firefox.dmg,存到「下载」文件夹。别用下载站,也别点那些冒充开发者下载按钮的广告。
  2. 有校验值就核对文件。 对 Firefox.dmg,如果开发者公布了 SHA-256 校验值,就运行 shasum -a 256 ~/Downloads/Firefox.dmg,把完整结果和该版本对应的值逐一比对。
  3. 挂载映像。 双击 Firefox.dmg,访达应该会显示它的内容;光是打开映像,并没有安装任何东西。
  4. 拷贝应用程序。 把 Firefox.app 拖到映像窗口里的「应用程序」快捷方式上。如果没有快捷方式,就拖进访达的「应用程序」文件夹。
  5. 推出映像。 拷贝完成后,点按访达中已挂载的 Firefox.dmg 宗卷旁边的推出按钮。如果访达提示映像正在使用,先退出那个 App。
  6. 启动装好的那一份。 打开 /Applications/Firefox.app,而不是挂载映像里的那份。

Apple 关于下载 Mac 软件的指引支持这样做:使用官方分发渠道,把应用程序拷进「应用程序」文件夹或运行它提供的安装包,并检查兼容性。把最终的 App 放在「应用程序」里,也能让你清楚自己打开的是哪一份。

PKG 安装 ​

  1. 打开安装包。 双击官方的 .pkg,比如 Zoom.pkg。如果它在 DMG 里,先打开映像,再打开里面的安装包。
  2. 看清选项。 在 Zoom.pkg 的安装器里,查看安装位置;如果有「自定」,点开检查可选组件。别为了图快,把不相干的附加项也一并装上。
  3. 谨慎授权。 当 Zoom.pkg 请求管理员授权时,确认这确实是你打算运行的安装包。安装包能装的东西可能不止应用程序本身。
  4. 完成并清理。 Zoom.pkg 安装完成后点按「关闭」,推出外层的映像,再从「应用程序」里启动装好的 App。

Homebrew 安装 ​

  1. 确认 Homebrew 能用。 打开 /Applications/Utilities/Terminal.app(「终端」)并运行 brew --version。如果提示找不到命令,先按 Homebrew 官方说明完成安装,再试各种包命令。
  2. 选择 formula 还是 cask。 在 Terminal.app 中,命令行工具用 brew install wget,桌面 App VLC.app 用 brew install --cask vlc。用包的准确 Homebrew 名称。
  3. 读一读注意事项。 命令跑完之前别关 Terminal.app。按提示处理相关的 PATH 设置,然后试一下 wget --help,或者打开 /Applications/VLC.app。

如果是搭开发环境,我们的Mac 开发者工具指南可以帮你在装一整套用不上的东西之前先做取舍。

这个视频可以作为安装流程的直观参考。

启动之前,先对照开发者的要求看一眼苹果菜单 > 关于本机。搭载 Apple 芯片的 Mac 可能需要 Apple 芯片版或通用版,或者用 Rosetta 来运行受支持的 Intel 版 App。签名再有效,也没法让软件在不受支持的 macOS 版本上跑起来。

首次打开时 Gatekeeper 会检查什么 ​

Gatekeeper 放行针对的是下载来的软件,不是你拷得对不对。 一个 App 就算已经躺在「应用程序」里,启动时照样可能被拦下。从 App Store 之外获取的安装包和插件,同样要接受检查。

Apple 的平台安全指南说明,Gatekeeper 会验证开发者身份、Apple 公证,以及软件自签名以来是否被改动过;它还指出,macOS Catalina 及之后的版本通常要求在 App Store 之外分发的软件经过公证。公证的意思是,Apple 对提交的软件扫描过已知的恶意内容,并且在审核当时没有发现。

首次打开时的这几项检查,能帮你分清这是例行确认,还是信任出了问题。

一张信息图,详细说明从 Mac App Store 之外打开软件时 Gatekeeper 执行的四项安全检查。

把检查项翻译成有用的问题 ​

  • 开发者身份。 签名身份和你打算下载的发布者对得上吗?公司名和产品名可能不一样,但对不上又解释不通,就值得查一查。
  • 公证。 这个分发出来的版本通过 Apple 的自动审核了吗?没经过审核,和 macOS 判定下载内容是恶意软件,是两回事。
  • 完整性。 下载下来的软件,还和开发者签名时的内容一致吗?内容被改过,可不是反复点掉警告就能解决的。
  • 来自互联网。 提示一个 App 是从互联网下载的,只是普通的首次打开确认。同意打开之前,先看清 App 的名字和来源。

这套检查并不保证它的每个功能都安全、合适。开发者的网站、应用的用途、它之后提出的各种请求,是否合情合理,仍然要你自己判断。

比如,来自官方发布者的视频播放器,干的事一目了然。而一个通过无关广告页分发、还让你先降低安全设置才能安装的所谓视频播放器,就该另当别论。

警告问的是这一个文件,不是让你对以后所有下载都放松检查的理由。

网络与单位的限制 ​

macOS 可以联网检查已知的恶意软件和已被吊销的开发者证书。所以离线启动和联网启动的表现可能不同;别以为离线测试成功,就说明这个 App 当前的信任状态没问题。

如果一个正规 App 离线时表现异常,先连上可信的网络再重试,不要急着改设置。这样修不了无效的签名,但能避免把拿不到验证信息误当成安装失败。

单位或学校的 Mac 可能只允许安装 App Store 里的软件。如果管理策略拦住了某个 App,去找 IT 部门申请批准,别想着绕过限制。

我们的 Mac App 精选能帮你比较各种选择。但推荐毕竟不能代替你去核实即将打开的这个发布者和这份下载。

App 装好之后要授予的权限 ​

「应用程序」里有了图标,不代表这个 App 就能干活了。隐私授权和安装、启动放行是分开的,所以 App 可能正常打开,却在读取受保护的文件夹或录制屏幕时失败。

只为你有意使用的功能授予权限,别把 App 可能请求的每一项能力都放行。下面的设置流程,把这几个决定分开处理。

一幅手绘插图,展示在 Mac 电脑上安装软件并授予权限的步骤。

让权限和任务对得上 ​

  1. 触发你想用的功能。 打开 Tintd.app,只有在想要自动设置样式时才启用「文件夹监视」(Folder Watcher)。我们的文件夹监视需要「完全磁盘访问权限」,你第一次启用时 macOS 会请你授权。
  2. 查看请求内容。 打开 System Settings.app(「系统设置」),选择隐私与安全性。找到被点名的那个类别,别把不相干的开关都打开。
  3. 授予所需的访问权限。 在「系统设置」中,在相应的权限类别下批准这个应用程序。如果 macOS 要求,就退出并重新打开受影响的 App。
  4. 不再需要时收回权限。 回到「系统设置」里的同一个类别,关掉这个 App 的访问权限,然后重新测试你仍在用的功能。

手动给文件夹上色并不需要「完全磁盘访问权限」。这个区别很有用:启用我们的自动监视功能,才值得授予这项权限,而手动改文件夹颜色用不着它。

权限或设置可能需要它的任务
文件和文件夹在受保护的位置打开或存储文件
可移除宗卷处理存放在外置硬盘上的项目
完全磁盘访问权限某个有文档说明的功能需要更广泛地访问受保护文件
自动化控制另一个 App,比如访达
屏幕录制或屏幕与系统音频录制为录制或会议捕捉屏幕
后台项目主窗口关闭后仍运行辅助程序

「后台项目」可能在通用 > 登录项与扩展里管理,而不是在隐私面板中。设置的名称和位置在不同的 macOS 版本之间可能有变化,所以可以在「系统设置」里搜索提示中显示的那个名称。

请求被拒不一定是你的错 ​

Apple 的 macOS Sequoia 发行说明指出,App 群组容器可能受系统完整性保护(SIP)的保护,权限声明不当的 App 可能会弹出访问请求,也可能被直接拒绝。这时可能需要开发者来修复 App;扩大用户权限并不一定是答案。

创意工具、开发工具和学生做项目用的 App,在打开文件夹、加载扩展或启动辅助程序时,经常碰上这类限制。在改任何访问权限之前,先记下是哪个功能出了问题。

你主动开始录制的屏幕录像工具,可以允许它访问屏幕。而一个标榜只编辑本地文本文件的 App,要是莫名其妙地请求「通讯录」、「照片」或屏幕权限,就先拒绝,看过开发者的说明再决定。

修复被拦截的下载或打不开的 App ​

行动之前先读警告。开发者身份问题、下载损坏、构建版本不受支持,各自要的修法不一样,尽管它们都会让 App 打不开。

根据警告的措辞和表现,选出对应的诊断行。别因为哪份旧教程承诺能消除警告,就照着运行「终端」命令。

Mac 安装时的警告及应对

你看到的提示通常的原因稳妥的下一步
无法验证开发者没有 Developer ID 签名如果信任官方来源,先尝试打开一次,再到「隐私与安全性」里点「仍要打开」
Apple 无法检查其是否包含恶意软件未经公证从开发者处重新下载;只对这个你信任的 App 使用「仍要打开」
App 已损坏,无法打开下载损坏,或文件在签名后被改动删除后重新下载;别绕过
无法在这台 Mac 上启动仅限 Intel 的构建版本、缺少 Rosetta,或 macOS 版本过旧查看开发者对芯片和 macOS 的要求
推出之后 App 不见了是从 DMG 里直接启动的,或「下载」里的临时副本后来被删了把 .app 拷进「应用程序」,打开那一份
已安装,但某个功能失败某个隐私开关还没打开只启用该功能需要的那项权限

什么情况下可以单独放行 ​

这里只有前两行,才可能是有意设置安全例外的候选。即便如此,光是认识那个网站还不够:你还得知道自己为什么需要这个 App,并且对它缺少签名或公证有个说得通的解释。

Apple 关于安全打开 Mac App 的指引介绍了针对你信任的软件的仍要打开恢复途径,并说明 macOS Sequoia 不再允许用 spctl 禁用 Gatekeeper。把整个系统的安全级别降下来,不是合适的修复办法。

比如官方的 Firefox.app 构建版本意外弹出了身份警告,在考虑设置例外之前,先确认你下载的确实是目标版本。主流 App 出现反常的警告,是该去调查的理由,而不是自动放行的理由。

  1. 尝试启动。 打开受影响的 .app,比如 /Applications/Firefox.app,打开一次并关掉拦截提示。这样 macOS 就记录下了这次启动尝试。
  2. 查看例外选项。 打开「系统设置」,选择隐私与安全性,在被拦截 App 的详细信息旁边找到仍要打开。
  3. 只批准这一个 App。 在「系统设置」中点按仍要打开,如有要求就验证身份,然后确认启动。如果这个选项不可用,别拿全局绕过来代替。

什么时候该停止折腾 ​

出现「已损坏」警告,该走的是重新下载这条路。删掉有问题的 App 和安装文件,从官方开发者那里重新获取一份,别用那些去掉安全元数据的命令来强行打开。

如果 macOS 判定它是恶意软件,或者说这个 App 会损坏你的电脑,就停手。这和「无法验证开发者」不是一回事,也不适用上面那套例外流程。

如果在受支持的 Mac 和 macOS 版本上干净地重新下载之后,官方构建版本仍然失败,就联系开发者。把确切的警告内容、App 版本、芯片类型、macOS 版本,以及是启动时失败还是用到某个功能时失败,一并告诉他们。

最后核对: 来自官方网站,警告对上了某个诊断行,最多只对单个 App 设置例外。

卸载不想要的 App,然后收手 ​

把试用的 App 删掉,是正常的整理。你不必因为装的时候费了劲,就把软件留着;也不用专门找个清理工具,去删一个普通的应用程序包。

先退出这个 App。如果它有菜单栏辅助程序或后台服务,在移除主应用之前也一并退出。

用对应的方式移除 ​

  • App Store 的 App。 把 Pages.app 这样的 App 从「应用程序」拖到废纸篓。在提供「启动台」删除功能的 macOS 版本上,也可以用启动台来删除。
  • 拖拽安装的 App。 把 /Applications/Firefox.app 拖到废纸篓,确定不再需要之后再清倒废纸篓。只删掉 Firefox.dmg,移除的仅仅是安装映像。
  • 用安装包装的软件。 如果发布者为 Zoom.app 这类软件提供了卸载程序,就用它。安装包可能装了辅助程序或其他组件,光把主 App 拖进废纸篓是清不掉的。
  • Homebrew 装的软件。 打开「终端」,formula 运行 brew uninstall wget,桌面 cask 运行 brew uninstall --cask vlc。用你安装时的同一个包名。

残留的偏好设置,并不是随便翻进「资源库」乱删文件夹的理由。如果需要重置设置或移除额外的组件,按开发者文档里写的移除说明来。

想想是不是真的需要另一个 App ​

如果你要的 App 能正常打开,又只拥有其功能所需的权限,那就大功告成了。别把一次成功的安装,变成一下午没必要的系统改动。

如果你最初的烦恼是桌面上一堆一模一样的蓝色项目文件夹,那么 Tintd 是个可选的下一步,可以从 Mac App Store 安装。我们让你只需几下点按就能给文件夹图标上色,任何自定义过的文件夹,一键即可恢复成 macOS 访达原来的文件夹图标。

这只是个整理上的选择,和让其他软件装得正确无关。如果文件夹图标对你的工作流程无所谓,那就别再多装一个 App,到此为止。


Tintd 提供文件夹颜色和自定义图标,让你在访达里更容易区分项目文件夹。如果装好软件之后,这正是你接下来想解决的问题,不妨访问 Tintd,看看手动设置样式和文件夹监视,哪一种更适合你的工作流程。

Josh Callahan

作者

Josh Callahan

文案撰稿人

分享这篇文章

准备好让您的文件夹变得漂亮了吗?

只需点击几下即可为您的文件夹图标上色。

下载 Mac 版