12

我正在通过 homebrew 安装一些东西,但其中一个依赖项无法安装,说下载的工件具有与 homebrew 期望的不同的 SHA1 校验和。罪魁祸首是suite-sparsev4.2.1,从检查自制问题跟踪器来看,这个包的所有者似乎倾向于在不影响版本的情况下进行更改。

我与自制专家有一张票,可以仔细检查这个包并审查新的 SHA1。同时..

即使 SHA1 不正确,是否可以强制自制软件安装软件包?

我不介意进行一些手动安装,只要该软件包仍然对自制软件友好并且将来brew update会更新到最新版本而不会出现问题。

4

3 回答 3

25

通过 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 文件,并使用 brew预期的文件名将mv其复制到/Library/Caches/Homebrew/其中。SHA1 不匹配也发生了同样的错误,但下载似乎是正确的,因为我已经下载并检查了内容。

使用brew edit libmpc08在本机文本编辑器中调出公式。我找到了这条线:

sha1 '5ef03ca7aee134fe7dfecb6c9d048799f0810278'

并将其更改为

sha1 '5900fdfc7894c52ce7a3ab7ea6ebd29af22f0b70'

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

于 2014-09-24T02:40:38.673 回答
4

我不介意做一些手动安装

在这种情况下,克隆自制软件仓库;更新suite-sparsesha1(即获取它,使用shasum二进制文件——你应该已经有了这个;如果你没有,继续安装它)。

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

% brew install suite-sparse.rb

或者,您可以执行以下操作:

% brew install whatever --ignore-dependencies
于 2013-10-10T08:44:29.157 回答
3

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

假设brew install <formula>因 SHA 不匹配而失败:

  1. brew edit <formula>- 应该打开编辑器
  2. 通过前缀注释掉任何sha...#
  3. 保存存档
  4. brew install <formula>
于 2018-08-21T21:48:26.250 回答