Installing Jekyll on Windows 10 using WSL2
source link: https://ralphwillgoss.github.io/blog/2023/05/17/installalling-jekyll-windows-10-wsl2
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Ralph Willgoss
Cloud, Code and Coffee
Cloud Architect /.Net Core, Python, Azure, AWS, CQRS, Event Sourcing, Distributed Systems
Installing Jekyll on Windows 10 using WSL2
I recently setup my static site generator Jekyll on a new PC, in order to maintain this blog.
As part of this, I decided to use Windows Subsystem for Linux v2 (WSL2) for my installation.
The goal of this was to simplify the Ruby setup, which is a dependency of Jekyll.
I followed the Jeykyll Windows installation instructions.
However, this did not work as expected and below is a guide to the modifications I had to do and some errors I encountered.
VersionsPermalink
The following is a list of core components I am using and their versions:
- Microsoft Windows 10 Pro (10.0.19045 Build 19045)
- Ubuntu-20.04
- WSL2: 1.2.5.0 (Kernel version: 5.15.90.1)
- Jekyll: 4.3.2
- Bundler: 2.4.12
InstallationPermalink
The following is a list of changes I needed to make, while following the Jekyll installation guide.
- Updated WSL2:
wsl --update
- Had to run most commands with
sudo
(most likely due to my minimalist setup ofwsl
) - Install Ruby 2.6 (not 2.5 as per instructions)
sudo apt-get install ruby2.6 ruby2.6-dev build-essential dh-autoreconf
Trouble ShootingPermalink
Below are some of the commands I executed, the errors I received, and the solutions to fixing them.
File System watching no longer worksPermalink
If you have upgraded from WSL1 to WSL2, auto rebuilding of the site using the --watch
flag no longer works.
This is a known issue as reported on github.
Solution:
The use of the --force_polling
flag gets around this issue:bundle exec jekyll serve --force_polling
Some people reported additional load on their machines when doing this, so far I’ve not noticed any bad side affects.
There are no versions of xxxxx (= x.x.x) compatible with your Ruby & RubyGemsPermalink
Command: sudo gem update
ERROR: Error installing date:
There are no versions of date (= 3.3.3) compatible with your Ruby & RubyGems
date requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
ERROR: Error installing etc:
There are no versions of etc (= 1.4.2) compatible with your Ruby & RubyGems
etc requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
ERROR: Error installing io-console:
There are no versions of io-console (= 0.6.0) compatible with your Ruby & RubyGems
io-console requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
ERROR: Error installing minitest:
There are no versions of minitest (= 5.18.0) compatible with your Ruby & RubyGems
minitest requires Ruby version < 4.0, >= 2.6. The current ruby version is 2.5.0
ERROR: Error installing openssl:
There are no versions of openssl (= 3.1.0) compatible with your Ruby & RubyGems
openssl requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
Solution:
Upgrade ruby to 2.6.0
Gem::RemoteFetcher::FetchErrorPermalink
Command: gem install jekyll bundler
Fetching: public_suffix-5.0.1.gem (100%)
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /var/lib/gems/2.5.0 directory.
ERROR: Error installing jekyll:
The last version of public_suffix (< 6.0, >= 2.0.2) to support your Ruby & RubyGems was 4.0.7.
Try installing it with `gem install public_suffix -v 4.0.7` and then running the current command again
public_suffix requires Ruby version >= 2.6. The current ruby version is 2.5.0.
ERROR: Error installing bundler:
The last version of bundler (>= 0) to support your Ruby & RubyGems was 2.3.26.
Try installing it with `gem install bundler -v 2.3.26`
bundler requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
bad response Forbidden 403 (https://api.rubygems.org/quick/Marshal.4.8/google-protobuf-3.22.3-x64-unknown.gemspec.rz)
Solution:
Remove Ruby v2.5 and run through the instructions again
Error installing jekyllPermalink
Command: gem install jekyll bundler
ERROR: Error installing jekyll:
The last version of sass-embedded (~> 1.54) to support your Ruby & RubyGems was 1.58.3.
Try installing it with `gem install sass-embedded -v 1.58.3` and then running the current command again
sass-embedded requires Ruby version >= 2.7.0. The current ruby version is 2.6.6.146.
Solution:
sudo gem update --system
References:
Jekyll - Static site generator
Windows Subsystem for Linux (WSL)
github - Filesystem watchers like libinotify do not work
Updated: May 17, 2023
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK