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.
ubuntu에서는 비교적 간편하게 ruby를 설치한 후 bundler와 jekyll을 설치할 수 있었는데 Mac의 경우는 그대로 설치할 수가 없었다.
우회하여 찾은 해결책은 local에 설치하는 방법이다.
일단 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]
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
이제 원하는 환경을 사용할 수 있도록 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]
최종적을 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
이제 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.
여기까지 되었다면 설정이 완료된 것이다. 물론 파일이 없으면 마지막은 실행이 안될것이니 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.