2013-02-27 10 views
5

Z powodzeniem zainstalowałem rbenv i ruby ​​zbudować na lwa. Running rbenv install 1.9.3-p392 kończy:rbenv instalacja sumy kontrolnej ruby ​​niedopasowanie osx

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

pliku, który jest pobieranie wydaje się w porządku, a jeśli mogę pobrać plik ręcznie za pomocą curl, mam taką samą błędną sumę kontrolną.

Czy ktoś to wcześniej spotkał? Jak to rozwiązali?

Odpowiedz

9

tl: dr; Pobierz Ruby przy użyciu przeglądarki z http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p392.tar.gz i umieścić go w ~/.rbenv/caches/ruby-1.9.3-p392.tar.gz, a następnie uruchomić rbenv install 1.9.3-p392

problem leży curl, a serwer ftp.ruby-lang.org. Ponieważ curl nie przechodzi przez Accept-Encoding: gzip, serwer dostarcza nie-zgzętą wersję ruby ​​(~ 60mb) zamiast skompresowanej wersji (~ 12mb). Powoduje to, że suma kontrolna nie powiedzie się i kompilacja zostanie zatrzymana.

Pobranie pliku z nagłówkiem "Accept-Encoding: gzip", podaje poprawną sumę kontrolną. Jednak najnowsza wersja programu rbenv przekazuje flagę -q do zwinięcia, która ignoruje pliki .curlrc, co utrudnia konfigurację bez edytowania źródła.

Łatwe rozwiązanie polega na ręcznym pobraniu pliku ruby.tar.gz i umieszczeniu go w folderze pamięci podręcznej, pomijając całkowicie problem.

+5

Dzięki. Wygląda na to, że katalog pamięci podręcznej to teraz '~/.rbenv/cache' ** no s na końcu **. – Craz

+0

Musiałem to zrobić również w wersji 2.0.0-p0. Pracował przyjemność - dzięki! – Jurgen

+1

Odkryłem, że moje '~/.curlrc', który" skompresował "jako jedną z opcji, było źródłem problemów. –

0

Nie jestem pewien, czy jest to powiązane, ale po tym, jak miałem ten problem, i przeczytałem odpowiedź @ Cam, zdecydowałem zainstalować loki z naparami, a kiedy spróbowałem ponownie zainstalować ruby, zadziałało.

Więc brew install curl i sprawdź, czy to działa.

Powiązane problemy