โš ๏ธ Warning: This post is over a year old, the information may be out of date.

๐Ÿ’ผ Status:
Jekyll - Unable to load the EventMachine C extension

๐Ÿ“… | โฐ 1 minutes

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: '[email protected]: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!

Posted by: Hugo

Edit

Have some thoughts, discussion or feedback on this post?

๐Ÿ’ฌย Send me an email

What is webmention? How to send interactions!

Below you can find all of webmention with this page. Which means, you also can mentioned this URL on any website that support WebMention. Have you written a response to this post? Let me know the URL:

Do you use a website that don't have WebMention capabilities? You can just use Comment Parade!