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:dr; 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、サーバーは、圧縮されたバージョン (~12mb) ではなく、gzip されていないバージョン (~60mb) の ruby​​ を配信します。これにより、チェックサムが失敗し、ビルドが停止します。

curl --header "Accept-Encoding: gzip" を使用してファイルをダウンロードすると、正しいチェックサムが得られます。ただし、最新バージョンの rbenv は -q フラグを curl に渡します。これは .curlrc ファイルを無視するため、ソースを編集せずにこれを構成するのは困難です。

簡単な解決策は、ruby.tar.gz を手動でダウンロードしてキャッシュ フォルダーに配置し、問題を完全にスキップすることです。

于 2013-02-27T21:22:11.980 に答える