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
For those who just want to make Jekyll live reload: Use a browser extension instead.
Example:
Install blaise-io/live-reload. (Chrome / Firefox / Edge)
Serve your site (
jekyll serve
/bundler exec jekyll serve
) and open in your browser.Click the extension’s button (in browser’s bar), click “Create a new reload rule…”, then a small window would appear.
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 thanfile:///
. These files maps to your_site/
folder.)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.
Jeyll’s
--livereload
(live_reload_reactor.rb
or sth.) (indirectly) usesEventMachine
, 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 ofwhere-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 recommendssorted_set
for an alternative, though Ruby 3.xautoload :SortedSet, "#{__dir__}/set/sorted_set"
. I install andrequire 'sorted_set'
, but other issues appear.Conclusion: Jeyllers’ quick solution is using a browser extension.
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:
Then you will need to
bundle install
.