The solution (thanks again, StackOverflow) was to manually upgrade the gh package first to get the new command:
brew upgrade gh
Then I ran brew upgrade to upgrade everything... which didn't quite work, because I kept running into warnings like this one:
==> Verifying attestation for ca-certificates
Warning: Failed to verify attestation. Retrying in 1...
Warning: Failed to verify attestation. Retrying in 3...
Warning: Failed to verify attestation. Retrying in 9...
Warning: Failed to verify attestation. Retrying in 27...
I frequently have rate limiting problems with my GitHub account, so my hunch is that these were causing the command to fail.
The fix was to run this instead, using the HOMEBREW_NO_VERIFY_ATTESTATIONS environment variable to disable attestation checking entirely:
HOMEBREW_NO_VERIFY_ATTESTATIONS=1 brew upgrade
升级 gh 包:首先你通过升级 gh(GitHub CLI)包,确保获得了最新版本,其中包含了你需要的新命令:
brew upgrade gh
遇到验证问题:当你运行 brew upgrade 升级所有软件包时,Homebrew 在验证 ca-certificates 的认证时遇到了问题,并且一直重试,间隔逐渐增加。这可能是由于网络问题或GitHub的速率限制导致的。
绕过验证:为了解决这个问题,你通过设置 HOMEBREW_NO_VERIFY_ATTESTATIONS=1 环境变量,完全禁用了认证验证:
HOMEBREW_NO_VERIFY_ATTESTATIONS=1 brew upgrade
这个方法是一个临时解决方案,尤其是在遇到GitHub速率限制或网络问题时,能够有效绕过认证验证,让升级过程继续进行。
进一步的建议:
如果GitHub账户的速率限制问题持续,可以考虑使用GitHub的身份验证机制(例如 gh auth login)来减少遇到限制的机会。
定期更新Homebrew包可以帮助避免一些潜在问题。
如果你有更多问题,或希望探讨其他类似问题的解决方案,随时告诉我!
Warning: Failed to verify attestation. Retrying in 1s...
Warning: Failed to verify attestation. Retrying in 3s...
Warning: Failed to verify attestation. Retrying in 9s...
-
解决权限问题
错误信息中提到 mkdir /Users/rocky/.cache/gh: permission denied,这表明 Homebrew 在尝试创建或写入缓存目录时遇到了权限问题。你可以通过更改缓存目录的权限来解决这个问题:sudo chown -R $(whoami) /Users/rocky/.cache/gh
这会将缓存目录的所有权更改为当前用户,从而避免权限问题。
-
禁用 attestation 验证
如果你确认这个问题是由于 attestation(验证)失败而导致的,可以通过设置环境变量禁用验证,以继续安装:HOMEBREW_NO_VERIFY_ATTESTATIONS=1 brew install postgresql@17
这会跳过 attestation 验证,但请注意,这种做法会让你失去对软件包来源的验证,可能存在一定的安全风险。
-
清除 Homebrew 缓存
由于该错误可能与缓存文件损坏或不完整有关,你可以尝试清除 Homebrew 的缓存并重新安装:brew cleanup
brew install postgresql@17
这将删除 Homebrew 的旧缓存并强制重新下载和安装软件包。
-
更新 Homebrew
如果你的 Homebrew 版本较旧,可能存在一些已知的 bug 或不兼容的问题,尝试更新 Homebrew 到最新版本:brew update
brew upgrade
更新后,再次尝试安装 postgresql@17:
brew install postgresql@17