这是由于 Homebrew 中当前的错误造成的,已合并修复

这是由于 Homebrew 中当前的错误造成的,已合并修复

当我尝试在 OS X 10.11.6 上安装时android-platform-toolshomebrew遇到了以下错误(完整粘贴如下):

$ brew cask install android-platform-tools
==> Satisfying dependencies
==> Downloading https://dl.google.com/android/repository/platform-tools_r28.0.1-
######################################################################## 100.0% /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/utils/quarantine.swift:29:30: error: 'quarantinePropertiesKey' is only available on OS X 10.10 or newer
      forKey: URLResourceKey.quarantinePropertiesKey
                             ^ /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/utils/quarantine.swift:29:30: note: add 'if #available' version check
      forKey: URLResourceKey.quarantinePropertiesKey
                             ^ Error: Failed to quarantine /Users/User/Library/Caches/Homebrew/downloads/e3de3bef9f7f114325f5d2be854f297cc85e6e17a490c9f267b1c838ee225340--platform-tools_r28.0.1-darwin.zip. Here's the reason: /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/utils/quarantine.swift:29:30: error: 'quarantinePropertiesKey' is only available on OS X 10.10 or newer
      forKey: URLResourceKey.quarantinePropertiesKey
                             ^ /usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/utils/quarantine.swift:29:30: note: add 'if #available' version check
      forKey: URLResourceKey.quarantinePropertiesKey
                             ^

这对我来说没有意义,因为这个系统运行的是 OS X 10.11.x。

我是否需要完全卸载并重新安装 homebrew?如果可能的话,我宁愿不这样做,因为我目前已经通过 homebrew 安装了一些东西。

我确实在此之前立即运行过brew update,因此 homebrew 应该是最新的。

答案1

这是由于 Homebrew 中当前的错误造成的,已合并修复

每期#4809

您好,PR #4656 似乎破坏了 brew cask 在 10.11 上的安装。我在 10.11 上遇到错误,但在 10.12 上没有。作为一种解决方法,使用 --no-quarantine 标志重新运行成功。我不确定为什么这个 swift 功能不可用,我的操作系统是最新的。

(剪辑)

/usr/local/Homebrew/Library/Homebrew/cask/lib/hbc/utils/quarantine.swift:29:30: error: 'quarantinePropertiesKey' is only available on OS X 10.10 or newer
      forKey: URLResourceKey.quarantinePropertiesKey

(ETC)

(剪辑等属于我)

这和您所面临的问题是一样的。

有一个 PR (#4796)解决了这个问题,并于一天前(2018-09-06)被合并到master中:

我编写的 Gatekeeper API 依赖于最新的 CLT(或 Xcode)安装,以及用于本机递归的 xattr 的 -r 标志。在某些情况下,Swift 太旧或设置为早于 MacOS 10.10 的部署目标,因此无法使用 URLResourceKey.quarantinePropertiesKey 常量。并且在当前的 Mojave 测试版中,xattr 没有用于执行本机文件系统遍历的 Apple 的 -r 扩展。

此次拉取请求在 Swift 脚本 Quarantine.available? 函数和 brew cask doctor 中插入了额外的检查,并且更改传播以使用 xargs 进行递归。

brew截至撰写本文时,最新版本为1.7.3,于9月3日上映。

笔记:我刚刚运行了brew update,它告诉我正在运行1.7.3提交5d894,这是今天(2018-09-07)提交的,是最新版本的homebrew-core在撰写本文时。

半解决办法

如果你尚未下载文件,你可以尝试使用no-quarantine,即

$ brew cask install --no-quarantine android-platform-tools

然而,由于您已经拥有这些文件,因此不幸的是它们应该已经被隔离了。

相关内容