rbenv安装ruby校验和不匹配osx

时间:2013-02-27 21:22:12

标签: ruby macos curl rbenv

我已经在山狮上成功安装了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手动下载文件,我会得到相同的错误校验和。

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

2 个答案:

答案 0 :(得分: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

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

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

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

答案 1 :(得分:0)

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

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