找不到Ruby Bundle符号:_SSLv2_client_method(LoadError)

Len*_*nek 249 homebrew openssl ruby-on-rails rbenv

我正在尝试使用自制软件对openssl进行一些更新,但我设法破坏了一切.我现在无法做任何事情,这是我尝试进行捆绑安装时得到的结果:

$ bundle install
/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in    `require': dlopen(/Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle, 9): Symbol not found: _SSLv2_client_method (LoadError)
Referenced from: /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
Expected in: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
in /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle - /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/openssl.bundle
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/openssl.rb:17:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/security.rb:11:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/package.rb:43:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/dependency_installer.rb:3:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/installer.rb:2:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli/install.rb:78:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:146:in `install'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/command.rb:27:in `run'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/invocation.rb:121:in `invoke_command'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor.rb:363:in `dispatch'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/vendor/thor/base.rb:440:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/cli.rb:9:in `start'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `block in <top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/lib/bundler/friendly_errors.rb:5:in `with_friendly_errors'
    from /Users/asServer/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.6.3/bin/bundle:20:in `<top (required)>'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
    from /Users/asServer/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)

Rya*_*osz 286

我刚刚在我的系统上修复了类似的问题.您需要重建Ruby 2.1.2的安装,它将重新链接新更新的SSL.

$ rbenv install 2.1.2
rbenv: /Users/ryan/.rbenv/versions/2.1.2 already exists
continue with installation? (y/N) y
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/ryan/.rbenv/versions/2.1.2
Run Code Online (Sandbox Code Playgroud)

  • 我刚试过这个,但它根本没有解决我的问题 (15认同)
  • @ twelve17这些错误与无法找到SSL库有关,OP提到他们最近升级了他们已安装的openssl版本.我在同一升级方案中遇到了同样的问题; 我怀疑重新安装通过导致Ruby针对升级的库(无法找到旧的库)构建来修复问题. (8认同)
  • 只是添加到这个,如果一个boxen用户遇到这个 - 我无法使用上面的命令重新安装rbenv - 所以我不得不卸载并重新安装2.1.2使用rbenv`rbenv uninstall 2.1.2`rbenv install 2.1. 2``捆绑` (7认同)
  • 你能详细说明"新更新的SSL"吗? (5认同)
  • 在优胜美地升级之后,我遇到了这个问题.以上工作,但只有在我重定向我的gcc之后.````export CC =/usr/bin/gcc````欲了解更多信息:[这里是来自rbenv帮助的github问题](https://github.com/sstephenson/rbenv/issues/610) (4认同)

San*_*p M 185

升级openssl后我遇到了类似的问题.我用rvm.我盯着升级rvm.

$ rvm get stable
Run Code Online (Sandbox Code Playgroud)

我接下来重新安装了1.9.3.

rvm reinstall ruby-1.9.3-p545
Run Code Online (Sandbox Code Playgroud)

重新安装后,我运行:

$ rvm gemset pristine
Run Code Online (Sandbox Code Playgroud)

如果您发现恢复gemset时出现任何错误,最好的选择是清空gemset并重建它.

rvm gemset use mygemset
rvm gemset empty mygemset
gem install bundler
bundle install
Run Code Online (Sandbox Code Playgroud)

如果您有多个gemsets,则必须为每个gemset重复这些步骤.

  • 这对我有用.rvm自动启动了gemset pristine的建设. (10认同)
  • 在Yosomite上我遇到了安装ruby的问题,因为它无法找到正确的`gcc`版本.我结束了`CC =/usr/bin/gcc rvm重新安装ruby-1.9.3-p551` (4认同)

Jer*_*ome 17

在rvm下,1.9.3-p547也有同样的问题

rvm reinstall ruby-1.9.3-p547
Run Code Online (Sandbox Code Playgroud)

Ruby被重新安装,但是gemset_pristine因为设置应用程序而失败了

libv8 version 3.16.14.3 failed
Run Code Online (Sandbox Code Playgroud)

这就是我首先达到这一点的原因.恶意挫折圈......

更新
检查您的平台版本.我有例如Darwin 10.8,这里没有列出.因此,除非您的libv8 gem版本具有适用于您的平台的预编译二进制文件,否则将需要很长(很长)的时间.出去吃晚饭,看电影,放松一下......如果有足够的问题,也许他们会设置一个二进制发行版......


Dav*_*com 14

有同样的错误并解决了它 brew upgrade openssl

  • 你有没有'brew link --force openssl`? (5认同)

Ral*_*ing 6

你可能像我这样的笨蛋,有多个openssl's

我对2.1.2也有同样的问题,Ryan Dlugosz的优秀答案还远远不够.我的问题是,我已经安装了OpenSSL的多个版本(我想我会通过安装brew git在以前的项目).

我不得不删除/ opt/local/bin/openssl然后重建2.1.2.

检查全球rbenv ruby

$ rbenv global
2.1.2
Run Code Online (Sandbox Code Playgroud)

检查openssl

$ which -a openssl
/opt/local/bin/openssl
/opt/local/bin/openssl
/usr/bin/openssl
Run Code Online (Sandbox Code Playgroud)

杀掉重复的openssl

$ sudo rm -rf /opt/local/bin/openssl
Run Code Online (Sandbox Code Playgroud)

重建2.1.2

$ rbenv install -f 2.1.2
Downloading openssl-1.0.1g.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/53cb818c3b90e507a8348f4f5eaedb05d8bfe5358aabb508b7263cc670c3e028
Installing openssl-1.0.1g...
Installed openssl-1.0.1g to /Users/globber/.rbenv/versions/2.1.2

Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /Users/globber/.rbenv/versions/2.1.2
Run Code Online (Sandbox Code Playgroud)


小智 5

什么时候没解决问题,我建议删除RVM.并重新安装RVM和Rails.

删除RVM

如何从系统中删除RVM(Ruby版本管理器)?

安装RVM,Rail

$ curl -L https://get.rvm.io | bash -s
$ rvm获得稳定
$ rvm要求
$ rvm install 2.0.0 --with-openssl-dir = $ HOME/.rvm/usr
$ rvm使用2.0.0 $ gem update --system 2.0.3
$ gem install rails --version 4.0.5