我已经在山狮上成功安装了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手动下载文件,我会得到相同的错误校验和。
以前有人遇到过这个吗?他们是如何解决的?
答案 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
问题在于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并将其放在缓存文件夹中,完全跳过问题。
答案 1 :(得分:0)
不确定是否相关,但在我遇到这个问题之后,读了@ Cam的答案,我决定从brew安装curl,当我再次尝试安装ruby时,它工作了。
所以brew install curl
并检查它是否适合您。