5

我已经在山狮上成功安装了 rbenv 和 ruby​​ 构建。运行rbenv install 1.9.3-p392结束于:

checksum mismatch: ruby-1.9.3-p392.tar.gz (file is corrupt) expected f689a7b61379f83cbbed3c7077d83859, got 1cfc2ff433dbe80f8ff1a9dba2fd5636

它正在下载的文件似乎很好,如果我使用 curl 手动下载文件,我会得到相同的错误校验和。

有没有人遇到过这个?他们是如何解决的?

4

2 回答 2

9

tl:博士;使用浏览器从http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz下载 ruby​​ 并将其放入~/.rbenv/caches/ruby-1.9.3-p392.tar.gz,然后运行rbenv install 1.9.3-p392

问题在于curl, 和ftp.ruby-lang.org服务器。因为 curl 不通过Accept-Encoding: gzip,服务器提供了 ruby​​ 的非 gzip 版本(~60mb)而不是压缩版本(~12mb)。这会导致校验和失败,并且构建停止。

使用 curl --header "Accept-Encoding: gzip" 下载文件,会给出正确的校验和。但是,最新版本的 rbenv 将 -q 标志传递给 curl,它会忽略 .curlrc 文件,这使得在不编辑源代码的情况下很难进行配置。

简单的解决方案是手动下载 ruby​​.tar.gz 并将其放在缓存文件夹中,完全跳过该问题。

于 2013-02-27T21:22:11.980 回答
0

不确定是否相关,但是在我遇到这个问题并阅读了@Cam 的答案之后,我决定从 brew 安装 curl,当我再次尝试安装 ruby​​ 时,它起作用了。

所以brew install curl并检查它是否适合你。

于 2013-09-10T22:00:20.587 回答