我正在尝试使用自制软件安装某些软件,并且在下载并尝试安装其中一个依赖项时,由于MD5不匹配,该软件包将无法安装。
是否有可能使自制程序忽略文件的MD5哈希并继续进行安装?
我正在尝试使用自制软件安装某些软件,并且在下载并尝试安装其中一个依赖项时,由于MD5不匹配,该软件包将无法安装。
是否有可能使自制程序忽略文件的MD5哈希并继续进行安装?
Answers:
正如您在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
然后将您计算出的值输入捆绑软件的公式文件中,然后重新运行捆绑软件的安装命令。
几分钟前,我尝试安装的公式出现了相同的问题。我尝试使用--force标志运行安装,但是并没有覆盖MD5检查(这很有意义TBH)。
遵循Ian C.在他的回答中给出的建议,我继续进行“啤酒更新”。完成之后,我可以为我要安装的公式运行安装程序,并且可以正常运行/不再存在MD5不匹配的情况。
这是指向Homebrew存储库中一个问题的链接(有关httrack的问题,这是我在遇到此问题时试图安装的问题),基本上可以确认运行“ brew update”可以解决您的问题。
https://github.com/mxcl/homebrew/issues/11242
如果运行“旧版更新”不能解决问题,请执行以下任一操作:
在A的情况下,您可以按照Ian C的描述自己更新公式-强烈建议您提交拉取请求,以在上游存储库中对其进行更新,以使所有人也从中受益!
对于B,公式可能引用了旧的URL,或者下载可能被破坏或引用了错误的文件,等等。在这种情况下,您可能必须进行一些研究,然后与项目负责人联系,继续进行研究。或类似。