Working with Ruby and Jekyll on Windows for GitHub Pages

3 minute read

Previously, I started off with Jekyll using Ruby to generate this blog site on macOS and I am stuck in trying to update this site with a Windows 10 machine today. Do you desperately wanted to deploy Jekyll using Ruby on Windows? Honestly, I tried installing Ruby with Dev Kit on Windows 10, using gem to install bundler and jekyll. But discovered it is not as easy as it seems when I kept getting issues with some gems http_parser, commonmarker or etc. If you google about Jekyll and Windows 10 issue, the list just goes on and on.

After so much frustration, there is a Windows solution that just get Ruby to play nicely on Windows 10 and that is to use Windows Subsystem for Linux. Let’s start bashing on Windows 10.

Getting Started with Jekyll on Windows 10 using Windows Subsystem for Linux

In this blog post, I will be documenting the basic steps to get Ruby for Jekyll working on Windows 10 using Windows Subsystem for Linux (WSL) feature.

What is actually Windows Subsystem for Linux? In short, it is a Windows feature on Windows 10 that allows developers to run Linux environment directly on Windows without deploying a virtual machine. That means you get to use Bash and many other Linux tools on Windows.


Top


Pre-requisite requirements

  • Windows 10 Build 16215 or later

Top


Enable Windows Subsystem for Linux feature on Windows 10

To enable the Windows Subsystem for Linux Feature on Windows 10 and reboot the Windows 10 using PowerShell

Note: A reboot of the Windows 10 operating system is required after enabling the Windows Subsystem for Linux feature

  • Launch Windows PowerShell with elevated privileges
  • Use the Enable-WindowsOptionalFeature PowerShell cmdlet to enable the feature
1
2
3
4
Enable-WindowsOptionalFeature `
    -FeatureName Microsoft-Windows-Subsystem-Linux `
    -Online `
    -NoRestart:$False ;

Top


Install Bash from Ubuntu distro

After the Windows 10 reboot, we can start installing bash on the Windows 10 operating system.

  • Launch Command Prompt with elevated privileges
  • Use lxrun command to install Bash from the Ubuntu distro image (default distro)
1
lxrun /install /y

Top


Switching to Bash shell

Once the installation has completed, you can begin switching into Bash shell runing from the Linux environment from the Command Prompt or PowerShell Console on Windows 10.

1
bash

Top


Update the Bash shell image

Since the Windows Subsystem for Linux release with those packaged environment images, those images may be out of date and we will need to manually perform an update and upgrade for that Linux environment.

1
sudo apt-get update -y && sudo apt-get upgrade -y

Top


Install Ruby

Now that we have an up to date Linux environment, we can start installing Ruby into that Linux environment using the Bash shell.

1
2
3
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.4 ruby2.4-dev build-essential dh-autoreconf

Top


Update Ruby Gems

With Ruby installed, let’s update those Ruby gems to make sure we are all up to date.

1
sudo gem update

Top


Install Jekyll with Bundler

With Bash installed using Windows Subsystem for Linux on Windows 10, Ruby installed using Bash and Ruby Gems up to date in the Linux environment. We are all set to start installing Jekyll using Bash on Windows 10 with the same command that we used on macOS previously.

1
sudo gem install jekyll bundler

Top


Conclusion

Finally, you can validate Jeykll installation status from Bash by validating the Jekyll version. If nothing goes wrong, the Bash will returns you the version number.

1
jekyll -v

To fully complete this demonstration, you should be able to use the jekyll new command to generate a site and use bundle exec jekyll serve to generate the static web site and view the site locally on http://127.0.0.1:4000/ loopback address on port 4000.

1
2
jekyll new my_blog
bundle exec jekyll serve

That is all, folks. It is just that simple on Bash with Windows Subsystem for Linux on Windows 10 that ends my mickey mouse around with Ruby and Dev Kits on Windows.


Top


References


Top



Top