2013-02-27 76 views
5

我已成功安装rbenv和红宝石建立在山狮。 运行rbenv install 1.9.3-p392结尾:rbenv安装Ruby校验和不匹配OSX

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

的文件,这是下载似乎罚款,如果我下载的文件使用curl手动,我会得到相同的校验和不正确。

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

回答

9

TL:博士;从http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz下载使用浏览器中的红宝石,并将其放置在~/.rbenv/caches/ruby-1.9.3-p392.tar.gz,然后运行rbenv install 1.9.3-p392

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

下载,卷曲的文件--header“接受编码:gzip”,给出了正确的校验。但是,最新版本的rbenv会传递-q标志来卷曲,这会忽略.curlrc文件,因此很难在不编辑源文件的情况下进行配置。

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

+5

谢谢。它看起来像缓存目录现在是'〜/ .rbenv/cache' ** **没有结束**。 – Craz 2013-03-01 23:42:11

+0

也必须为2.0.0-p0做这个。工作过一次 - 谢谢! – Jurgen 2013-03-07 03:10:26

+1

我发现我的'〜/ .curlrc'这个'--compressed'作为其中一个选项是问题的根源。 – 2013-04-19 16:22:37

0

不知道是否有关,但之后,我有这个问题,并阅读@凸轮的答案,我决定从酿造安装卷曲,当我试图再次安装Ruby它的工作。

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