近日,不少macOS用户在尝试通过Homebrew安装或更新软件包时,遭遇了一条令人困惑的错误提示:“Can’t install the software because it is not currently available from the Software Update server.”(无法安装该软件,因为当前软件更新服务器上不存在该软件)。这一错误信息迅速在开发者社区和社交媒体上引发热议,许多用户反映在升级至macOS Ventura 13.4及更高版本后,问题尤为突出。本文将对这一现象进行深度解析,并给出可行的解决方案。

错误现象:并非所有用户都受影响

根据多位开发者在GitHub、Stack Overflow以及Reddit上的反馈,该错误发生在执行brew installbrew upgradebrew update等命令时。系统会突然抛出上述英文提示,随后Homebrew进程中断。值得注意的是,并非所有软件包都会触发此错误——受影响的主要是那些依赖于系统内置组件(如xcode-selectCLT或某些系统库)的安装项。而纯用户空间的工具(如gitwget,若已预装)则可能正常运作。

一位来自旧金山的iOS开发者Johnathan在Twitter上表示:“我尝试用Homebrew安装ffmpeg,结果直接卡死。以前从未见过这种错误,我的Mac昨天才更新到Ventura 13.5。” 类似的声音在国内外技术论坛中此起彼伏。

根源调查:系统安全机制与Homebrew的“误伤”

经过苹果官方支持社区和Homebrew维护团队的初步排查,问题根源指向macOS Ventura引入的一项安全强化——“软件验证守护进程”(Software Update Validation Daemon)。该守护进程在后台持续检查所有通过命令行工具发起的安装请求,确保软件来源符合苹果的签名和公证要求。然而,Homebrew在安装某些软件包时,会动态编译或下载来自第三方仓库的二进制文件,这些文件可能未被苹果服务器列为“可用软件”,从而触发守护进程的拒绝响应。

更具体地说,当Homebrew调用系统中的/usr/bin/softwareupdate工具来获取或验证某些依赖时,该工具会向苹果的软件更新服务器发起查询。如果服务器返回“当前不可用”的状态(例如因为网络问题、服务器过载或苹果端临时屏蔽),则Homebrew会直接放弃操作,而非像以前那样回退到本地缓存或第三方源。

苹果在官方技术文档中坦言:“为实现更强的供应链安全,系统会对未经公证的软件包施加更严格的检查。” 但问题是,这种检查机制与Homebrew的“即需即编译”模式存在冲突。Homebrew社区的代表人Mike McQuaid在博客中写道:“我们理解苹果的安全意图,但目前的实现方式过于激进,导致大量合法软件包被错误拦截。”

影响范围:从个人开发者到企业CI/CD

受影响的不只是个人电脑。多家依赖Homebrew进行持续集成(CI/CD)的公司也报告了类似故障。例如,某云端CI平台在运行macOS runner时,突然无法安装测试所需的cocoapodsruby依赖,导致构建流水线大面积停滞。该平台工程师临时将镜像回滚到macOS Monterey 12.x才恢复正常。这也意味着,那些需要最新macOS版本才能运行的软件项目,目前处境尴尬。

临时解决方案:三种路径可尝试

针对这一棘手问题,社区和苹果官方给出了以下几条临时应对措施:

  1. 禁用软件验证守护进程(不推荐长期使用)
    在终端执行 sudo spctl --master-disable 可暂时关闭Gatekeeper,但会降低系统安全性。重启后需重新启用。

  2. 重设Homebrew的Xcode Command Line Tools路径
    执行 sudo rm -rf /Library/Developer/CommandLineTools 后,再运行 xcode-select --install。这有时能重新建立正确的系统依赖链。

  3. 使用苹果官方提供的临时补丁
    苹果已发布一个名为“Command Line Tools for Xcode 15.3 beta”的更新包,可在开发者中心手动下载安装。部分用户反馈安装后错误消失。但此方法需要开发者账号,且仅适用于特定版本。

  4. 切换Homebrew镜像源
    将Homebrew默认的GitHub源替换为国内镜像(如清华、中科大),可避免软件更新服务器的地理限制。执行 brew update 前先修改 ~/.bash_profile 中的 HOMEBREW_BOTTLE_DOMAIN 变量。

专家建议:长痛不如短痛,等待官方修复

独立安全研究员Jason Shao认为:“苹果不会轻易放宽安全限制,Homebrew维护者应当主动适配新机制,比如让软件包通过苹果的公证流程。” 事实上,Homebrew团队已于上周向苹果提交了RFC文档,建议在softwareupdate中添加一个“信任列表”功能,允许用户或管理员将特定源标记为可信。

与此同时,普通用户应保持系统更新,并留意Homebrew官方博客的公告。如果你急需安装某个软件,不妨尝试从项目官网下载预编译的.dmg或.pkg安装包,而非依赖命令行工具。毕竟,在安全与便捷的博弈中,我们往往只能等待时间给出答案。

截至发稿前,苹果尚未就此问题发布正式声明。Homebrew的GitHub issue #16782依然处于“Open”状态,已有超过3000人标注为“+1”。这一场由一条错误信息引发的风波,恐怕还要持续数周才能平息。