Ruby and “You must recompile Ruby with OpenSSL support or change the sources in your Gemfile”

隐身守侯 提交于 2019-11-30 10:28:31

问题


Using rvm I upgraded my ruby to 1.9.3-p392, also added 2.0.0, anytime I try to use this version when I run my bundle command I get this error.

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.

I have followed several different instructions on how to fix this. I have tried removing the version and installing it with the rvm options

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

I have installed OpenSSL with rvm, and macports. Both have not helped the problem. I even changed the file location of the ssl cert using this:

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

No matter what I do I continue to get the error. Can someone please help me fix this?


回答1:


This works for me:

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

All credits go to https://coderwall.com/p/tptocq




回答2:


This helps me install 1.9.3-head on Mac:

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



回答3:


To get this working again I had to install homebrew and move my mac ports out of the way. Then do the following after removing 1.9.3-p392 and 2.0.0-p0:

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

There was something not working with my mac ports and openssl and make and configure. This was the only way I was able to get rvm to install ruby again with out getting openssl issues or make/configure issues.




回答4:


In my case after:

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

bundle install failed with this error. The problem was that openssl was globally set so I had to install the new ruby version by setting the openssl directory explicitly.

So what I had to do was:

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

Assuming that usr/local/opt/openssl is where it is installed.

After that bundle install ran successfully.

Warning when I tried this command with this path /usr/local like some answers suggested, it didn't work.




回答5:


According to the following question: How to tell which openssl lib is actually being used by an RVM-installed ruby

It seems that the options --with-openssl-dir=... is no longer valid as of Ruby 1.9.3. I tried

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

and it worked.




回答6:


The following steps worked for me.

First ensure openssl is installed by running brew install openssl, then reinstall the ruby version using rvm, but this time around, you have to pass the with-opt-dir flag pointing to the location where openssl was installed on your machine (use command which openssl to find this location).

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



回答7:


On macOS 10.14, Ruby 2.5.3, and OpenSSL 1.0.2n this worked for me:

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

but I was only trying what the error messages were telling me:

*** 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



回答8:


That's what helped me:

rvm reinstall 2.5

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

Found this solution here: https://github.com/raggi/openssl-osx-ca#readme



来源:https://stackoverflow.com/questions/15212104/ruby-and-you-must-recompile-ruby-with-openssl-support-or-change-the-sources-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!