我刚刚发现我已经不能再进行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.
Run Code Online (Sandbox Code Playgroud)
rvm -v
显示我正在运行最新的RVM(截至今天)
rvm 1.22.15 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我不知道为什么它指的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 ]
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这一问题?
小智 111
卸载openssl并重新安装它对我有用.
brew remove openssl
Run Code Online (Sandbox Code Playgroud)
然后
brew install openssl
Run Code Online (Sandbox Code Playgroud)
mpa*_*pis 42
你的问题中提到三条路径/opt/local
,/usr/local
以及/etc/openssl
他们属于MacPorts的,自制和SM框架分别.
由于最后一个用于构建静态红宝石,它是无害的,与问题无关.另外两个表明你已经在安装红宝石之间从macports切换到自制软件.
你需要重新安装ruby-2.0.0-p195
哪个仍然是macports的旧路径,你可以这样做:
rvm reinstall ruby-2.0.0-p195
Run Code Online (Sandbox Code Playgroud)
您可以获得有关他们使用的rubies和openssl路径的更多详细信息:
rvm --debug osx-ssl-certs update all
Run Code Online (Sandbox Code Playgroud)
试图运行'捆绑'我也开始得到openssl dylib投诉,虽然路径略有不同.我尝试了大部分这些以及其他一些事情.我有rvm,还有一些破碎的fink安装残余,虽然我试着用一段时间后用brew替换它.很多次,我得到了
Library not loaded: /sw/lib/libssl.1.0.0.dylib
Run Code Online (Sandbox Code Playgroud)
然而,尝试重新安装openssl与brew总是产生
sudo brew link openssl
Warning: openssl is keg-only and must be linked with --force
Note that doing so can interfere with building software.
Run Code Online (Sandbox Code Playgroud)
要么
Mac OS X already provides this software and installing another version in
parallel can cause all kinds of trouble.
Run Code Online (Sandbox Code Playgroud)
所以我应该做的很混乱.经过多次试验,最终似乎有所帮助包括:
$ rm /Users/dan/.rvm/rubies/default/lib/ruby/1.9.1/x86_64-darwin11.4.0/openssl.bundle
Run Code Online (Sandbox Code Playgroud)
它引用了不存在的/sw/lib/libssl.1.0.0.dylib文件.然后
$ sudo brew update && sudo brew upgrade
$ rvm reset
Run Code Online (Sandbox Code Playgroud)
把我的版本从1.9.1提升到了
$ ruby --version
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
Run Code Online (Sandbox Code Playgroud)
那时我不得不重新安装bundler(?)
$ gem install bundler
Run Code Online (Sandbox Code Playgroud)
但最后我可以在我的项目上运行'捆绑',它似乎表现得很好.
Homebrew 将其 Openssl 版本更改为 1.1 天前(Homebrew/homebrew-core@0349a7c 25 和 Homebrew/homebrew-core@b4b9c1c 10)。我们可以将 Openssl 降级到旧版本以在等待新的重建来临时解决此问题(或手动执行):
所以我是这样解决的:
brew uninstall --ignore-dependencies openssl
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/30fd2b68feb458656c2da2b91e577960b11c42f4/Formula/openssl.rb
Run Code Online (Sandbox Code Playgroud)
更新
从 catalina,您可能会收到如下消息:
错误:从 GitHub 提交 URL 调用 openssl 的安装被禁用!
在这种情况下,我建议您转到 URL 并将内容下载到一个文件中(名称为 openssl.rb)。然后你可以这样做:
brew install openssl.rb
Run Code Online (Sandbox Code Playgroud)
所有版本的 ruby 都对我有用,我在 ruby 2.6.5 上有一个项目。然后我收到library not found
了openssl的这个错误。为了解决这个问题,我做了
brew update
brew upgrade
brew install openssl
Run Code Online (Sandbox Code Playgroud)
然后所有其他版本都停止工作,因为它library not found
用于开放 ssl。由于我将 chruby 用于 ruby 版本管理器,因此我删除了版本文件夹并重新安装它们并且它可以工作。
Tl; dr更新和升级brew,安装openssl并重新安装ruby版本
归档时间: |
|
查看次数: |
49140 次 |
最近记录: |