6

Installing Jekyll on Windows 10 using WSL2

 1 year ago
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.
neoserver,ios ssh client
Ralph Willgoss

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 of wsl)
  • 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

Previous Next


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK