M1 Macs are cool - but as noted - sometimes software doesn’t work quite right on them. One of the programs I use often is Jekyll - and out of the box it doesn’t work on my device with Apple’s new M1 chip.
In case this is useful for someone I’ll go over what worked for me when installing Jekyll on an Apple M1 (Mac Mini, macOS Big Sur 11.3.1 (20E241))
The first step for development on your Apple device is installing Xcode.
You can install Xcode in the Apple App Store.
But you’ll also need to install the Xcode command line tools:
$ xcode-select --install
We’ll need to install Homebrew before we can install Ruby and
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install Ruby & Rbenv
Now that we have Homebrew installed we can install Ruby and
$ brew install rbenv ruby-build # Add rbenv to bash so that it loads every time you open a terminal $ echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.zshrc $ source ~/.zshrc
Next install Ruby 3.0.0:
$ rbenv install 3.0.0 $ rbenv global 3.0.0 $ ruby -v $ rbenv rehash
Add the brew ruby and gems path to your shell configuration:
# If you're using Zsh echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:$PATH"' >> ~/.zshrc # If you're using Bash echo 'export PATH="/usr/local/opt/ruby/bin:/usr/local/lib/ruby/gems/3.0.0/bin:$PATH"' >> ~/.bash_profile # Unsure which shell you are using? Type echo $SHELL
After installing Ruby, we can now install Jekyll and Bundler.
We’ll be doing a local install, the Jekyll docs recommend not installing Ruby gems globally to avoid file permissions problems and using
Install the bundler and jekyll gems:
gem install --user-install bundler jekyll
Append your path file with the following, replacing the
X.X with the first two digits of your Ruby version:
# If you're using Zsh echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.zshrc # If you're using Bash echo 'export PATH="$HOME/.gem/ruby/X.X.0/bin:$PATH"' >> ~/.bash_profile # Unsure which shell you are using? Type echo $SHELL
GEM PATHS: points to your home directory:
With that we have Jekyll installed!
We can now try get up and running with an example.
Let’s follow the Jekyll Quick-start Instructions:
$ gem install bundler jekyll $ jekyll new my-awesome-site $ cd my-awesome-site # Here you will get an error 😞 $ bundle exec jekyll serve
You should be getting an error that looks something like this:
~/YOURUSERNAME/.gem/ruby/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve/servlet.rb:3:in `require': cannot load such file -- webrick (LoadError)
We should be able to fix this error (or at least I was able to) by simply adding
webrick to our project.
We can do so by following the steps below:
# Update bundler for good measure $ bundle update --bundler # Add webrick because otherwise Jekyll won't run on Ruby 3.0 #8523 $ bundle add webrick # Make sure to rebuild everything. This threw some errors, I had to run this a few times before it worked. $ bundle install --redownload # And now: $ bundle exec jekyll serve
If that did not work for you you should try following all of the steps listed here.
But if it did…
And with that - you should now be able to build sites with Jekyll on your M1 Apple!