【发布时间】:2012-09-27 09:25:50
【问题描述】:
我在运行 bundler 来安装我的 gem 时遇到了这个错误。我环顾四周,除了在 rvm 上安装 openssl pkg 并重新安装所有 rubies 外,没有找到任何解决方案,这样做并没有解决问题,还有其他可能的解决方案吗?
这是我运行 bundle install 得到的输出:
Fetching gem metadata from https://rubygems.org/.Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/x86_64-linux/openssl.so: undefined symbol: SSLv2_method - /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/x86_64-linux/openssl.so (LoadError)
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/openssl.rb:17:in `<top (required)>'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/net/https.rb:22:in `<top (required)>'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/octavius/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/net/http/persistent.rb:447:in `ssl'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/net/http/persistent.rb:216:in `connection_for'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/net/http/persistent.rb:358:in `request'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/fetcher.rb:149:in `fetch'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/fetcher.rb:177:in `fetch_dependency_remote_specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/fetcher.rb:135:in `fetch_remote_specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/fetcher.rb:73:in `specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/source.rb:234:in `block in remote_specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/source.rb:232:in `each'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/source.rb:232:in `remote_specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/source.rb:165:in `fetch_specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/source.rb:70:in `specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/lazy_specification.rb:53:in `__materialize__'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/spec_set.rb:86:in `block in materialize'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/spec_set.rb:83:in `map!'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/spec_set.rb:83:in `materialize'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/definition.rb:113:in `specs'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/definition.rb:108:in `resolve_remotely!'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/installer.rb:81:in `run'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/installer.rb:14:in `install'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/cli.rb:230:in `install'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/thor/task.rb:27:in `run'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/thor.rb:275:in `dispatch'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/vendor/thor/base.rb:408:in `start'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/bin/bundle:14:in `block in <top (required)>'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/lib/bundler/friendly_errors.rb:4:in `with_friendly_errors'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/gems/bundler-1.2.1/bin/bundle:14:in `<top (required)>'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/bin/bundle:19:in `load'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125@global/bin/bundle:19:in `<main>'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125/bin/ruby_noexec_wrapper:14:in `eval'
from /home/octavius/.rvm/gems/ruby-1.9.3-p125/bin/ruby_noexec_wrapper:14:in `<main>'
【问题讨论】:
-
你的问题太模糊了。它只是捆绑器给出此错误消息,还是在捆绑器尝试在 gemfile 中安装其中一个 gem 时生成? IE。是来自正在安装的特定 gem 还是来自 bundler 本身的错误。如果它来自特定的宝石,首先要缩小导致原因的宝石。您很少能用霰弹枪方法解决错误。最好的方法始终是缩小范围并聚焦问题。
-
这是在谷歌搜索中首次出现的:stackoverflow.com/questions/8206546/…。但是,我仍然会首先投票以缩小真正的原因。
-
是的,它出现了,但是关于那个问题没有答案,更像是简单地解释它为什么会发生。
-
您是否尝试过清理您的
.rvm(rm -rf ~/.rvm),重新安装,然后安装rvm pkg install openssl?很多次我看到 rvm 问题,因为一旦你安装了一些东西并尝试重新安装它就不能正确加载,因为旧库保留在 rvm 树中。我猜你试过了,但只是确保。如果您没有执行rm -rf ~/.rvm,请尝试包含该步骤。 -
您也可以尝试在启用 ssl2 的情况下自己从源系统范围内安装 openssl。然而,也许作为最后一步,因为你可能会破坏一些东西(尽管它可以通过重新安装原始的 openssl rpm 包来修复)。无论如何,它不应该是火箭科学:您在某个地方有一个未编译 ssl2 的 openssl 库,而 ruby 正在加载该库。这就是为什么最容易清理 .rvm 树并重新开始的原因。