📢 Actions Speak Louder Than Words!

Jekyll - Unable to load the EventMachine C extension

Posted: Oct 16, 2020 | Reading time: 2 min

When I using --livereload parameter with Jekyll, I get nasty failure like below :

bundle exec jekyll serve --livereload --verbose -I
.
.
.
Writing Metadata: .jekyll-metadata
                    done in 3.442 seconds.
         Requiring: jekyll-watch
           Watcher: Ignoring (?-mix:^_config\.yml)
           Watcher: Ignoring (?-mix:^_site\/)
           Watcher: Ignoring (?-mix:^\.jekyll\-cache\/)
           Watcher: Ignoring (?-mix:^Gemfile)
           Watcher: Ignoring (?-mix:^Gemfile\.lock)
           Watcher: Ignoring (?-mix:^vendor\/cache\/)
 Auto-regeneration: enabled for 'D:/NOPE/robbinespu.gitlab.io'
Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
                    ------------------------------------------------
      Jekyll 4.1.1   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------

After google-fu, the most solution given are to uninstall eventmachine-1.2.7-x64-mingw32 gems

$  gem uninstall eventmachine

Select gem to uninstall:
 1. eventmachine-1.2.7
 2. eventmachine-1.2.7-x64-mingw32
 3. All versions
> 2
Successfully uninstalled eventmachine-1.2.7-x64-mingw32

Then you can continue using --livereload parameter with Jekyll but if somehow in future you execute bundle install or bundle update, it will install eventmachine-1.2.7-x64-mingw32 gems again and you need to uninstall again. This is repeative..

The best solution and the proper step are:

  1. run command gem uninstall eventmachine and choose to uninstall eventmachine-1.2.7-x64-mingw32 gems from your system
  2. edit your Gemfile and add this line inside
gem 'eventmachine', '1.2.7', git: 'git@github.com:eventmachine/eventmachine', tag: 'v1.2.7'
  1. execute bundle install
  2. Clean up your jekyll build and cache with command bundle exec jekyll clean
  3. Lastly now you can use --livereload parameter without getting any issue if you execute bundle install in future

This should work nicely!

Edit

Discussion and feedback

You can use utterances provided below to post comment on behalf using Github account. Alternatively, you can just send a (plain text) email to my private email or personal public mailing list. In a few cases and on certain time, I just don’t have time to moderate them. Please read terms-of-service (ToS) for details.