Homebrew - 强制安装即使SHA1不匹配

15
我正在使用Homebrew安装某些内容,但其中一个依赖项安装失败,显示下载的程序包与Homebrew期望的SHA1校验和不同。罪魁祸首是suite-sparse v4.2.1,并从检查Homebrew问题跟踪器得知,该软件包的所有者倾向于在不增加版本号的情况下进行更改。
我已经向Homebrew专家提交了一个工单,以核实该软件包并审核新的SHA1。 在此期间...
是否可能强制Homebrew安装软件包,即使SHA1是不正确的?
我不介意手动安装,只要软件包始终保持Homebrew友好,并且未来的brew update可以无问题更新到最新版本。
3个回答

26

当通过brew安装gcc48 / gcc49或任何版本的gcc时,我遇到了类似的问题。问题出在libmpc08上:

Error: SHA1 mismatch
Expected: 5ef03ca7aee134fe7dfecb6c9d048799f0810278
Actual: 5900fdfc7894c52ce7a3ab7ea6ebd29af22f0b70
Archive: /Library/Caches/Homebrew/libmpc08-0.8.1.tar.gz
To retry an incomplete download, remove the file above.

我通过编辑brew配方中预期的sha1条目来解决了问题,使用命令brew edit [formula]

我直接从brew指定的服务器上下载了libmpc08文件,并使用mv将其复制到/Library/Caches/Homebrew/中,文件名与brew所需的相同。尽管我已经下载并检查了内容,但仍出现了SHA1不匹配的错误。

使用brew edit libmpc08在原生文本编辑器中显示了该配方。我找到了这一行:

sha1 '5ef03ca7aee134fe7dfecb6c9d048799f0810278'

并将其更改为

sha1 '5900fdfc7894c52ce7a3ab7ea6ebd29af22f0b70'

我保存并运行了brew install gcc49,安装完美进行。


7
警告:仅在您知道自己在做什么并信任公式来源和下载二进制文件的情况下使用此功能。如果您在通过brew安装软件时随机遇到SHA不匹配错误,请勿继续操作并在此处或相应的公式存储库中报告。如果有可用的旧版本,您也可以尝试安装旧版本

假设brew install <formula>失败并出现SHA不匹配:

  1. brew edit <formula> - 应该打开编辑器
  2. 通过添加#注释掉任何sha...
  3. 保存文件
  4. brew install <formula>

3

我不介意手动安装

在这种情况下,克隆homebrew仓库; 更新sha1(即获取它,使用shasum二进制文件--您应该已经有此文件;如果没有,请安装)。

一旦您保存了具有更新的sha1值的公式,您甚至不必将其推回到github;您可以直接安装它。

% brew install suite-sparse.rb

或者,你可以这样做:

% brew install whatever --ignore-dependencies

homebrew 项目的热心人在几个小时内修复了错误的 SHA1,我顺利地继续了工作。否则,我将不得不采取其他措施。很高兴有这份记录,谢谢。 - Sean Connolly
很高兴你得到了你需要的 :) - Wil Moore III

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接