安装Homebrew软件包并忽略md5哈希


9

我正在尝试使用自制软件安装某些软件,并且在下载并尝试安装其中一个依赖项时,由于MD5不匹配,该软件包将无法安装。

是否有可能使自制程序忽略文件的MD5哈希并继续进行安装?


您能否告诉我们哪个软件包,以及是否已经将Homebrew更新到最新版本?
slhck 2012年

手动下载md5 filename.extension并brew编辑公式名称,然后替换该md5哈希。
Tuan Anh Tran 2012年

Answers:


8

正如您在OP上留下的一条评论所述:我担心MD5的总和不匹配。这可能意味着您正在下载的tarball已损坏,在这种情况下,执行上述操作以覆盖匹配内容实际上会给您带来麻烦,因为您将安装损坏的工具。也可能是您下载的tarball无法获得信任,或者您得到的东西不合法,并且包含可能有害的例程。我将确保您的自制存储库是最新的:

brew update

如果确实是最新的,则可以尝试:

brew install --force <package>

强制安装。该选项通常只是强制重新安装已安装的相同版本的软件包,但它可能会忽略MD5错误。我在其中检查了安装例程,homebrew但显然这没有用。

更糟糕的情况是:您可以下载公式的tarball,手动为其计算MD5,然后使用适当的MD5值更新公式文件以通过检查。例如,如果您在安装dos2unix时遇到问题,可以在中找到公式文件/usr/local/Library/Formula/dos2unix.rb。文件顶部是tarball和它的MD5总和:

> more dos2unix.rb 
require 'formula'

class Dos2unix < Formula
  url 'http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz'
  md5 '438c48ebd6891b80b58de14c022ca69e'
  homepage 'http://waterlan.home.xs4all.nl/dos2unix.html'

如果MD5检查失败,请下载压缩包:

> wget http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
--2012-03-17 18:07:07--  http://waterlan.home.xs4all.nl/dos2unix/dos2unix-5.3.1.tar.gz
Resolving waterlan.home.xs4all.nl... 194.109.6.92, 2001:888:0:18::80
Connecting to waterlan.home.xs4all.nl|194.109.6.92|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 54967 (54K) [application/x-gzip]
Saving to: `dos2unix-5.3.1.tar.gz'

100%[==============================================================================================================>] 54,967      84.8K/s   in 0.6s    

2012-03-17 18:07:09 (84.8 KB/s) - `dos2unix-5.3.1.tar.gz' saved [54967/54967]

自己计算文件的MD5校验和:

> md5 dos2unix-5.3.1.tar.gz 
MD5 (dos2unix-5.3.1.tar.gz) = 438c48ebd6891b80b58de14c022ca69e

然后将您计算出的值输入捆绑软件的公式文件中,然后重新运行捆绑软件的安装命令。


1
@NewAlexandria是的,我在回答的第一段中提到了这样做的担忧。
伊恩·C(

1

几分钟前,我尝试安装的公式出现了相同的问题。我尝试使用--force标志运行安装,但是并没有覆盖MD5检查(这很有意义TBH)。

遵循Ian C.在他的回答中给出的建议,我继续进行“啤酒更新”。完成之后,我可以为我要安装的公式运行安装程序,并且可以正常运行/不再存在MD5不匹配的情况。

这是指向Homebrew存储库中一个问题的链接(有关httrack的问题,这是我在遇到此问题时试图安装的问题),基本上可以确认运行“ brew update”可以解决您的问题。

https://github.com/mxcl/homebrew/issues/11242

如果运行“旧版更新”不能解决问题,请执行以下任一操作:

  • A)公式中的MD5哈希值已过时,需要更新。
  • B)下载实际上不是预期的,实际上是正常的。

在A的情况下,您可以按照Ian C的描述自己更新公式-强烈建议您提交拉取请求,以在上游存储库中对其进行更新,以使所有人也从中受益!

对于B,公式可能引用了旧的URL,或者下载可能被破坏或引用了错误的文件,等等。在这种情况下,您可能必须进行一些研究,然后与项目负责人联系,继续进行研究。或类似。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.