Erreur de certificate Curl lors de l’utilisation de RVM pour installer Ruby 1.9.2

RVM rencontre une erreur de certificate en essayant de télécharger Ruby 1.9.2. Il semble que curl ait un problème de certificate mais je ne sais pas comment le contourner. J’ai inclus les informations d’erreur exactes ci-dessous.

 $ 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 certificatee problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificatee verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificatee 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 certificatee signed by a CA represented in the bundle, the certificatee verification probably failed due to a problem with the certificatee (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 certificatee, 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 certificatee problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificatee verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificatee 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 certificatee signed by a CA represented in the bundle, the certificatee verification probably failed due to a problem with the certificatee (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 certificatee, 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. 

Comment puis-je résoudre ou éviter cette erreur?

Au cas où quelqu’un d’autre aurait à faire face à cela tout en essayant de mettre à jour vers la version 1.9.3 (bien que la version n’ait probablement pas d’importance), vérifiez la version de rvm que vous avez. Wayne semble être passé de rvm.beginrescueend.com à rvm.io. Le certificate de sécurité de l’ancien site a expiré, la réponse de curl est donc correcte.

La mise à jour de rvm depuis le nouveau site a permis de résoudre ce problème et de progresser.

 $ \curl -L https://get.rvm.io | bash -s stable --rails --autolibs=enabled 

Mise à jour : Comme @rodgerdpack mentionné, la commande change et j’ai mis à jour ce qui précède. En général, voir https://rvm.io/ pour la dernière version.

Si vous ne voulez pas changer le script ET que vous ne voulez pas append un cert “for ever” au bundle cert. Il existe une solution très agréable et rapide:

 #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 

Ensuite, lancez votre script. Pour réinitialiser la variable d’environnement (pour les appels de script ultérieurs qui ne doivent pas utiliser ce certificate), reconnectez-vous à votre système ou supprimez la variable d’environnement:

 export CURL_CA_BUNDLE= 

Curl est invoqué dans .rvm / scripts / fetch, qui sera par défaut dans votre répertoire personnel.

Modifiez ceci en utilisant votre éditeur de texte préféré: par exemple,

  nano ~/.rvm/scripts/fetch 

Aux lignes 56 et 58 (peuvent varier avec d’autres versions de RVM, bien sûr), vous verrez deux lignes qui commencent

  fetch_command="curl ... 

Ajoutez simplement -k après Curl, sauvegardez et réessayez.

Vous devez télécharger le certificate ca à l’ adresse http://curl.haxx.se/ca/cacert.pem et les append à votre fichier curl-ca-bundle-new.crt.

Pour trouver l’emplacement de ce fichier, utilisez:

  $ curl-config --ca /usr/share/curl/curl-ca-bundle.crt 

Sauvegardez votre fichier curl-ca-bundle.crt:

 $ cp /usr/share/curl/curl-ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt.old 

Ensuite, vous souhaitez concaténer les deux fichiers en utilisant:

 $ cat cacert.pem /usr/share/curl/curl-ca-bundle.crt >> curl-ca-bundle-new.crt 

Peut-être que toutes ces solutions compliquées étaient une fois nécessaires, mais tout ce que vous avez à faire est de commencer par mettre à niveau RVM et votre problème sera résolu:

 $ rvm get stable $ rvm reload $ rvm install ruby-1.9.3-p194 

Si cela ne vous dérange pas de désactiver la vérification des certificates (je ne le fais pas):

 echo insecure > ~/.curlrc 

Sur Centos 5.6 (Final), j’ai rencontré un problème avec l’installation de rvm 1.9.2 L’erreur était la suivante:

 curl: (60) SSL certificatee problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificatee verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificatee 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 certificatee signed by a CA represented in the bundle, the certificatee verification probably failed due to a problem with the certificatee (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 certificatee, 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 certificatee problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificatee verify failed More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificatee 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 certificatee signed by a CA represented in the bundle, the certificatee verification probably failed due to a problem with the certificatee (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 certificatee, 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. 

Voici une liste d’actions qui m’a aidé à résoudre le problème

 $ curl-config --ca # show path to the certificatee /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 certificatee $ curl http://curl.haxx.se/ca/cacert.pem -o curl-ca-bundle.crt # download new $ rvm install 1.9.2 # bingo it works 

La version de Btw curl est curl 7.18.0 (pour vérifier ‘$ curl -V’)

ruby-1.9.2-p290 d’installer ruby-1.9.2-p290 et ruby-1.9.2-p290 rencontré le même problème. Après avoir exécuté which curl et réalisé que l’instance curl provenait d’une installation de MAMP sur mon système (OS X Snow Leopard), j’ai reconfiguré ma variable PATH pour utiliser la valeur par défaut du système /usr/bin/curl . En utilisant cette version, curl 7.19.7 , je n’ai eu aucun problème pour installer la dernière version de Ruby avec RVM.

J’ai eu du mal à installer 1.9.2 en utilisant RVM, voici ma solution:

J’ai toujours le fichier erreur non trouvé, mais l’installation a été couronnée de succès

[2011-07-05 14:24:07] tar zxf /Users//.rvm/archives/yaml-0.1.3.tar.gz -C /Users//.rvm/src –no-same-owner tar (enfant): /Users//.rvm/archives/yaml-0.1.3.tar.gz: Impossible d’ouvrir: aucun fichier ou répertoire de ce type tar (enfant): l’erreur n’est pas récupérable: quitter maintenant tar: enfant a renvoyé l’état 2 tar : Sortie d’erreur retardée des erreurs précédentes

Merci Dorothy – cette recette a fonctionné pour moi avec les modifications mineures suivantes pour un environnement Win7:

Pour d’autres avec ce problème –

  1. Appréciez la discussion sur la mise à jour de CA_Bundle – Bon à faire mais cela n’a pas aidé avec ce problème – le certificate du site Web pyyaml ​​provoquera toujours une erreur de CURL et depuis le lancement de CURL dans le programme d’installation, aucun moyen d’append une option -k .

  2. Ruby 1.9.2-p290 tente d’installer YAML 0.1.4 afin que Google puisse télécharger un miroir et télécharger cette version – YAML-0.1.3 n’a aucun effet à contourner les problèmes.

  3. Vous devez faire l’équivalent Windows de CHMOD 777 – dans le dossier rvm / src pour les fichiers extraits. Modifiez la sécurité pour que tout le monde ait la propriété / tous les privilèges et désactivez l’atsortingbut en lecture seule pour tous les fichiers et dossiers.

Le programme d’installation lancera toujours des erreurs lorsqu’il essaiera de télécharger (erreur CURL), mais reprendra en essayant d’extraire. L’extraction génère des erreurs car l’archive tar est déjà extraite dans le dossier src. L’étape suivante de la configuration de YAML devrait fonctionner sans erreur si les permissions de l’étape 3 étaient définies correctement et que l’installation devait se terminer sans autre problème. (Si vous installez via cygwin / bash, vous devrez append un compilateur C tel que “gcc” et append “ncurses” (commande tput) et “make” aux options de configuration par défaut de cygwin.)

 $ 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