O RVM está executando um erro de certificado ao tentar fazer o download do Ruby 1.9.2. Parece que curl
está havendo um problema de certificado, mas não tenho certeza de como contorná-lo. Eu incluí as informações exatas do erro abaixo.
$ 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.
Como posso resolver ou evitar esse erro?
ruby-on-rails
curl
rvm
Will Dennis
fonte
fonte
Respostas:
Caso mais alguém descubra isso ao tentar atualizar para 1.9.3 (embora a versão provavelmente não importe), verifique a versão do rvm que você tem. Wayne parece ter mudado de rvm.beginrescueend.com para rvm.io. O certificado de segurança do site antigo expirou, então a resposta do curl está correta.
Atualizar o rvm do novo site corrigiu esse problema e me permitiu seguir em frente.
Atualização : Como @rodgerdpack mencionou, o comando muda e eu atualizei o acima. Em geral, consulte https://rvm.io/ para obter as últimas.
fonte
Se você não quiser alterar o script E não quiser adicionar um certificado "para sempre" ao pacote de certificados . Existe uma solução muito boa e rápida:
Em seguida, execute seu script. Para redefinir a variável de ambiente (para chamadas de script subsequentes que não devem usar este certificado), faça o login novamente em seu sistema ou cancele a definição da variável de ambiente:
fonte
Curl é chamado em .rvm / scripts / fetch, que por padrão estará em seu diretório inicial.
Edite-o usando seu editor de texto favorito: por exemplo,
Nas linhas 56 e 58 (pode variar com outras versões do RVM, é claro), você verá duas linhas que começam
Simplesmente adicione -k após curl, salve e tente novamente.
fonte
echo insecure >> ~/.curlrc
ou ainda melhor apenas atualize os certificados de acordo com as instruções doVocê precisa fazer download do certificado ca de http://curl.haxx.se/ca/cacert.pem e adicioná-los ao arquivo curl-ca-bundle-new.crt.
Para encontrar a localização deste arquivo, use:
Faça backup do seu arquivo curl-ca-bundle.crt:
Então você deseja concatenar os dois arquivos usando:
fonte
Talvez todas essas soluções complicadas já tenham sido necessárias, mas agora tudo o que você precisa fazer é primeiro atualizar o RVM e seu problema será resolvido:
fonte
Se você não se importa em desativar a verificação de certificado em curl (eu não):
fonte
No Centos 5.6 (Final) tive um problema ao instalar o rvm 1.9.2 O erro foi:
Aqui está uma lista de ações que me ajudaram a resolver o problema
Btw versão curl é curl 7.18.0 (para verificar '$ curl -V')
fonte
Eu estava tentando instalar
ruby-1.9.2-p290
e me deparei com o mesmo problema. Depois de executarwhich curl
e perceber que a instância curl vinha de uma instalação do MAMP em meu sistema (OS X Snow Leopard), reconfigurei minhaPATH
variável para usar o padrão do sistema em/usr/bin/curl
. Usando esta versão,curl 7.19.7
não tive problemas para instalar a versão mais recente do Ruby com RVM.fonte
Tive problemas para instalar 1.9.2 usando RVM, aqui está minha solução:
Execute estes comandos:
chmod 777 yaml-0.1.3.tar.gz
tar zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src
Ainda recebo o erro de arquivo não encontrado, mas a instalação foi bem-sucedida
fonte
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
Obrigado Dorothy - esta receita funcionou para mim com as seguintes pequenas modificações para um ambiente Win7:
Para outros com este problema -
Aprecie a discussão sobre como atualizar o CA_Bundle - Bom fazer, mas não ajudou com esse problema - o certificado do site pyyaml ainda fará com que o CURL emita um erro e, como o CURL é iniciado no instalador, não há como adicionar uma opção -k .
Ruby 1.9.2-p290 está tentando instalar YAML 0.1.4 para que o Google para um espelho e baixe essa versão - YAML-0.1.3 não terá efeito em contornar os problemas.
Você precisa fazer o equivalente do Windows a CHMOD 777 - dentro da pasta rvm / src para os arquivos extraídos. Altere a segurança para que todos tenham propriedade / todos os privilégios e desative o atributo somente leitura para todos os arquivos e pastas.
O instalador ainda emitirá erros ao tentar fazer o download (erro CURL), mas continuará tentando extrair. A extração gerará erros porque o tarball já foi extraído para a pasta src. A próxima etapa da configuração do YAML deve funcionar sem erros se as permissões na etapa 3 forem definidas corretamente e a instalação for concluída sem problemas adicionais. (Se estiver instalando via cygwin / bash, você precisará adicionar um compilador C como 'gcc' e adicionar 'ncurses' (comando tput) e 'make' às opções de configuração do núcleo cygwin padrão.)
fonte
fonte