2013-02-27 4 views
5

산 사자에 rbenv 및 ruby ​​빌드를 성공적으로 설치했습니다. 는 rbenv install 1.9.3-p392를 실행하면 끝납니다 :rbenv ruby ​​checksum mismatch osx 설치

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

는 다운로드가 잘 보인다 파일, 그리고 수동으로 컬을 사용하여 파일을 다운로드하는 경우, 나는 같은 잘못된 체크섬을 얻을.

누구에게 전에이 문제가 발생 했습니까? 그들은 그것을 어떻게 해결 했습니까?

답변

9

tl : dr; 다음 rbenv install 1.9.3-p392

문제는 curl로 거짓말을하고 ftp.ruby-lang.org 서버를 실행, 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에 넣습니다. 컬은 Accept-Encoding: gzip을 통과하지 않기 때문에 서버는 압축 버전 (~ 12MB) 대신 루비 (~ 60MB)의 비 gzip 버전을 제공합니다. 이로 인해 체크섬이 실패하고 빌드가 중지됩니다.

curl --header "Accept-Encoding : gzip"으로 파일을 다운로드하면 올바른 체크섬이 제공됩니다. 그러나 rbenv의 최신 버전은 curl에 -q 플래그를 전달합니다.이 플래그는 .curlrc 파일을 무시하므로 소스를 편집하지 않고 구성하기가 어렵습니다.

쉬운 해결책은 ruby.tar.gz를 수동으로 다운로드하여 캐시 폴더에 저장하고 문제를 완전히 건너 뛰는 것입니다.

+5

감사합니다. 캐시 디렉토리가 이제'~/.rbenv/cache' **처럼 보이지 않습니다 **. – Craz

+0

2.0.0-p0에도이 작업을 수행해야합니다. 치료를했습니다 - 고마워요! – Jurgen

+1

옵션 중 하나로'--compressed'를 사용했던'~/.curlrc'가 문제의 원인임을 발견했습니다. –

0

관련된 것이지만 그 문제가 발생한 후 @ Cam의 대답을 읽은 후 저는 양조에서 컬을 설치하기로 결정했습니다. 다시 루비를 설치하려고 시도했을 때 효과가있었습니다.

그래서 brew install curl과 맞는지 확인하십시오.

관련 문제