DEV Community

Sean Killeen
Sean Killeen

Posted on • Originally published at seankilleen.com on

1

Jekyll Two Ways on Windows: Installing & building Jekyll / GitHub Pages blogs with Ruby on Windows 10

I wanted to write up these steps as I took the time to get my blog up and running on my new laptop, in case it helps someone else get started.

Today, we’ll explore two ways of doing this – the Windows way for those of you who like working via Windows, and the WSL way. I like having both set up so that I can use whatever suits me.

The Windows Way

Before we Begin: Pitfalls we’ll be avoiding

FYI: Normally , I’d run choco install ruby -y, which would install ruby v2.7.0.1 at the time of this writing. However, that led to a pitfall later in the process where I’d see that nokogiri is not currently supported on Ruby 2.7, so I need to pin the 2.6.x package, which we’ll do during this tutorial for this reason.

Ruby DevKit used to be a thing for windows. Now ridk uses msys2, so we’ll be installing that during this step as well.

Step 1: Install the Packages

Open PowerShell as an admin (this is important for chocolately packages)

  • We’ll need msys, so I run choco install msys2 -y
  • I need to find the 2.6.x version of ruby that will work, so I go to the Chocolatey page for the Ruby package
  • I expand the “Version History” section and see the current 2.6 version is 2.6.5.1
  • So, I run choco install ruby --version=2.6.5.1 -y
  • I then pin the package so it won’t accidentally be upgraded later. To do this, I run choco pin add -n=ruby.

Step 2: Getting the Ruby DevKit installed

  • I close and re-open PowerShell as a non-admin (to let the paths update, and maybe because I’m just a little superstitious at this point).
  • I run ridk version to make sure that the prompt shows up and the version numbers look correct
  • I run ridk install. At the prompt, I hit enter to let it do its thing.
  • It installs. At the end, I see the phrase there is nothing to do so I hit enter at the prompt and allow it to exit.
  • I run ridk enable to enable it.

Step 3: Getting the Bundler Installer Configured

  • I re-open the PowerShell window (superstition, remember?)
  • I run bundler --version and see that it’s 1.17.x out of the box.
  • I run gem install bundler to upgrade it to version 2.x

Step 4: Installing the packages

  • I go to the source directory that has my Gemfile.
  • I delete the gemfile.lock file, as I’d like to ensure the packages are being recreated as bundler sees fit.
  • I run bundle install
  • I wait. For a while. Because I have native dependencies in some of these gems, some code literally needs to get compiled while I wait. I sip some coffee.

Step 5: Running the site

  • I run bundle exec jekyll serve to compile and serve the site

The WSL (Windows Subsystem for Linux) Way

These steps assume I’ll still be committing & pushing code via my Windows install, so they leave out setting up git on Ubuntu. (Happy to discuss how to do that in the comments; just ping me if you get stuck.)

  • Enable WSL. If you haven’t already open PowerShell as an admin an run Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux. You’ll need to restart after.
  • Go to the windows store and install a Linux distro of choice. I chose Ubuntu 18.04 LTS.
  • Open your WSL instance once it’s installed and set a password when you’re prompted to do so. (Pssst – do you have the new Windows Terminal? You can open a prompt right from that. It’s nifty.)
  • Run sudo apt-get update to update your packages
  • Run sudo apt-get install ruby-full build-essential to install Ruby
  • Run sudo gem install bundler to install bundler
  • Head to your current source code’s directory (mine is in C:\SeanK\Repositories\seankilleen.github.io, so I used cd /mnt/c/Users/SeanK/Repositories/seankilleen.github.io
  • You’ll have to install some other dependencies (at least on Ubuntu) – sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev
  • Run bundle install. You’ll be prompted for your password during. Allow it time to finish.
  • Run bundle exec jekyll serve.

And there you have it! Jekyll two ways on Windows. :)

Happy publishing!

Top comments (0)

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more