ruby
는 깔려있다. 근데 이게 gem
이랑 jekyll
을 쓰기 위한 버전이랑 잘 안맞다.ruby
와 gem
설치 및 설정ruby
와 gem
은 Ubuntu에 이미 깔려있다. 아래 명령어로 확인ruby -v
> ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux-gnu]
gem -v
> 3.1.2
sudo apt-get install ruby-full build-essential zlib1g-dev
gem
이 깔린 폴더는 root 권한이 필요해서 이후에 이래저래 복잡하므로, 권한 문제가 없는 폴더를 사용하도록 환경 변수를 설정해준다.# 주의, 최초 1회만 실행하면 됨. 계속 하면 bashrc 더러워짐
echo "export GEM_HOME=$HOME/gems" >> ~/.bashrc
echo "export PATH=$HOME/gems/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
bundler
와 jekyll
설치gem install jekyll bundler # 설치
# 에러들
ERROR: Error installing jekyll:
The last version of sass-embedded (~> 1.54) to support your Ruby & RubyGems was 1.63.6. Try installing it with `gem install sass-embedded -v 1.63.6` and then running the current command again
sass-embedded requires Ruby version >= 3.1.3. The current ruby version is 2.7.0.0.
Fetching bundler-2.5.4.gem
ERROR: Error installing bundler:
The last version of bundler (>= 0) to support your Ruby & RubyGems was 2.4.22. Try installing it with `gem install bundler -v 2.4.22`
bundler requires Ruby version >= 3.0.0. The current ruby version is 2.7.0.0.
gem install sass-embedded -v 1.54
gem install bundler -v 2.4.22
gem
설정 및 설치하면 된다.# 주소 주의, 내 블로그에용
git clone git@github.com:engcang/engcang.github.io
cd engcang.github.io
jekyll-theme
에 따라 Gemfile
이 있는 경우도 있고, 없는 경우도 있는데, 없어도 상관없다.Gemfile
을 생성한다.bundle init
Gemfile
맨 아래에 필요한 gem
들을 적어주면 되는데, 나 같은 경우에는 블로그 내용물 중 _config.yml
파일에 다음과 같은 부분이 있다.plugins:
- jekyll-sitemap
- jekyll-seo-tag
- jemoji
- jekyll-remote-theme
gem
이므로 Gemfile
에 다음과 같이 적어준다.kramdown-parser-gfm
은 markdown 언어를 사용하기 위해 필요하다고 한다.# frozen_string_literal: true
source "https://rubygems.org"
# gem "rails"
gem "jekyll-sitemap"
gem "jekyll-seo-tag"
gem "jemoji"
gem "jekyll-remote-theme"
gem "kramdown-parser-gfm"
gem
들을 설치해준다. (현재 터미널 경로는 계속 내 Github 블로그 repository)bundle install
bundler
로 jekyll
실행 및 내 블로그 빌드해서 로컬에서 보기bundler exec jekyll serve
> Server address: http://127.0.0.1:4000
> Server running... press ctrl-c to stop.
이제 저 주소로 접속하면 된다. 빌드 개빨라… Git에 push해서 docker image 빌드하고 deploy하는거 기다릴 필요가 없다.
이 때, 혹시 다음과 같은 에러가 발생한다면,
...
Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2023-02-27-docker.md':
uninitialized constant Kramdown::Utils::OrderedHash
...
14: from /home/mason/gems/gems/jekyll-4.3.3/lib/jekyll/converters/markdown/kramdown_parser.rb:54:in `initialize'
13: from /usr/lib/ruby/vendor_ruby/kramdown/parser/base.rb:69:in `parse'
...
$HOME/gems
폴더만 사용해야하는데, /usr/lib
폴더를 동시에 사용해서 문제가 생긴 걸 눈치챌수 있다.kramdown
에서 발생했으므로 그냥 쿨하게 지워주면 된다.sudo apt remove ruby-kramdown
bundler exec jekyll serve