skip to Main Content

The solution to this issue given on rubyinstaller does not work for me

https://github.com/oneclick/rubyinstaller2/issues/96

gem uninstall eventmachine 
gem install eventmachine --platform ruby

Any thoughts?

PS D:wiecejwolnosci> jekyll new site2 .
Running bundle install in D:/wiecejwolnosci/site2... 
  Bundler: Fetching gem metadata from https://rubygems.org/..........
  Bundler: Resolving dependencies...
  Bundler: Using public_suffix 4.0.6
  Bundler: Using addressable 2.7.0
  Bundler: Using bundler 2.2.12
  Bundler: Using colorator 1.1.0
  Bundler: Using concurrent-ruby 1.1.8
  Bundler: Using eventmachine 1.2.7 (x64-mingw32)
  Bundler: Using http_parser.rb 0.6.0
  Bundler: Using em-websocket 0.5.2
  Bundler: Using ffi 1.14.2 (x64-mingw32)
  Bundler: Using forwardable-extended 2.6.0
  Bundler: Using jekyll-sass-converter 2.1.0
  Bundler: Using rb-fsevent 0.10.4
  Bundler: Using rb-inotify 0.10.1
  Bundler: Using listen 3.4.1
  Bundler: Using jekyll-watch 2.2.1
  Bundler: Using rexml 3.2.4
  Bundler: Using kramdown 2.3.0
  Bundler: Using kramdown-parser-gfm 1.1.0
  Bundler: Using liquid 4.0.3
  Bundler: Using mercenary 0.4.0
  Bundler: Using pathutil 0.16.2
  Bundler: Using rouge 3.26.0
  Bundler: Using safe_yaml 1.0.5
  Bundler: Using unicode-display_width 1.7.0
  Bundler: Using terminal-table 2.0.0
  Bundler: Using jekyll 4.2.0
  Bundler: Using jekyll-feed 0.15.1
  Bundler: Using minima 2.5.1
  Bundler: Using thread_safe 0.3.6
  Bundler: Using tzinfo 1.2.9
  Bundler: Using tzinfo-data 1.2021.1
  Bundler: Using wdm 0.1.1
  Bundler: Bundle complete! 6 Gemfile dependencies, 35 gems now installed.
  Bundler: Use `bundle info [gemname]` to see where a bundled gem is installed.
New jekyll site installed in D:/wiecejwolnosci/site2.
PS D:wiecejwolnosci> cd .site2
PS D:wiecejwolnoscisite2> ls


    Directory: D:wiecejwolnoscisite2


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       05/03/2021     14:37                _posts
-a----       05/03/2021     14:37             56 .gitignore
-a----       05/03/2021     14:37            419 404.html
-a----       05/03/2021     14:37            539 about.markdown
-a----       05/03/2021     14:37           1155 Gemfile
-a----       05/03/2021     14:38           2038 Gemfile.lock
-a----       05/03/2021     14:37            175 index.markdown
-a----       05/03/2021     14:37           2080 _config.yml


PS D:wiecejwolnoscisite2> bundler install
Using public_suffix 4.0.6
Using addressable 2.7.0
Using bundler 2.2.12
Using colorator 1.1.0
Using concurrent-ruby 1.1.8
Using eventmachine 1.2.7 (x64-mingw32)
Using http_parser.rb 0.6.0
Using em-websocket 0.5.2
Using ffi 1.14.2 (x64-mingw32)
Using i18n 1.8.9
Using sassc 2.4.0 (x64-mingw32)
Using jekyll-sass-converter 2.1.0
Using rb-fsevent 0.10.4
Using rb-inotify 0.10.1
Using listen 3.4.1
Using jekyll-watch 2.2.1
Using rexml 3.2.4
Using kramdown 2.3.0
Using kramdown-parser-gfm 1.1.0
Using liquid 4.0.3
Using mercenary 0.4.0
Using pathutil 0.16.2
Using rouge 3.26.0
Using safe_yaml 1.0.5
Using unicode-display_width 1.7.0
Using terminal-table 2.0.0
Using jekyll 4.2.0
Using jekyll-feed 0.15.1
Using jekyll-seo-tag 2.7.1
Using minima 2.5.1
Using thread_safe 0.3.6
Using tzinfo 1.2.9
Using tzinfo-data 1.2021.1
Using wdm 0.1.1
Bundle complete! 6 Gemfile dependencies, 35 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
PS D:wiecejwolnoscisite2> bundler exec jekyll serve --livereload  
Configuration file: D:/wiecejwolnosci/site2/_config.yml
            Source: D:/wiecejwolnosci/site2
       Destination: D:/wiecejwolnosci/site2/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 1.494 seconds.
 Auto-regeneration: enabled for 'D:/wiecejwolnosci/site2'
Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
                    ------------------------------------------------
      Jekyll 4.2.0   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
Traceback (most recent call last):
        22: from C:/Ruby27-x64/bin/jekyll:23:in `<main>'
        21: from C:/Ruby27-x64/bin/jekyll:23:in `load'
        20: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/exe/jekyll:15:in `<top (required)>'
        19: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        18: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        17: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        16: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        15: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        14: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        13: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        12: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `each'
        11: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        10: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:98:in `process'
         9: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:143:in `register_reload_hooks'
         8: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:143:in `require_relative'
         7: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve/live_reload_reactor.rb:3:in `<top (required)>'
         6: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve/live_reload_reactor.rb:3:in `require'
         5: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/em-websocket-0.5.2/lib/em-websocket.rb:3:in `<top (required)>'
         4: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/em-websocket-0.5.2/lib/em-websocket.rb:3:in `require'
         3: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/eventmachine-1.2.7-x64-mingw32/lib/eventmachine.rb:8:in `<top (required)>'
         2: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/eventmachine-1.2.7-x64-mingw32/lib/eventmachine.rb:8:in `require'
         1: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/eventmachine-1.2.7-x64-mingw32/lib/rubyeventmachine.rb:2:in `<top (required)>'
C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/eventmachine-1.2.7-x64-mingw32/lib/rubyeventmachine.rb:2:in `require': cannot load such file -- 2.7/rubyeventmachine (LoadError)

2

Answers


  1. For those who just want to make Jekyll live reload: Use a browser extension instead.

    Example:

    1. Install blaise-io/live-reload. (Chrome / Firefox / Edge)

    2. Serve your site (jekyll serve/bundler exec jekyll serve) and open in your browser.

    3. Click the extension’s button (in browser’s bar), click “Create a new reload rule…”, then a small window would appear.

    4. In “Source file URLs”, enter your Jekyll generated files’ permalinks (eg. http://localhost:4000/assets/css/*.css).

      (In other words, .html & .css rather than .md & .scss, http:// rather than file:///. These files maps to your _site/ folder.)

    5. Scroll down, “Save reload rule”. Have fun Jekylling.


    (Warn: I am new to ruby, so below may be wrong.)

    In fact, this is not a Jekyll issue. Search for Ruby if you want.

    You can check this in Interactive Ruby.

    Open a terminal, enter irb, write require 'eventmachine', and a similar issue would happen.

    PS C:Users…❯ irb
    irb(main):001:0> require 'eventmachine'
    Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
    ……
    

    (If you get stuck in Interactive Ruby, Ctrl+C, enter exit/quit.)

    Jeyll’s --livereload (live_reload_reactor.rb or sth.) (indirectly) uses EventMachine, which goes wrong.

    EventMachine is implemented in 2 ways:

    • C as an extension: Default but not working. Sorry I don’t know how to fix.

      (Reinstall may work, try if you haven’t. Good luck 🙂

    • Ruby: Not default. Some works, some (including me) don’t.

      You can have a try by adding require 'em/pure_ruby' as the first line of where-you-install-ruby/Ruby○○-x○○/lib/ruby/gems/○.○.○/gems/eventmachine-○.○.○-x○○-mingw32/lib/eventmachine.rb. (“○” are numbers depends on versions)

      If you uses Ruby 3.x, you may met another issue (as the comments there saying): Ruby 3.x removes SortedSet (pure_ruby.rb writes @timers = SortedSet.new # []) and recommends sorted_set for an alternative, though Ruby 3.x autoload :SortedSet, "#{__dir__}/set/sorted_set". I install and require 'sorted_set', but other issues appear.

    Conclusion: Jeyllers’ quick solution is using a browser extension.

    Login or Signup to reply.
  2. EventMachine is severely undermaintained. I had a lot of issues with it while writing CI jobs. The best way to deal with it is to use a Git version. In your Gemfile you will need to add:

    gem 'eventmachine', github: 'eventmachine/eventmachine'
    

    Then you will need to bundle install.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search