Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why is my jekyll command not working anymore?

I've recently discovered that the jekyll command doesn't work anymore on my computer, after perfectly using it for several months.

Whenever I try to run a jekyll command, it says:

/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:319:in `to_specs':
    Could not find 'jekyll' (>= 0) among 34 total gem(s) (Gem::LoadError)
Checked in 'GEM_PATH=/Users/Mael/.gem/ruby/2.3.0:/Library/Ruby/Gems/2.3.0:/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/gems/2.3.0',
    execute `gem env` for more information
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/dependency.rb:328:in `to_spec'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_gem.rb:65:in `gem'
    from /usr/local/bin/jekyll:22:in `<main>'

I'm on macOS Sierra (10.12.6).

Xcode is installed

I have Xcode installed on my computer:

$ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates

Reinstalling Jekyll

Checking ruby version and (re)installing bundler

So I tried reinstalling Jekyll as I did the first time:

$ ruby -v
ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin16]

$ sudo gem install bundler
Successfully installed bundler-1.17.1
Parsing documentation for bundler-1.17.1
Done installing documentation for bundler after 4 seconds
1 gem installed

Creating a Gemfile

I created a Gemfile which contains:

gem 'github-pages'
source 'https://rubygems.org'

Bundle install (here come the issues)

And ran, in the directory that contains the Gemfile:

$ bundle install

Here, the installation doesn't work, it says:

An error occurred while installing commonmarker (0.17.13), and Bundler cannot continue.
Make sure that `gem install commonmarker -v '0.17.13' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  github-pages was resolved to 192, which depends on
    jekyll-commonmark-ghpages was resolved to 0.1.5, which depends on
      jekyll-commonmark was resolved to 1.2.0, which depends on
        commonmarker

So I tried the gem install commonmarker -v '0.17.13' --source 'https://rubygems.org/' command, and it says:

Building native extensions.  This could take a while...
ERROR:  Error installing commonmarker:
        ERROR: Failed to build gem native extension.

    current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20181112-6105-u9aca2.rb extconf.rb
creating Makefile

current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
make "DESTDIR=" clean

current directory: /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13/ext/commonmarker
make "DESTDIR="
make: *** No rule to make target `/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0/universal-darwin16/ruby/config.h', needed by `arena.o'.  Stop.

make failed, exit code 2

Gem files will remain installed in /Library/Ruby/Gems/2.3.0/gems/commonmarker-0.17.13 for inspection.
Results logged to /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-16/2.3.0/commonmarker-0.17.13/gem_make.out

I noticed that I have several jekyll and github-pages gems in my /Library/Ruby/Gems/2.0.0/gems (2.0.0) directory:

github-pages-146
github-pages-health-check-1.3.5
...
jekyll-3.4.5
jekyll-avatar-0.4.2
jekyll-coffeescript-1.0.1
[and several other jekyll directories]
...

But not in my /Library/Ruby/Gems/2.3.0/gems (2.3.0) directory! (the one which seems to be targeted by the GEM_PATH when running a jekyll command)

So, maybe I did something that changed the version or something. (I've recently installed osxfuse and sshfs (via brew), I don't know if it has anything to do with the issue?)

I don't know anything about Ruby, Gems system, and so on. Maybe the solution is obvious but I've tried several things with no success.

(Sorry it's a bit long but I wanted to be as clear as possible!)

like image 523
Maël Avatar asked Nov 12 '18 21:11

Maël


People also ask

Could not find a JavaScript runtime jekyll?

Could not find a JavaScript runtime. (ExecJS::RuntimeUnavailable) This error can occur during the installation of jekyll-coffeescript when you don't have a proper JavaScript runtime. To solve this, either install execjs and therubyracer gems, or install nodejs .

How do I know what version of jekyll I have?

If the OP has installed Jeykll locally (using gem install github-pages for example), then they can see which version of Jeykll they are using by running gem list jeykll from the command line.


1 Answers

I also don't work with Ruby, but I had a similar problem on Mac OS 10.12.6 and here is how I solved it.

This is likely caused by some disagreement between the system Ruby environment and Jekyll, and the easiest way to fix it is to create a new environment altogether.

First you should use rvm to manage your ruby versions to avoid delete the system Ruby and break your OS. After you set up rvm, run

rvm install 2.3.3

to install Ruby 2.3.3 (which is what I used). After it finished, make this the default Ruby version in your system:

rvm --default use 2.3.3

then I did the following:

gem install bundler
gem install jekyll
bundle install

and Jekyll worked for me again.

Hope that helps.

like image 95
sding Avatar answered Oct 16 '22 15:10

sding