web-dev-qa-db-fra.com

Ruby et "Vous devez recompiler Ruby avec le support OpenSSL ou changer les sources dans votre Gemfile"

En utilisant rvm, j'ai mis à niveau mon Ruby vers 1.9.3-p392, également ajouté 2.0.0, chaque fois que j'essaie d'utiliser cette version lorsque j'exécute ma commande de bundle, j'obtiens cette erreur.

Could not load OpenSSL.
You must recompile Ruby with OpenSSL support or change the sources in your Gemfile from 'https' to 'http'. Instructions for compiling with OpenSSL using RVM are
available at rvm.io/packages/openssl.

J'ai suivi plusieurs instructions différentes sur la façon de résoudre ce problème. J'ai essayé de supprimer la version et de l'installer avec les options rvm

--with-openssl-dir=$HOME/.rvm/usr

J'ai installé OpenSSL avec rvm et macports. Les deux n'ont pas résolu le problème. J'ai même changé l'emplacement du fichier du certificat SSL en utilisant ceci:

export SSL_CERT_FILE=/Users/DarkLord/.rvm/usr/ssl/cert.pem

Peu importe ce que je fais, je continue de recevoir l'erreur. Quelqu'un peut-il m'aider à résoudre ce problème?

43
covard

La nouvelle façon de procéder, selon un commentaire de @Purplejacket ci-dessus, est la suivante:

rvm autolibs homebrew
rvm install 2.1.1
rvm use 2.1.1

C'est beaucoup plus simple.

4
thekingoftruth

Cela fonctionne pour moi:

rvm get stable

brew install libyaml

rvm pkg install openssl

rvm install Ruby-2.0.0 --with-openssl-dir=$HOME/.rvm/usr

rvm use Ruby-2.0.0

Tous les crédits vont à https://coderwall.com/p/tptocq

76
Anh Nguyen

Cela m'aide à installer 1.9.3-head sur Mac:

rvm get latest    
brew install openssl    
rvm reinstall 1.9.3-head --with-openssl-dir=`brew --prefix openssl`
47
virtax

Dans mon cas après:

 1. brew install openssl
 2. rvm install Ruby-2.6.0

bundle install a échoué avec cette erreur. Le problème était que openssl était globalement défini, j'ai donc dû installer la nouvelle version Ruby en définissant explicitement le répertoire openssl.

Donc ce que je devais faire était:

 1. rvm reinstall Ruby-2.6.0 --with-openssl-dir=/usr/local/opt/openssl
 2. rvm reload

En supposant que usr/local/opt/openssl est l'endroit où il est installé.

Après ça bundle install s'est exécuté avec succès.

Warning lorsque j'ai essayé cette commande avec ce chemin /usr/local comme certaines réponses l'ont suggéré, cela n'a pas fonctionné.

11
dktistakis

Pour que cela fonctionne à nouveau, j'ai dû installer homebrew et déplacer mes ports mac à l'écart. Procédez ensuite comme suit après avoir supprimé 1.9.3-p392 et 2.0.0-p0:

rvm get head --autolibs=3
rvm install 1.9.3 --with-opt-dir=/usr/bin
rvm install 2.0.0

Il y avait quelque chose qui ne fonctionnait pas avec mes ports mac et openssl et make et configure. C'était la seule façon dont j'ai pu obtenir rvm pour installer Ruby encore sans obtenir de problèmes openssl ou créer/configurer des problèmes.

9
covard

Dans mon cas:

Problème: Après avoir installé Ruby-2.3.1, j'ai exécuté la commande bundle install puis l'erreur s'est produite.

Solution:

  • J'ai d'abord installé OpenSSL sur ma machine. $ brew install openssl
  • Et puis, réinstallé la version Ruby dont j'ai besoin (2.3.1) avec l'openssl.

    $ rvm reinstall 2.3.1 --with-openssl-dir=/usr/local/opt/openssl

Et cela a résolu mon problème!

6
Solomon

Selon la question suivante: Comment savoir quelle bibliothèque openssl est réellement utilisée par un Ruby installé sur RVM

Il semble que les options --with-openssl-dir=... n'est plus valide à partir de Ruby 1.9.3. J'ai essayé

rvm install 1.9.3 --with-opt-dir=/usr/local --with-openssl

et ça a marché.

4
LiAh Sheep

Les étapes suivantes ont fonctionné pour moi.

Assurez-vous d'abord que openssl est installé en exécutant brew install openssl, puis réinstallez la version Ruby en utilisant rvm, mais cette fois-ci, vous devez passer le with-opt-dir drapeau pointant vers l'emplacement où openssl a été installé sur votre machine (utilisez la commande which openssl pour trouver cet emplacement).

rvm install 1.9.3-p392 --with-openssl-dir=/usr/local/opt/openssl
2
Dinobi

Voilà ce qui m'a aidé:

rvm reinstall 2.5

brew tap raggi/ale
brew install openssl-osx-ca
brew services start openssl-osx-ca

Trouvé cette solution ici: https://github.com/raggi/openssl-osx-ca#readme

0
Andrey Veselov

Sur macOS 10.14, Ruby 2.5.3 et OpenSSL 1.0.2n, cela a fonctionné pour moi:

./configure --with-openssl --with-openssl-dir=/usr/local/ssl

mais j'essayais seulement ce que les messages d'erreur me disaient:

*** Following extensions are not compiled:
openssl:
    Could not be configured. It will not be installed.
    /Users/brian/Desktop/Ruby/ruby-2.5.3/ext/openssl/extconf.rb:97: OpenSSL library could not be found. You might want to use --with-openssl-dir=<dir> option to specify the prefix where OpenSSL is installed.
    Check ext/openssl/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
make[1]: *** [note] Error 1
0
brian d foy

J'ai spécifié une version plus récente Ruby dans mon Gemfile, puis j'ai exécuté l'installation du bundle. Tout va bien maintenant.

0
smithWEBtek