Rhapsodist
2020.03.01
Created By Rhapsodist
Rhapsodist
요즘 Ruby on Rails 를 쓰는 Web 페이지들이 많아 지면서 Ruby 를 사용자들 또한 늘어나는 추세에 있는 것 같다. Ubuntu 나 Mac 에는 기본적으로 Ruby가 설치 되어 나오는데, 이 Ruby라는 언어가 Version 에 영향을 엄청 받는 다는 문제가 있다. 2.6.1버전을 쓰다가 2.6.2버전을 쓰면 갑자기 수많은 에러가 나오는 경우도 종종 보이곤 하는데, 이럴 때를 대비해서 Ruby의 Version Manager ( 버전 관리자 )는 필수라고 볼 수 있다.
Ruby의 Version Manager 에는 대표적인 2가지가 있다.
그 중에 Rbenv 로 Ruby 버전 관리 하는 방법을 알아보자.
우선 Rbenv와 Ruby 설치를 위한 Dependency 를 우선적으로 설치 하자.
$ sudo apt update
$ sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev libsqlite3-dev
위의 의존패키지를 모두 설치 했으면 Rbenv 를 설치한다.
$ git clone https://github.com/rbenv/rbenv.git ~/.rbenv
# if you use zsh
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(rbenv init -)"' >> ~/.zshrc
$ source ~/.zshrc
# if you use bash
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(rbenv init -)"' >> ~/.bashrc
$ source ~/.bashrc
$ type rbenv
Ruby-build 는 Ruby의 버전의 list 를 담고 있고, list에서 Ruby버전을 고르면 해당 버전의 Ruby를 Rbenv를 통해 설치할 수 있게 해준다.
$ git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
$ rbenv install -l # show list of ruby version
#=> 2.6.0-preview2
#=> 2.6.0-preview3
#=> 2.6.0-rc1
#=> 2.6.0-rc2
#=> 2.6.0
#=> 2.6.1
#=> 2.6.2
#=> ...
이제 Ruby를 설치하자!
# rbenv install [version]
$ rbenv install 2.6.3
# rbenv global [version]
$ rbenv global 2.6.3 # set global
$ ruby -v # confirm installed ruby version
#=> ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin19]
Gem 은 Package ( 패키지 ) 이고 Bundler 는 Package Manager 이다.
$ echo "gem: --no-document" > ~/.gemrc
$ gem install bundler
$ gem env home
이제 Rails 를 설치 해보자.
$ gem install rails
$ rbenv rehash
$ rails -v
#=> Rails 5.2.3
Rails의 버전이 제대로 표시된다면 잘 설치된 것이다. 설치 끝!
추가 적으로 Rbenv를 Update , Uninstall 할때 필요한 명령어 들을 알아보자.
$ cd ~/.rbenv
$ git pull
$ cd ~/.rbenv/plugins/ruby-build && git pull
$ rbenv uninstall [version]
$ nano ~/.bashrc
<!-- remove this part -->
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
$ rm -rf `rbenv root`
© 2020, made by Rhapsodist