All Articles

Jekyll로 블로그 시작하기 위한 준비 for Mac

Permission문제에 직면하다

Mac OS 에서 bundler, jekyll을 설치할때 permission 문제가 발생하였다.

ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions for the /Library/Ruby/Gems/2.3.0 directory.

  1. ubuntu에서는 비교적 간편하게 ruby를 설치한 후 bundler와 jekyll을 설치할 수 있었는데 Mac의 경우는 그대로 설치할 수가 없었다.
    우회하여 찾은 해결책은 local에 설치하는 방법이다.
  2. 일단 ruby의 버젼 정보를 찾고 신규 버젼을 설치 후 해당 루비버젼을 global로 설정하여 local에서 부를 수 있도록 하는 것이다. 일단 공식사이트의 도움을 받아 Homebrew를 이용하여 상위버전 루비를 설치한다.
    루비는 패키지 버젼에 따라 매우 까다롭게 굴기에 github pages에 호스팅 할 환경 그대로 설치하는것이 좋다.

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    $ brew install ruby
    $ ruby -v
    ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17]
  3. rbenv를 설치한 후 결과를 확인

    # rbenv 와 ruby-build 설치
    $ brew install rbenv
    
    # 자신의 쉘 환경에 rbenv 가 연동되도록 설정
    $ rbenv init
    
    # 설치결과 검사
    $ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash
    Checking for `rbenv' in PATH: /usr/local/bin/rbenv
    Checking for rbenv shims in PATH: OK
    Checking `rbenv install' support: /usr/local/bin/rbenv-install (ruby-build 20190423)
    Counting installed Ruby versions: 3 versions
    Checking RubyGems settings: OK
    Auditing installed plugins: OK
  4. 이제 원하는 환경을 사용할 수 있도록 rbenv를 global로 설정하여 해당 버젼을 쓸수있도록 수정하자.

    $ rbenv install 2.5.3
    ruby-build: use openssl from homebrew
    Downloading ruby-2.5.3.tar.bz2...
    -> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.3.tar.bz2
    Installing ruby-2.5.3...
    ruby-build: use readline from homebrew
    Installed ruby-2.5.3 to /usr/local/var/rbenv/versions/2.5.3
    $ rbenv global 2.5.3
    $ ruby -v
    ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-darwin17]
  5. 최종적을 Ruby Executable Path(EXECUTABLE DIRECTORY)를 확인한다

    Junseokui-MacBook-Pro:blog junseokoh$ gem env
    RubyGems Environment:
    - RUBYGEMS VERSION: 2.7.6
    - RUBY VERSION: 2.5.3 (2018-10-18 patchlevel 105) [x86_64-darwin17]
    - INSTALLATION DIRECTORY: /usr/local/var/rbenv/versions/2.5.3/lib/ruby/gems/2.5.0
    - USER INSTALLATION DIRECTORY: /Users/junseokoh/.gem/ruby/2.5.0
    - RUBY EXECUTABLE: /usr/local/var/rbenv/versions/2.5.3/bin/ruby
    - EXECUTABLE DIRECTORY: /usr/local/var/rbenv/versions/2.5.3/bin
    - SPEC CACHE DIRECTORY: /Users/junseokoh/.gem/specs
    - SYSTEM CONFIGURATION DIRECTORY: /usr/local/var/rbenv/versions/2.5.3/etc
    - RUBYGEMS PLATFORMS:
      - ruby
      - x86_64-darwin-17
    - GEM PATHS:
      - /usr/local/var/rbenv/versions/2.5.3/lib/ruby/gems/2.5.0
      - /Users/junseokoh/.gem/ruby/2.5.0
    - GEM CONFIGURATION:
      - :update_sources => true
      - :verbose => true
      - :backtrace => false
      - :bulk_threshold => 1000
    - REMOTE SOURCES:
      - https://rubygems.org/
    - SHELL PATH:
      - /usr/local/var/rbenv/versions/2.5.3/bin
      - /usr/local/Cellar/rbenv/1.1.2/libexec
      - /usr/local/var/rbenv/shims
      - /usr/local/bin
      - /usr/bin
      - /bin
      - /usr/sbin
      - /sbin
      - /Applications/Visual Studio Code.app/Contents/Resources/app/bin
      - /Applications/Visual Studio Code.app/Contents/Resources/app/bin
  6. 이제 bundle install 이 되는지 확인하고 serve로 실행해보자

    $ gem install bundler jekyll
    $ bundle install
    $ bundle exec jekyll serve
    Auto-regeneration: enabled for '/Users/junseokoh/Documents/blog/'
      Server address: http://127.0.0.1:4000/
    Server running... press ctrl-c to stop.
  7. 여기까지 되었다면 설정이 완료된 것이다. 물론 파일이 없으면 마지막은 실행이 안될것이니 jekyll로 블로그 만들기를 참조하면 좋다. Remote server에서 작업하거나 다른 서버에서 열수 있게 하려면 host ip를 적어주는 것이 좋다.

    $ bundler exec jekyll serve --host 0.0.0.0
    Auto-regeneration: enabled for '/Users/junseokoh/Documents/blog/'
      Server address: http://0.0.0.0:4000/
    Server running... press ctrl-c to stop.