软件管理一直是计算机用户的「老大难」问题之一。

在 Linux 发行版中,有包管理器用于软件部署;后来,又有了基于「容器」概念的 Docker 。对于 Windows 用户来说,如果你是国产「免费」软件的用户,你可以轻易在各大「软件管家」中获取自己想要的软件并保持更新,有部分软件甚至还支持「一键安装」体验。

而对于 Mac 用户来说,大量精品软件来自国外App 付费习惯较为普遍,Windows 上那一套便不是很行得通了。

macOS 上,软件管理方面的工具当真不少。但配置顺序不当很容易出现严重问题,比如下面那位老哥。

安装顺序引发的惨案
安装顺序引发的惨案

因此,初始选择对之后的管理方式有极为重大的意义。

在 macOS 上管理软件,有哪些选择?

  • 软件平台:Mac App Store 或 Setapp

App Store(左)与 Setapp(右)
App Store(左)与 Setapp(右)

  • 包管理器:HomeBrew 或 MacPorts 或 Fink

从左到右:Fink、HomeBrew、MacPorts
从左到右:Fink、HomeBrew、MacPorts

  • 容器管理Docker

  • 软件本身:官网一次下载,依赖自主更新

软件平台之 Mac App Store

Mac App Store 是 Apple 于 2010 年 10 月宣布、2011 年 1 月开放的 App 分发平台,是在 App Store 大获成功后的一次移植尝试。Mac App Store 中的 App 必须严格遵循安全沙盒模型,因此部分实用类 App 会出现权限受限功能缺失(相比官网版本)。Mac App Store 的优势有如下几点:

  • 更新方便:既可以用命令进行更新,也可以在 Mac App Store 中检查并更新。
  • 速度稳定:相对于其他国外的软件源来说,Mac App Store 的连接速度尚可。在国内主流运营商的百兆宽带环境下,一般都能达到 4.5MB/s 。
  • 支付便利:与 iTunes 共享支付方式,无需额外配置
  • 权限安全:App 只拥有用户权限,访问关键目录需要手动授权。同时 Apple 的审核也会保证软件的安全。
  • 独占应用:许多个人开发者为了分发便利,只在 Mac App Store 分发自己的应用,而其中不乏诸如 iPic、Pin 等精品。

同时,也有一些不足:

  • 带宽浪费:一般来讲,在国内网络环境下 Mac App Store 很难发挥全部带宽,但这个问题并没有那么重要。
  • 资源较少:很多 App 因为权限或分发问题并没有在 Mac App Store 上架。
  • 更新较慢:受制于 Apple 对 App 更新的审核流程,App 更新上架 Mac App Store 往往要比官网慢上一会儿。部分 App 甚至在 Mac App Store 弃坑停更了。

知名效率应用 Alfred 的 Mac App Store 版本已逾五年未更新
知名效率应用 Alfred 的 Mac App Store 版本已逾五年未更新

软件平台之 Setapp

Setapp 是知名 Mac 软件开发商 MacPaw 推出的订阅制付费 App 平台服务。不论 App 本身是一次性付费还是订阅制付费,在 Setapp 平台上你都无需担忧任何额外的支出即可随意安装、使用、升级,只需要向平台缴纳一笔还算合理的订阅费。

Setapp 意图成为 Mac App 聚合的第一平台(图截自 Setapp 官网)
Setapp 意图成为 Mac App 聚合的第一平台(图截自 Setapp 官网)

Setapp 成立初期有 49 款 App 入驻,而一年后的今天已经有超过 100 款 App ,而且大部分都是精品中的精品,并且价格不菲。当然,笔者用过的最「价格不菲」的 App ——Sketch 和 Parallels Desktop 并未入驻。

Setapp 的优势有:

  • 成本较低:相对于单独购买来说,这样按期订阅制的体验更加划算一些——前提是用得上这么多优质 App 。
  • 质量优异:口碑极佳、屡获殊荣的 App 大量入驻,另外还有部分行业的领军 App 也有入驻,可以在其中发现精品(而且不需要额外支出)。
  • 学生优惠:学生的优惠价格不可谓不低廉,一个月一杯咖啡即可 get 大量付费应用。

三种订阅价格比较,学生优惠价格极低但需要年付(图截自 Setapp 官网)
三种订阅价格比较,学生优惠价格极低但需要年付(图截自 Setapp 官网)

Setapp 也有其劣势:

  • 没有中文:算是有一点不方便,虽然对笔者没啥影响。
  • 支付不便:不支持国内主流支付工具(包括银联卡),MasterCard、Visa、PayPal 可能不得不成为国内用户支付的主要渠道了。
  • 其他不明:很遗憾,支付方式上的局限拦住了笔者对 Setapp 的体验(我才不会承认还有另一个原因是想蹭完 Ulysses 的免费体验期呢๑乛◡乛๑)。

包管理器之 Fink 和 MacPorts 简述

Fink 移植了 Debian 上的包管理器,它全部采用二进制包分发,因此完全不需要编译。但更新迟缓,包数量较少、版本较低。

MacPorts 则移植了 BSD 上的包管理器。它和 Fink 完全相反,全部采用编译安装,因此安装时间与应用工程量、硬件配置关系密切,笔记本往往会大量耗电并发热且风扇噪声大作。好处则是编译得到的包更稳定,且收录全面。

包管理器之 HomeBrew

HomeBrew 兼得 Fink 和 MacPorts 的特点,对于有已编译的二进制包则直接下载安装,没有的就下载源码进行编译安装。它也可以通过配置参数达到仅二进制包分发或全部编译安装的效果,可以说功能强大。同时支持扩展,最著名且实用的可能是 Caskroom(支持分发 .dmg 或 .pkg 格式的 App 安装包)。

HomeBrew 为了避免 sudo 权限执行,允许了 User 权限访问系统的部分关键目录来完成安装。这是一把双刃剑,需要妥善管理以避免被恶意软件应用。

HomeBrew 虽然支持 App 分发,但 Caskroom 仍有其不足(在更新方面)。如何克服这个问题,在后续的「更新篇」会提供方法,但仍然推荐用户选择直接使用 Caskroom 。

Fink 已经不在考虑范围,对于 HomeBrew 和 MacPorts 的取舍笔者有如下建议:

选择 MacPorts :

  • 对于需要大量编译安装软件包的;
  • 对于不希望诸如 /usr/local 这样的目录被普通用户修改的;
  • 对于需要在 /usr/local 以外安装软件包的。

选择 HomeBrew:

  • 普通用户;
  • 希望用包管理方式管理 Mac App 的;
  • 不一定需要编译安装的。

容器化应用:Docker

Docker 近期的大热离不开其「容器化」特性:部署快速、支持集群、跨平台统一……可对于大部分用户,这用来管理那些 for Mac 的软件显然并不合适。

官网分发

不可否认的是,官网分发绝对是获取更新最快的渠道,但也是最烦人的。除非上述平台都没有的软件,笔者不是很推荐这种方式。同时,也建议谨慎选择不自带升级程序又没有对应分发平台的软件。

下篇预告

平台的选择介绍完后,下一节将会介绍如何配置安装各种环境及工具。