30

When running bundle exec jekyll serve I get bundler: failed to load command: jekyll

MacOS 12.0.1

Gemfile:

gem "jekyll", "~> 4.2"

# Plugins
group :jekyll_plugins do
  gem "jekyll-admin" # https://github.com/jekyll/jekyll-admin
  gem "jekyll-feed" # https://github.com/jekyll/jekyll-feed
  gem "jekyll-seo-tag", github: "jekyll/jekyll-seo-tag" # https://github.com/jekyll/jekyll-seo-tag
  gem "jekyll-archives" # https://github.com/jekyll/jekyll-archives
  gem "jekyll-typogrify" # https://github.com/myles/jekyll-typogrify
  gem "jekyll-autoprefixer" # https://github.com/vwochnik/jekyll-autoprefixer
  gem "jekyll-sitemap" # https://github.com/jekyll/jekyll-sitemap
end

gem "webrick", "~> 1.7"
gem "json", "~> 2.6"

bundle exec jekyll serve --trace gives me:

/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/3.0.0/pathname.rb:20: warning: already initialized constant Pathname::TO_PATH
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/pathname-0.2.0/lib/pathname.rb:20: warning: previous definition of TO_PATH was here
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/3.0.0/pathname.rb:22: warning: already initialized constant Pathname::SAME_PATHS
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/pathname-0.2.0/lib/pathname.rb:22: warning: previous definition of SAME_PATHS was here
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/3.0.0/pathname.rb:34: warning: already initialized constant Pathname::SEPARATOR_LIST
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/pathname-0.2.0/lib/pathname.rb:34: warning: previous definition of SEPARATOR_LIST was here
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/3.0.0/pathname.rb:35: warning: already initialized constant Pathname::SEPARATOR_PAT
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/pathname-0.2.0/lib/pathname.rb:35: warning: previous definition of SEPARATOR_PAT was here
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/3.0.0/pathname.rb:41: warning: already initialized constant Pathname::ABSOLUTE_PATH
/Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/pathname-0.2.0/lib/pathname.rb:41: warning: previous definition of ABSOLUTE_PATH was here
Doing `require 'backports'` is deprecated and will not load any backport in the next major release.
Require just the needed backports instead, or 'backports/latest'.
Configuration file: /Users/jrdnbwmn/Documents/Repos/GitHub/learnuxd/_config.yml
            Source: /Users/jrdnbwmn/Documents/Repos/GitHub/learnuxd
       Destination: /Users/jrdnbwmn/Documents/Repos/GitHub/learnuxd/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
bundler: failed to load command: jekyll (/Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/jekyll)
eval (eval at <anonymous> ((execjs):1:213), <anonymous>:1:10): TypeError: Cannot read property 'version' of undefined (ExecJS::ProgramError)
    from (execjs):1:213
    from (execjs):19:14
    from (execjs):1:40
    from Object.<anonymous> ((execjs):1:58)
    from Module._compile (internal/modules/cjs/loader.js:1085:14)
    from Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    from Module.load (internal/modules/cjs/loader.js:950:32)
    from Function.Module._load (internal/modules/cjs/loader.js:790:12)
    from Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:76:12)
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/execjs-2.8.1/lib/execjs/external_runtime.rb:39:in `exec'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/execjs-2.8.1/lib/execjs/external_runtime.rb:21:in `eval'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/execjs-2.8.1/lib/execjs/runtime.rb:64:in `eval'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:170:in `runtime'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails/processor.rb:53:in `process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/autoprefixer-rails-9.8.6.5/lib/autoprefixer-rails.rb:16:in `process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:27:in `block (2 levels) in process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in `open'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:23:in `block in process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in `each'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll/autoprefixer/autoprefixer.rb:20:in `process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-autoprefixer-1.0.2/lib/jekyll-autoprefixer.rb:24:in `block in <top (required)>'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/hooks.rb:103:in `block in trigger'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/hooks.rb:102:in `each'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/hooks.rb:102:in `trigger'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:234:in `write'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:82:in `process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:28:in `process_site'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:65:in `build'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:36:in `process'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `each'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/jekyll-4.2.1/exe/jekyll:15:in `<top (required)>'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/jekyll:25:in `load'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/jekyll:25:in `<top (required)>'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli/exec.rb:58:in `load'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli/exec.rb:58:in `kernel_load'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli/exec.rb:23:in `run'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli.rb:478:in `exec'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli.rb:31:in `dispatch'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/cli.rb:25:in `start'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/bundler-2.2.30/exe/bundle:49:in `block in <top (required)>'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/site_ruby/3.0.0/bundler/friendly_errors.rb:103:in `with_friendly_errors'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/bundler-2.2.30/exe/bundle:37:in `<top (required)>'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/bundle:23:in `load'
    from /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/bundle:23:in `<main>'

gem env gives me:

RubyGems Environment:
  - RUBYGEMS VERSION: 3.2.30
  - RUBY VERSION: 3.0.2 (2021-07-07 patchlevel 107) [arm64-darwin21]
  - INSTALLATION DIRECTORY: /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0
  - USER INSTALLATION DIRECTORY: /Users/jrdnbwmn/.gem/ruby/3.0.0
  - RUBY EXECUTABLE: /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin/ruby
  - GIT EXECUTABLE: /opt/homebrew/bin/git
  - EXECUTABLE DIRECTORY: /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin
  - SPEC CACHE DIRECTORY: /Users/jrdnbwmn/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: /Users/jrdnbwmn/.rbenv/versions/3.0.2/etc
  - RUBYGEMS PLATFORMS:
     - ruby
     - arm64-darwin-21
  - GEM PATHS:
     - /Users/jrdnbwmn/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0
     - /Users/jrdnbwmn/.gem/ruby/3.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /Users/jrdnbwmn/.rbenv/versions/3.0.2/bin
     - /opt/homebrew/Cellar/rbenv/1.2.0/libexec
     - /Users/jrdnbwmn/.rbenv/shims
     - /opt/homebrew/bin
     - /opt/homebrew/sbin
     - /usr/local/bin
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /Library/Apple/usr/bin
     - /Users/jrdnbwmn/bin

I've tried several solutions (including updating and reinstalling bundle and jekyll and adding webrick and json gems) to no avail. This is a new machine and must have set something up incorrectly but I'm not sure what it is.

Jordan Bowman
  • 567
  • 1
  • 5
  • 11
  • Perhaps donwgrade Ruby to 2.7.4 or 2.6.8 and try again? Just guessing but perhaps all gems do not work with the latest Ruby yet. – Casper Nov 09 '21 at 01:54
  • 1
    On second thought it looks like you might be missing execjs. Try installing that one. https://github.com/rails/execjs – Casper Nov 09 '21 at 02:03
  • Thanks for the help! Downgraded to Ruby 2.7.4 via rbenv. execjs was already in Gemfile.lock but I installed it anyway for good measure. I'm still getting the same error, though. – Jordan Bowman Nov 09 '21 at 16:41
  • Sounds like time to submit a bug report to the jekyll repo if you didn't already. From what I could see MacOS is a bit finicky for some reason. I found this error by other people too, but no clear solution that I could find. If the bug report leads to a solution, then you can post it here too as an answer so other can find it also. – Casper Nov 09 '21 at 21:01
  • Okay I'll do that, thanks! – Jordan Bowman Nov 10 '21 at 14:25
  • I am experiencing the same issue, did zou get any feedback on the bug report? – Aesir Jan 30 '22 at 16:43

1 Answers1

94

I stumbled upon this question when I ran into the issue of trying to set up github pages. It seems that in the latest version of ruby that is installed with homebrew webrick is not included by default. Here is the github issue: https://github.com/github/pages-gem/issues/752. Recommendations are to either use ruby 2.7 or to manually add webrick in using the command below:

bundle add webrick

and then repeating the command

bundle exec jekyll serve
Aesir
  • 2,033
  • 1
  • 28
  • 39