Podczas próby pobrania Ruby 1.9.2 program RVM wyświetla błąd certyfikatu. Wygląda na curl
to, że występuje problem z certyfikatem, ale nie wiem, jak go ominąć. Poniżej zamieściłem dokładne informacje o błędzie.
$ rvm install 1.9.2
Installing Ruby from source to: /Users/willdennis/.rvm/rubies/ruby-1.9.2-p180, this may take a while depending on your cpu(s)...
ruby-1.9.2-p180 - #fetching
ERROR: Error running 'bunzip2 '/Users/willdennis/.rvm/archives/ruby-1.9.2-p180.tar.bz2'', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/extract.log
ruby-1.9.2-p180 - #extracting ruby-1.9.2-p180 to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
ruby-1.9.2-p180 - #extracted to /Users/willdennis/.rvm/src/ruby-1.9.2-p180
Fetching yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/archives
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log. Next we'll try to fetch via http.
Trying http:// URL instead.
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
curl performs SSL certificate verification by default, using a "bundle"
of Certificate Authority (CA) public keys (CA certs). The default
bundle is named curl-ca-bundle.crt; you can specify an alternate file
using the --cacert option.
If this HTTPS server uses a certificate signed by a CA represented in
the bundle, the certificate verification probably failed due to a
problem with the certificate (it might be expired, or the name might
not match the domain name in the URL).
If you'd like to turn off curl's verification of the certificate, use
the -k (or --insecure) option.
ERROR: There was an error, please check /Users/willdennis/.rvm/log/ruby-1.9.2-p180/*.log
Extracting yaml-0.1.3.tar.gz to /Users/willdennis/.rvm/src
ERROR: Error running 'tar zxf /Users/willdennis/.rvm/archives/yaml-0.1.3.tar.gz -C /Users/willdennis/.rvm/src --no-same-owner', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/extract.log
/Users/willdennis/.rvm/scripts/functions/packages: line 55: cd: /Users/willdennis/.rvm/src/yaml-0.1.3: No such file or directory
Configuring yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running ' ./configure --prefix="/Users/willdennis/.rvm/usr" ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/configure.log
Compiling yaml in /Users/willdennis/.rvm/src/yaml-0.1.3.
ERROR: Error running '/usr/bin/make ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.log
Installing yaml to /Users/willdennis/.rvm/usr
ERROR: Error running '/usr/bin/make install', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/yaml/make.install.log
ruby-1.9.2-p180 - #configuring
ERROR: Error running ' ./configure --prefix=/Users/willdennis/.rvm/rubies/ruby-1.9.2-p180 --enable-shared --disable-install-doc --with-libyaml-dir=/Users/willdennis/.rvm/usr ', please read /Users/willdennis/.rvm/log/ruby-1.9.2-p180/configure.log
ERROR: There has been an error while running configure. Halting the installation.
Jak mogę rozwiązać lub uniknąć tego błędu?
ruby-on-rails
curl
rvm
Will Dennis
źródło
źródło
Odpowiedzi:
W przypadku, gdy ktoś napotka to podczas próby aktualizacji do 1.9.3 (chociaż wersja prawdopodobnie nie ma znaczenia), sprawdź wersję rvm, którą masz. Wygląda na to, że Wayne przeniósł się z rvm.beginrescueend.com do rvm.io. Certyfikat bezpieczeństwa starej witryny wygasł, więc odpowiedź curl jest poprawna.
Aktualizacja rvm z nowej strony rozwiązała ten problem i pozwoliła mi przejść dalej.
$ \curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled
Aktualizacja : jak wspomniał @rodgerdpack, polecenie się zmienia i zaktualizowałem powyższe. Ogólnie, najnowsze informacje można znaleźć na stronie https://rvm.io/ .
źródło
Jeśli nie chcesz zmieniać skryptu ORAZ nie chcesz dodawać certyfikatu „na zawsze” do pakietu certyfikatów. Jest bardzo ładne i szybkie rozwiązanie:
#to download the cert wget http://curl.haxx.se/ca/cacert.pem #to let curl use it for the next calls export CURL_CA_BUNDLE=~/cacert.pem
Następnie uruchom skrypt. Aby zresetować zmienną środowiskową (dla kolejnych wywołań skryptów, które nie powinny używać tego certyfikatu), zaloguj się ponownie do systemu lub usuń ustawienie zmiennej środowiskowej:
export CURL_CA_BUNDLE=
źródło
Curl jest wywoływany w .rvm / scripts / fetch, który domyślnie będzie w twoim katalogu domowym.
Edytuj to za pomocą swojego ulubionego edytora tekstu: na przykład
nano ~/.rvm/scripts/fetch
W wierszach 56 i 58 (mogą się oczywiście różnić w innych wersjach RVM) zobaczysz rozpoczynające się dwa wiersze
fetch_command="curl ...
Po prostu dodaj -k po curl, zapisz i spróbuj ponownie.
źródło
echo insecure >> ~/.curlrc
lub nawet lepiej zaktualizuj certyfikaty zgodnie z instrukcjamiMusisz pobrać certyfikat ca z http://curl.haxx.se/ca/cacert.pem i dodać go do swojego pliku curl-ca-bundle-new.crt.
Aby znaleźć lokalizację tego pliku, użyj:
$ curl-config --ca /usr/share/curl/curl-ca-bundle.crt
Utwórz kopię zapasową pliku curl-ca-bundle.crt:
Następnie chcesz połączyć dwa pliki za pomocą:
$ cat cacert.pem /usr/share/curl/curl-ca-bundle.crt >> curl-ca-bundle-new.crt
źródło
Być może wszystkie te skomplikowane rozwiązania były kiedyś konieczne, ale teraz wszystko, co musisz zrobić, to najpierw zaktualizować RVM, a problem zostanie rozwiązany:
$ rvm get stable $ rvm reload $ rvm install ruby-1.9.3-p194
źródło
Jeśli nie masz nic przeciwko wyłączeniu sprawdzania certyfikatu w curl (ja nie mam):
echo insecure > ~/.curlrc
źródło
Na Centos 5.6 (Final) miałem problem z instalacją rvm 1.9.2 Błąd był taki:
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option. ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log. Next we'll try to fetch via http. Trying http:// URL instead. curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). The default bundle is named curl-ca-bundle.crt; you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option. ERROR: There was an error, please check /usr/local/rvm/log/ruby-1.9.2-p290/*.log ERROR: There has been an error while trying to fetch the source. Halting the installation. ERROR: There has been an error fetching the ruby interpreter. Halting the installation.
Oto lista działań, które pomogły mi rozwiązać problem
$ curl-config --ca # show path to the certificate /usr/local/share/curl/curl-ca-bundle.crt $ cd /usr/local/share/curl/ # go to that path $ cp curl-ca-bundle.crt curl-ca-bundle.crt.bak # backup certificate $ curl http://curl.haxx.se/ca/cacert.pem -o curl-ca-bundle.crt # download new $ rvm install 1.9.2 # bingo it works
Wersja Btw curl to curl 7.18.0 (aby sprawdzić '$ curl -V')
źródło
Próbowałem zainstalować
ruby-1.9.2-p290
i napotkałem ten sam problem. Po uruchomieniuwhich curl
i zdaniu sobie sprawy, że wystąpienie curl pochodziło z instalacji MAMP w moim systemie (OS X Snow Leopard), ponownie skonfigurowałem mojąPATH
zmienną, aby używała domyślnej wartości systemu/usr/bin/curl
. Korzystając z tej wersji,curl 7.19.7
nie miałem problemu z zainstalowaniem najnowszej wersji Ruby z RVM.źródło
Miałem problem z instalacją 1.9.2 przy użyciu RVM, oto moje rozwiązanie:
Uruchom te polecenia:
chmod 777 yaml-0.1.3.tar.gz
tar zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src
Nadal otrzymuję błąd „Nie znaleziono pliku”, ale instalacja przebiegła pomyślnie
źródło
wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz; cp yaml-0.1.4.tar.gz /Users/yourname/.rvm/archives; rvm install default
Dziękuję Dorothy - ten przepis zadziałał dla mnie z następującymi drobnymi modyfikacjami dla środowiska Win7:
Dla innych z tym problemem -
Doceń dyskusję na temat aktualizacji pakietu CA_Bundle - dobrze, ale to nie pomogło w tym problemie - certyfikat witryny pyyaml nadal będzie powodować wyświetlanie błędu przez CURL, a ponieważ CURL jest uruchamiany w instalatorze, nie ma możliwości dodania opcji -k .
Ruby 1.9.2-p290 próbuje zainstalować YAML 0.1.4, więc Google dla serwera lustrzanego i pobierz tę wersję - YAML-0.1.3 nie będzie miało wpływu na ominięcie problemów.
Musisz zrobić odpowiednik systemu Windows CHMOD 777 - w folderze rvm / src do rozpakowanych plików. Zmień zabezpieczenia, aby każdy miał prawo własności / wszystkie uprawnienia i wyłącz atrybut tylko do odczytu dla wszystkich plików i folderów.
Instalator nadal będzie zgłaszał błędy podczas próby pobrania (błąd CURL), ale wznowi działanie, próbując wyodrębnić. Rozpakowanie zwróci błędy, ponieważ archiwum zostało już rozpakowane do folderu src. Następny krok konfiguracji YAML powinien działać bez błędów, jeśli uprawnienia w kroku 3 zostały ustawione poprawnie, a instalacja powinna zakończyć się bez dalszych problemów. (Jeśli instalujesz przez cygwin / bash, będziesz musiał dodać kompilator C, taki jak `` gcc '' i dodać `` ncurses '' (polecenie tput) i `` make '' do domyślnych podstawowych opcji konfiguracji cygwin.)
źródło
$ sudo apt-get install curl $ curl -L https://get.rvm.io | bash -s stable --ruby with ruby $ curl -L https://get.rvm.io | bash -s stable --rails with rails
źródło