Thin + EventMachine 无法启动
Posted
技术标签:
【中文标题】Thin + EventMachine 无法启动【英文标题】:Thin + EventMachine fails to start 【发布时间】: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 中运行良好。
【参考方案1】:
我已经解决了转储大部分 Bundler 配置的 gem 并将它们直接安装到我的全局 gemset 的问题。我不得不从我的 Sinatra 加载代码中删除所有 Bundler 引用,而只使用 rubygems。 现在我只需要 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://***.com/a/15140634/445908
【讨论】:
【参考方案3】:我通过卸载自制的 ruby 2.5 版本修复了“无法加载 EventMachine C 扩展”错误。在Rails/Ruby Error When Creating Database: Unable to load the EventMachine C extension 上查看此评论
【讨论】:
以上是关于Thin + EventMachine 无法启动的主要内容,如果未能解决你的问题,请参考以下文章
Rails eventmachine 未初始化 evma_install_oneshot_timer
无法在 Rails 控制台中加载 Ruby EventMachine - 没有要加载的文件
Rails - 无法运行应用程序:无法加载 EventMachine C 扩展;
Eventmachine start_tcp_server no acceptor - 端口正在使用或需要root权限(RuntimeError)
Ruby(bundle install,bundle update)FAILS无法安装gems http_parser.rb,eventmachine