我刚刚发现我再也不能gem push …
了,而且一些挖掘工作让我需要更新我的RVM SSL证书。
我跑了rvm osx-ssl-certs status all
,但那给了我:
/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
显示我正在运行最新的RVM(截至今天)
rvm 1.22.15 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
奇怪的是,我不确定为什么它指的是ruby-2.0.0-p195
但rvm list
给出了
rvm rubies
ruby-1.9.3-p392 [ x86_64 ]
ruby-2.0.0-p195 [ x86_64 ]
=* ruby-2.0.0-p247 [ x86_64 ]
任何想法如何解决这个问题?
答案 0 :(得分:111)
卸载openssl并重新安装它对我有用。
brew remove openssl
然后
brew install openssl
答案 1 :(得分:41)
您的问题提及三个路径/opt/local
,/usr/local
和/etc/openssl
属于 Macports , Homebrew 和 SM框架。
由于最后一个用于构建静态红宝石,因此它是无害的,与问题无关。另外两个表明您在安装红宝石之间已从 macports 切换到自制。
您需要重新安装ruby-2.0.0-p195
,这仍然是 macports 中的旧路径,您可以执行以下操作:
rvm reinstall ruby-2.0.0-p195
您可以获得有关他们使用的rubies和openssl路径的更多详细信息:
rvm --debug osx-ssl-certs update all
答案 2 :(得分:8)
尝试运行'捆绑'我也开始收到openssl dylib投诉,虽然路径略有不同。 我尝试了大部分这些以及其他一些事情。我有rvm,还有一些破碎的fink安装残余物,虽然我试着用一段时间后用brew替换它。 很多次我得到了
Library not loaded: /sw/lib/libssl.1.0.0.dylib
然而,尝试使用brew重新安装openssl总是会产生
sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.
或
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
所以我应该做的很混乱。经过多次试验,最终似乎有所帮助包括:
$ rm /Users/dan/.rvm/rubies/default/lib/ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle
引用了不存在的/sw/lib/libssl.1.0.0.dylib文件。 然后
$ sudo brew update && sudo brew upgrade
$ rvm reset
将我的版本从1.9.1提升到
$ ruby --version
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
此时我不得不重新安装bundler(?)
$ gem install bundler
但最后我可以在我的项目上运行'bundle',它似乎表现得很好。
答案 3 :(得分:3)
所有版本的红宝石都对我有用,我得到了一个关于红宝石2.6.5的项目。然后我遇到了library not found
的openssl错误。为了解决这个问题,我做了
brew update
brew upgrade
brew install openssl
然后所有其他版本停止工作,因为它library not found
用于打开的ssl。由于我在ruby版本管理器中使用chruby,因此我删除了版本文件夹,然后重新安装它们即可。
tl; dr更新和升级brew,安装openssl并重新安装ruby版本
答案 4 :(得分:3)
rbenv用户尝试了上述几种解决方案,但是在我卸载了已有的ruby版本并重新安装之前,该方法无济于事。 所以:
rbenv uninstall 2.4.3
rbenv install 2.4.3
解决了我的问题,我可以捆绑了。
答案 5 :(得分:1)
在我的情况下,捆绑时是Ruby版本:
我做了:
rvm list
输出:
ruby-1.9.3-p448 [ x86_64 ]
ruby-2.0.0-p247 [ x86_64 ]
ruby-2.0.0-p353 [ x86_64 ]
ruby-2.0.0-p451 [ x86_64 ]
然后我改为ruby-2.0.0-p451
:
rvm use ruby-2.0.0-p451
和
bundle
捆绑成功完成;)
答案 6 :(得分:1)
我在使用postgres gem pg
时遇到了问题,发现了以下问题:https://github.com/ged/ruby-pg/issues/322
这就是我要解决的问题:
brew reinstall postgresql
答案 7 :(得分:0)
sudo brew update && sudo brew upgrade
为我工作
答案 8 :(得分:-1)
在我的案例中,ReactJS + Node env的更新搞砸了一个Rails项目,并且花费了大量时间后,要么通过rbenv
(原为2.5.1 BTW)重新安装ruby版本,还通过openssl
,重新安装捆绑器(没有一个成功)
homebrew
成功了!
正在运行brew update && brew upgrade
和OSX