I just discovered I can no longer gem push …
any more and some digging led me to a need to update my RVM SSL certs.
I ran rvm osx-ssl-certs status all
but that gave me:
/Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': dlopen(/Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle, 9): Library not loaded: /opt/local/lib/libssl.1.0.0.dylib (LoadError)
Referenced from: /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
Reason: image not found - /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/x86_64-darwin12.4.0/openssl.bundle
from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/openssl.rb:17:in `<top (required)>'
from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/davesag/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
Certificates for /usr/local/etc/openssl/cert.pem: Up to date.
Certificates for : Old.
Certificates for /etc/openssl/cert.pem: Up to date.
rvm -v
shows I am running the latest RVM (as of today)
rvm 1.22.15 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
Oddly I am not sure why it's referring to ruby-2.0.0-p195
however as rvm list
gives
rvm rubies
ruby-1.9.3-p392 [ x86_64 ]
ruby-2.0.0-p195 [ x86_64 ]
=* ruby-2.0.0-p247 [ x86_64 ]
Any ideas how to fix this?
Uninstalling openssl and re-installing it worked for me.
brew remove openssl
and then
brew install openssl
Your questions mentions three paths /opt/local
, /usr/local
and /etc/openssl
they belong to Macports, Homebrew and SM Framework respectively.
As the last one is used to build static rubies it is harmeless and not related to the problem. The other two suggest that you have switched from macports to homebrew between installing the rubies.
You need to reinstall ruby-2.0.0-p195
which is referring still the old paths from macports, you can do it with:
rvm reinstall ruby-2.0.0-p195
You can get more details about the rubies and openssl paths they use running:
rvm --debug osx-ssl-certs update all
Trying to run 'bundle' I also started getting the openssl dylib complaint, though a slightly different path. I tried most of these, and a few other things. I had rvm, and some broken remnants of a fink install, though I'd tried to replace it with brew a while back. Many times I was getting
Library not loaded: /sw/lib/libssl.1.0.0.dylib
However trying to re-install openssl with brew always produced
sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.
or
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
So it was pretty confusing what I should do. What seemed to help in the end, after much trial, included:
$ rm /Users/dan/.rvm/rubies/default/lib/ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle
which had references to the non-existent /sw/lib/libssl.1.0.0.dylib file. Then
$ sudo brew update && sudo brew upgrade
$ rvm reset
brought my version up from 1.9.1 to
$ ruby --version
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
At which point I had to re-install bundler (?)
$ gem install bundler
But finally I could run 'bundle' on my project and it seemed to behave.
Homebrew changed its version of Openssl to 1.1 days ago (Homebrew/homebrew-core@0349a7c 25 and Homebrew/homebrew-core@b4b9c1c 10). We can downgrade Openssl to the older version to temporarily fix this issue while waiting for the new rebuild to come (or do it manually):
So I solved like this:
brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb
UPDATE
From catalina you could get a message like:
Error: Calling Installation of openssl from a GitHub commit URL is disabled!
In this case I recomend you to go to the URL and download the content into a file (with name openssl.rb). Then you can do:
brew install openssl.rb
All the versions of rubies were working for me and I got a project on ruby 2.6.5. then I got this library not found
error for openssl. To solve that, I did
brew update
brew upgrade
brew install openssl
Then all the other versions stop working because it library not found
for open ssl. Since I am using chruby for ruby version manager, I remove the version folder and reinstall them and it works.
Tl;dr update and upgrade brew, install openssl and reinstall ruby version
rbenv user here, tried a couple of the solutions above but nothing worked until I uninstalled the version of ruby I had and reinstalled. So:
rbenv uninstall 2.4.3
rbenv install 2.4.3
fixed my issue and I was able to bundle.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With