我正在通过自制软件安装一些东西,但其中一个依赖项未能安装,说下载的工件具有与自制程序预期不同的SHA1校验和。罪魁祸首是suite-sparse
v4.2.1,并且通过检查自制问题跟踪器,似乎该软件包的所有者倾向于在不破坏版本的情况下进行更改。
我和自制专家签了一张票来仔细检查这个包并审核新的SHA1。在此期间......
即使SHA1不正确,是否可以强制自制程序安装程序包?
我不介意做一些手动安装,只要该软件包仍保持自制软件,未来brew update
将更新到最新版本而不会出现问题。
答案 0 :(得分:16)
通过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 edit [formula]
编辑brew公式中的预期sha1条目来解决问题
我直接从brew指定的服务器下载了libmpc08文件,并使用mv
将其复制到/Library/Caches/Homebrew/
,并使用brew预期的文件名。 SHA1不匹配时发生了同样的错误,但下载似乎是正确的,因为我已经下载并检查了内容。
使用brew edit libmpc08
在本机文本编辑器中显示公式。我找到了这条线:
sha1 '5ef03ca7aee134fe7dfecb6c9d048799f0810278'
并将其更改为
sha1 '5900fdfc7894c52ce7a3ab7ea6ebd29af22f0b70'
保存并运行brew install gcc49
安装完美无缺。
答案 1 :(得分:3)
我不介意做一些手动安装
在这种情况下,克隆自制回购广告;更新suite-sparse
sha1(即获取它,使用shasum
二进制文件 - 你应该已经拥有它;如果你没有,请继续安装它。)
使用更新的sha1值保存公式后,您甚至不必将其推回到github;你可以把它安装到位。
% brew install suite-sparse.rb
或者,您可以这样做:
% brew install whatever --ignore-dependencies
答案 2 :(得分:0)
警告::仅当您知道自己在做什么并且信任公式的来源以及下载的二进制文件时,才使用此功能。如果在通过brew安装软件时随机遇到SHA不匹配错误,请不要继续here或在相应的公式存储库中进行报告。如果可能的话,您也许也可以install an older version。
假设brew install <formula>
因SHA不匹配而失败:
brew edit <formula>
-应该打开编辑器sha...
为前缀对所有#
行进行注释brew install <formula>