Backend/꾸준히 TIL

[jekyll/rbenv] rvm을 활용한 rbenv 설치하기

개발하는 후딘 2023. 2. 7. 23:32
728x90
반응형

[jekyll/ rbenv/ ruby 관련 과거 포스트]

 

jekyll 설치 오류 You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.

[문제 내용] github.io 블로그를 만들려고 jekyll을 설치하려다가 gem 권한이 없어서 jekyll 다운로드 실패했습니다. $ gem install jekyll bundler ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write per

ek12mv2.tistory.com

 

 

zsh 환경에서 ruby 패키지매니저 gem 설치하기

[관련포스트] bash환경에서 gem설치하기 https://ek12mv2.tistory.com/191 jekyll 설치 오류 You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory. [문제 내용] github.io 블로그를 만들려고 jekyll을 설치하려

ek12mv2.tistory.com


 

GitHub - rbenv/rbenv: Manage your app's Ruby environment

Manage your app's Ruby environment. Contribute to rbenv/rbenv development by creating an account on GitHub.

github.com

 

 

- How to update your rbenv ruby version

 

How to update your rbenv ruby version

When you install rbenv with git to your machine, it does not update automatically all the..

www.aloucaslabs.com

 

- How to update your rbenv version with git

 

How to update your rbenv version with git

This minipost will demonstrate how to update rbenv version when you have installed it..

www.aloucaslabs.com


기존에 .rbenv를 설치했다면 지운다.

$ rm -rf ~/.rbenv

 


brew 로 rbenv와 ruby-build 를 설치

$ brew install rbenv ruby-build

 


쉘에 값 추가하기

zshrc에 .rbenv 값 매핑한다.

$ echo 'eval "$(~/.rbenv/bin/rbenv init - zsh)"' >> ~/.zshrc

 

[ bash shell 이용할 경우 ]

더보기

 - bashrc에 .rbenv 값 매핑하기

$ echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bashrc

 

- ubuntu외 다른 플랫폼일 경우에는 .bash_profile 에 주입

echo 'eval "$(~/.rbenv/bin/rbenv init - bash)"' >> ~/.bash_profile

 


루비설치

# 안정적인 버젼
$ rbenv install -l

# 모든 로컬 버젼
$ rbenv install -L

# 3.2.0 루비버젼 설치 (특정 루비버젼 설치)
$ rbenv install 3.2.0

 

rbenv install -l   명령어 결과중 가장 최근 버젼을 설치하는 것을 권장한다.

ruby 3.2.0 버젼을 설치수행하다가 그런데 다음과 같은 에러가 나왔다.

mac OS 업데이트하면서 개편할 때마다 발생하는 에러이다.

 

문제발생 1: xcrun: error: invalid active developer path

그러므로 mac os가 개편되면, rbenv를 동작시키는데 필요한 xcode도 같이 업데이트 시키는 것이 좋다.

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

 

[ 문제1 해결방법 ]

$ xcode-select --install

 

그러면 사용자 동의내역창이 나오며, 사용자 동의란에 체크하고 넘어가면 소프트웨어를 다운로드 실행한다.

설치시간은 57시간 -> 18시간 -> 24분으로 줄어든다

 

그러면 시스템설정 > 소프트웨어 업데이트 를 하려면 재부팅 이 필요하다.

 


문제발생3: To eliminate this warning, please install libyaml and reinstall your ruby. cannot load such file --psych

 

해결과정

에러문 해석하기
1) install libyaml
2) reinstall ruby
3) cannot load such file -- psych

 

1) libyaml 패키지 설치

# libyaml 설치
$ brew install libyaml

 

2) rvm 설치

# gnupg 설치 - gpg 키로 rvm을 설치 가능하게 만들어주는 라이브러리
$ brew install gnupg

# rvm 설치 (rvm.io/rvm/install 을 참고하여 gpg 키를 설치한다)
# gpg --keyserver hkp://<서버주소>:80 --recv-keys <키값>
$ gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

 

gpg 로 키서버 정상동작은 아무것도 안뜨고 그대로 있다. 아래사진의 경우가 정상동작이다.

[ gpg명령어로 rvm 설치하다가 발생한 에러:  gpg: keyserver receive failed: Server indicated a failure ]

더보기

원인: 공식사이트에 있는 gpg키값을 그대로 복사했음

$ gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

 

해결: 서버주소에 hkp://<키서버주소>:80 을 붙이면 된다.

$ gpg --keyserver hkp://pool.sks-keyservers.net:80 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

 

 

3) 새로운 터미널 창을 띄워서 다음과 같이 명령어를 입력하자

$ \curl -sSL https://get.rvm.io | bash

 

 

해당 명령어를 실행하면, rvm 설치를 하게되면 "Thanks for installing RVM 🙏" 가 뜨면 rvm이 정상설치가 되었다는 의미이다.

gpg 서버에 접속한 터미널도 종료시킨다.

 

 

4) 새로운 터미널을 띄워서 rvm list 명령어를 입력한다.

그러면 rvm이 없다는 응답메시지를 받는다.

 

5) rvm으로 ruby 최신버젼 설치

# rvm install 최신버젼 설치
$ rvm install ruby --latest

 

 

6) 설치 이후에 rvm list 명령어를 입력한다.

 

[에러해결 참고]

더보기

[ xcrun: error 해결방법 ]

 

Mac 에러 해결기 (xcrun: error: invalid active developer path)

집에서는 맥북을 사용하고 있고, 현재 글 쓰는 시점 빅서 버전은 아래의 이미지와 같다.IDE에서 깃 관련 명령어를 사용하려고 하니 xcrun: error: invalid active developer path (...) 와 같은 에러가 발생했다

velog.io

 

[ ruby install 중 missing psych 에러 해결법 ]

 

how to solve "ruby installation is missing psych" error?

I used rvm to install ruby 1.9.3. even though it was successfully installed, it complained about libyaml. and now every time i wanna install a gem (say rails) this warning shows up: It seems your ...

stackoverflow.com

 

 

[ rvm 설치 ]

rvm.io 공식사이트

 

RVM: Ruby Version Manager - Installing RVM

∞Installing RVM RVM supports most UNIX like systems and Windows (with Cygwin or Bash on Ubuntu on Windows). The basic requirements are bash, curl, gpg2 and overall GNU version of tools - but RVM tries to autodetect it and install anything that is needed.

rvm.io

 

[ rvm 맥os에서 설치하는 방법 ]

 

Install RVM in macOS (step by step)

Actually, I am waiting for my workmate. He chatted back after I just start a blog. Sorry man, but I can’t stop writing 😛

nrogap.medium.com

 

[ gpg: keyserver receive failed: Server indicated a failure 에러 해결방법 ]

 

gpg: keyserver receive failed: Server indicated a failure 해결

gpg: keyserver receive failed: Server indicated a failure 임시로 해결하는 방법 이유는 keyserver 포트가 80인데 이를 default로 잡아주지 못하는 듯 함 따라서 이와 같은 경우 다음과 같이 sudo apt-key adv --keyserver hkp

satchellhong.tistory.com

 

 

[rubygem update 참고자료]

 

How to upgrade rubygems

I need to upgrade gems to 1.8 i tried installing the respective debian packages but it seems its not getting upgraded anujm@test:~$ dpkg -l |grep -i rubygem ii rubygems ...

stackoverflow.com

 


rvm으로 libyaml을 설치하기

$ rvm pkg install libyaml

 

open ssl 설치

$ rvm pkg install openssl

 

ruby 버젼 default 시키기

$ rvm alias create default 3.1.3

 

다시 rbenv 명령어를 사용하여 설치해보자 (3.1.3 버젼을 설치했다)

$ rbenv install 3.1.3

# 3.1.3 버젼을 global 로 설정한다
$ rbenv global 3.1.3

# rbenv versions 확인
$ rbenv versions

rbenv 버젼이 세팅되어있지 않다면, system에 표기된다.

 

 

rbenv를 다시 rehash 시킨다.

$ rbenv rehash

 

설치된 루비정보를 확인할 수 있다.

 

zshrc에 값을 매핑한다.

# bash
$ echo 'export PATH="$HOME/.rvm/rubies/ruby-3.1.3/bin:$PATH"' >> ~/.bashrc

# zsh
$ echo 'export PATH="$HOME/.rvm/rubies/ruby-3.1.3/bin:$PATH"' >> ~/.zshrc

 

 

gem 설치

$ gem env home

 

 

현재 gem 환경 조회

$ gem env

그러나 아래 문제들이 생겨서 결국은 rvm으로 설치하지 않고 기존 방식대로 설치를 해서 진행을 했다.

1. gem 설치하다가 발생한 에러
$ gem install bundler
invalid gem: package is corrupt, exception while verifying: wrong number of arguments (given 2, expected 1)



gem update하기
$ gem install rubygems-update
$ update rubygems
$ gem update --system


 

bundle을 업그레이드 하다가 발생한 문제

bundle upgrade /Users/ek/.rvm/rubies/ruby-3.1.3/lib/ruby/site_ruby/3.1.0/rubygems.rb:284:in `find_spec_for_exe': Could not find 'bundler' (2.4.6) required by your /Users/ek/Documents/github/loveAlakazam/til/TIL_ver2/TIL_2/Gemfile.lock. (Gem::GemNotFoundException) To update to the latest version installed on your system, run `bundle update --bundler`. To install the missing version, run `gem install bundler:2.4.6`

 

 

그러나 실제로는 내가 해결하려는 에러의 해결방법은 rvm을 쓸 필요 없단걸 많은 삽질끝에 깨달았다.

오랜 삽질끝에 결국은 다시 롤백하고 이전에 했던 방식대로 진행했고, 다른 방법으로 해결했다.

해결방안도 참.. 허무하다. 내가 몇시간동안 한건 뭐지라는 생각도 들었지만 그래도 해결해서 안도는 된다.


마치며

 

사실은 til 블로그에 테마를 적용하는 중에

Gemfile에 jekyll-include-cache와 jekyll-feed 플러그인을 yaml로 추가후에 bundle을 실행하다가 에러가 발생해서 

이에러에 대한 해결책을 찾으려고 했다. rvm을 이용해서 새로운 루비를 설치하는게 아니었다.

내가 적용할 테마의 Gemfile에서 jekyll버젼을 4.2.3에서 3.7로 다운그레이드했다.

그리고 bundler를 업데이트를 했더니 허무하게 됐다.

# Gemfile


source "https://rubygems.org"

# jekyll의 버젼을 4.2.3 -> 3.7 로 변경했다.
gem "jekyll", "~> 3.7"

...
$ bundle update
$ bundle

 

 

지금 포스팅은 정답은 아니지만 그래도 rvm을 이용하여 설치해보는 방법에 대해서 실습을 해봤다.

시간이 많이 걸리고 번잡한 환경세팅이지만 그래도 이런게 있구나 하면서 새로 알게됐다.

 

rvm 세팅중에 떠오른 생각은 이전에 경험한 python의 가상환경 virtualenv ,pipenv 과 유사하다.

버젼이 다른 환경이 존재할 수 있고, 각 환경을 맞춰서 실행해주도록 하는 것이 가상머신 이다.

rvm이라는 가상머신으로 루비환경을 세팅할 수 있음을 새로 배운것 같다.

728x90
반응형