【问题标题】:Thin + EventMachine fails to startThin + EventMachine 无法启动
【发布时间】:2013-01-14 15:04:32
【问题描述】:

在为 sinatra 应用程序加载瘦网络服务器时,我不断得到

Unable to load the EventMachine C extension; To use the pure-ruby reactor, require em/pure_ruby'<path>/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.rc.4/lib/eventmachine.rb:8:in `require': cannot load such file -- rubyeventmachine (LoadError)
from <path>/vendor/bundle/ruby/1.9.1/gems/eventmachine-1.0.0.rc.4/lib/eventmachine.rb:8:in `<top (required)>'
from <path>/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin.rb:7:in `require'
from <path>/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/lib/thin.rb:7:in `<top (required)>'
from <path>/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/bin/thin:5:in `require'
from <path>/vendor/bundle/ruby/1.9.1/gems/thin-1.5.0/bin/thin:5:in `<top (required)>'
from <path>/vendor/bundle/ruby/1.9.1/bin/thin:19:in `load'
from <path>/vendor/bundle/ruby/1.9.1/bin/thin:19:in `<main>'

在我的 Mac OSX 中,我启动服务器没有任何问题,但在我的服务器中 红帽企业 Linux 服务器 6.2 版(圣地亚哥) 我无法启动我的应用程序。

我正在使用 rvm 1.18.5 和 ruby​​-1.9.3-p374

提前致谢。

有人遇到过这个问题吗?

【问题讨论】:

  • 也许您需要在您的 Red Hat 服务器上安装 eventmachine
  • gem 安装 eventmachine ?我正在使用 bundler 来安装它。
  • 你能确认你已经安装了 Xcode 吗?
  • ianin,它是 Red Hat Enterprise Server :) 在我的 OSX 中运行良好。

标签: ruby sinatra redhat eventmachine thin


【解决方案1】:

我已经解决了转储大部分 Bundler 配置的 gem 并将它们直接安装到我的全局 gemset 的问题。我不得不从我的 Sinatra 加载代码中删除所有 Bundler 引用,而只使用 ruby​​gems。 现在我只需要 Bundler 来测试黄瓜和使用 capistrano 进行部署。

【讨论】:

  • 我建议使用bundler install --binstubs --path vendor。如果您使用 Bundler 比使用 RVM gemset,以这种方式对项目的 gem 进行沙箱化要容易得多。
  • iain 我也试过了。实际上,我总是在我的项目中使用 Bundler,这是我第一次遇到这种情况。我不知道最新版本的 Bundler + RVM 出了什么问题,但我的服务器出现了一些奇怪的行为。
  • 我会清除我所有的 RVM gems,然后在项目中 rm -rf .bundle Gemfile.lock bin vendor,然后重新安装 Bundler,然后使用 binstubs+vendor 开关。
【解决方案2】:

尝试重新安装 gem 'eventmachine':

$ gem uninstall eventmachine

$ gem install eventmachine  
or 
$ bundle install

见:https://stackoverflow.com/a/15140634/445908

【讨论】:

    【解决方案3】:

    我通过卸载自制的 ruby​​ 2.5 版本修复了“无法加载 EventMachine C 扩展”错误。在Rails/Ruby Error When Creating Database: Unable to load the EventMachine C extension 上查看此评论

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-15
      • 2012-02-19
      • 1970-01-01
      • 2012-01-27
      相关资源
      最近更新 更多