11 Dec 2019

This article will take about 1 minute to read.
No comments

Another Catalina rant, this time about Ruby. As far as I know, on MacOS, it is advisable to For example users don’t have write permission on the system’s gems folder. , and install a separate version for development. I had one installed via Homebrew, and never had any issues with it.

But after Catalina upgrade, I couldn’t run Jekyll. Every time it would fail with the following error:

$ jekyll
  -bash: /usr/local/bin/jekyll: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby:
  bad interpreter: No such file or directory

I checked my bash profile and run which ruby to make sure I’m using the one installed by brew, and everything seemed to be in order.

# .bash_profile
export PATH="/usr/local/opt/ruby/bin:$PATH"

# bash
$ which ruby
/usr/local/opt/ruby/bin/ruby

After quick internet search I learned a lot of people are having similar problems after system upgrade, but I couldn’t find the solution.

I’ve tried reinstalling ruby, setting GEM_HOME, altering PATH in /etc/profile and /etc/bashrc, removing and reinstalling gems, but nothing worked.

Then I tried to see which Jekyll binary is used and realized - for some reason gems were installed using the correct ruby version, but binaries weren’t linked properly.

Jekyll binary wasn't coming from brew ruby installation

So the solution was pretty easy at the end, all I had to do is to find gems/bin folder and add it to my path.

# Use ruby installed by brew
export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/2.6.0/bin/:$PATH"

It looks like a common sense, but it took me a couple of hours to figure it out. Hopefully this will save time people facing the same issue.

Category
Rants

No comments, be the first to comment

Sending failed, please try again.
Thank you! Your comment is sent. Please note that all of the comments go through moderation.