When I run an app on Lion OS X, I get this error:
Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
/Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `require': no such file to load -- rubyeventmachine (LoadError)
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/eventmachine-1.0.0/lib/eventmachine.rb:8:in `<top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `block (2 levels) in require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `block in require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /Users/adam/rubydev/future_computers/config/application.rb:7:in `<top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `require'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:53:in `block in <top (required)>'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
from /Users/adam/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'adam
I don't really know how to fix this, I've added the eventmachine
gem into the Gemfile, but it didn't help...
Could you help me, please, how to fix it?
Thank you
In my case this fixed it:
- $ gem uninstall eventmachine
- at the prompt tell it to uninstall all versions (it tells you about dependencies)
- $ bundle install
I was reading through this https://github.com/eventmachine/eventmachine/issues/333. There were problems with eventmachine, so making sure I got the newest version seemed a good idea.
For me, compiling eventmachine from sources with tweaked config helped. Try:
Uninstall eventmachine if it's already installed:
gem uninstall eventmachine
Fetch eventmachine sources:
git clone https://github.com/eventmachine/eventmachine.git
cd eventmachine
Edit ext/extconf.rb
and ext/fastfilereader/extconf.rb
files by adding CONFIG['CXX'] = "g++"
right after require 'mkmf'
Compile and install gem:
rake gem
gem install pkg/eventmachine-1.0.3.gem
Now eventmachine should work just fine :)
The easiest fix as the message says is just to require 'em/pure_ruby'
. I think you can put this in the config/inlitializers folder, you can call the file event_machine.rb
But it won't have the same performance as the C extension.
Providing another solution as I just wasted hours tracking this issue down. I was doing bundle install --deployment
and then committing the result to a separate branch in git so I could deploy this branch straight to servers without having to do bundle install
again.
The problem is that eventmachine has a .gitignore
file in it which tells git to ignore all *.so
files. Because of this when I was committing, the .so
files didn't commit, and wouldn't show up as untracked in a git status
. Also since the gemspec was present, bundle thought the package was completely installed.
My solution was to add a command as part of the build process to go and whack all the .gitignore
files in the gems before committing.
You may find various errors while installing gems or trying to find solution to your ruby application installation failing due to ruby-devel was not installed.
I just installed on my Kali linux with
sudo apt-get install ruby-dev
and everything resolved. I was trying to install bettercap.
This answer helped: https://stackoverflow.com/a/4502672/6503117
来源:https://stackoverflow.com/questions/14824235/rails-cannot-run-app-unable-to-load-the-eventmachine-c-extension