Published on

Ruby 3 버전업 이후 Jekyll openssl, webrick 관련 에러

Authors
  • 목차

목표

오랜만에 블로그를 정비하려고 local에 최신 ruby 3.0.1을 설치하고 bundle install을 하였는데, 오류가 잔뜩 났습니다. 최신 환경에서 jekyll을 설치하시는 다른 분께 도움이 될까 해서 내가 겪었던 에러들을 정리하였습니다.

방법

이 글은 이미 지킬 프로젝트 문서를 어느정도 이해하거나 이미 설치를 완료한 유저를 대상으로 쓰여졌습니다.

사용한 도구

  • rvm
  • ruby 3.0.1
  • zsh
  • bundle
  • jekyll

에러 1

In file included from binder.cpp:20:
./project.h:119:10: fatal error: 'openssl/ssl.h' file not found
#include <openssl/ssl.h>
        ^~~~~~~~~~~~~~~
1 error generated.
make: *** [binder.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/kahlo/.rvm/gems/ruby-3.0.1/gems/eventmachine-1.2.7 for inspection.
Results logged to /Users/kahlo/.rvm/gems/ruby-3.0.1/extensions/x86_64-darwin-20/3.0.0/eventmachine-1.2.7/gem_make.out

An error occurred while installing eventmachine (1.2.7), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.2.7' --source 'https://rubygems.org/'` succeeds before bundling.

해결

  1. brew reinstall openssl

    처음에 구글링한 결과에서는 openssl이 잘못 설치되어 있어서 그럴 수 있다고 했습니다.

  2. path 설정 방법 링크

    openssl의 PATH를 설정해 주면 된다고 합니다.

  3. gem install eventmachine -- --with-openssl-dir=/usr/local/opt/openssl@1.1

    저는 마지막 방법으로 해결하였습니다. 위의 명령어처럼 eventmachine gem을 설치하면서 openssl의 경로를 잡아주면 eventmachine을 찰떡같이 설치할 수 있습니다. 이후에는 bundle install 혹은 bundle update 하시면 됩니다.

에러 2

~/.rvm/gems/ruby-3.0.1/gems/jekyll-4.2.0/lib/jekyll/commands/serve/servlet.rb:3:in `require': cannot load such file -- webrick (LoadError)

설치가 다 되었다고 생각하고 bundle exec jekyll serve을 실행한 순간! webrick이 없다는 에러가 발생하였습니다.

해결

bundle add webrick

따로 webrick을 설치해주어야 하는 이유는 ruby 3.0.0부터 webrick이 기본으로 포함된 gem에서 빠졌기 때문이라고 합니다.

결과

설치 완료

무사히 설치를 완료하고 bundle exec jekyll serve 명령어로 Local에 지킬 블로그를 실행하였습니다. 오랜만에 블로깅 하니 식은땀 좀 흘리게 하려는 목적인가 싶네요. 하하.

참고한 글