WSL에서 Jekyll 설치하기
기존 Windows 환경에서 사용하던 Jekyll을 Windows 10을 새로 설치하면서 WSL에 설치하기로 한다.
WSL은 Ubuntu 20.04 LTS 배포판을 설치했다.
Jekyll 공식 사이트
공식 사이트이 설치가이드 Installation via Bash on Windows 10를 보면 WSL환경의 설정 방법이 나와 있는데 WSL Ubuntu 20.04 LTS에서는 Ruby 2.5 버전이 아니라 2.7이 기본 설치된다.
ruby 사전준비
Ubuntu 20.04 LTS Ruby 버전은 2.7 이라 공식사이트의 2.5를 설치하지 않고 20.04 LTS의 기본 ruby 패키지 버전인 2.7로 설치를 진행했다.
$ sudo apt -y install make build-essential ruby ruby-dev
$ gem install jekyll bundler
gem update
ruby 설치 후 기존의 github 페이지 디렉토리로 이동해서 Ruby Gem 모듈을 추가 설치한다.
githup page의 최신 파일을 pull 받으면 편한데 수정중이던 파일이 있어 기존 디렉토리를 그대로 유지한 상태로 진행한다.
“gem update” 실행 이후 나오는 오류 메세지에 따라 아래와 같이 라이브러리를 설치해준다.
각 환경마다 오류메세지는 다를 수 있어 기술하지 않았다.
$ gem update
....생략
$ sudo apt install libxml2
$ sudo apt install libssl-dev
u sudo apt install zlib1g-dev
bundle update
실행하면 Gemfile정의된 모듈을 체크하고 없으면 오류 메세지를 보여준다. 오류 메세지에 따라 “gem install”로 모듈을 설치한다.
$ bundle update
....생략
$ gem install jekyll-gist
$ gem install jekyll-sitemap
$ gem install jekyll-paginate
% gem install nokogiri
$ gem install jemoji
github Dependabot alerts
github 에서는 저장소의 패키지의 보안체크 결과를 메일로 알려준다.
github security 확인도 가능하다.
1 kramdown vulnerability found in Gemfile.lock 16 days ago
Remediation
Upgrade kramdown to version 2.3.1 or later. For example:
gem "kramdown", ">= 2.3.1"
Always verify the validity and compatibility of suggestions with your codebase.
위의 안내대로 “kramdown” 패키지 버전이 2.3.1 이상으로 설정한다.
$ vi Gemfile.lock
- kramdown (2.3.0)
+ kramdown (2.3.1)
$ bundle update
$ gem update
Jekyll 시험
“jekyll -v” 명령어의 결과 버전이 출력되면 정상이다.
butteryoon@YOON-IP700:$ jekyll -v
jekyll 4.1.1
환경에 따라 바인드 주소와 서비스 포트를 지정할 수 있다.
$ bundle exec jekyll serve --host 0.0.0.0 --port 4000
Auto-regeneration: enabled for '/mnt/d/Dropbox/Public/butteryoon.github.io'
Server address: http://0.0.0.0:4000/
Server running... press ctrl-c to stop.
Auto-regeneration 오류
jekyll을 구동하고 md 파일을 수정하면 수정된 내용을 바로 반영해주는 기능이 있는데 WSL2에 설치 후 아래와 같은 메세지가 나오면 동작하지 않는다.
md 파일들이 마운트된 Windows 디렉토리에 있어서 그럴 수도 있다고 하는데 WSL 파티션으로 파일을 옮겨 확인 해봐야겠다.
Auto-regeneration may not work on some Windows versions.
Please see: https://github.com/Microsoft/BashOnWindows/issues/216
If it does not work, please upgrade Bash on Windows or run Jekyll with --no-watch.