RHEL/CentOS6 에 rvm 으로 특정 버전의 ruby 를 설치 및 관리하기
개요
rvm(Ruby Version Manager) 은 ruby 버전 관리 유틸리티로 특정 app 에 필요한 버전의 ruby 를 설치하고 update 하는 손쉬운 방법을 제공한다.
기존에 Ruby On Rails 로 개발된 app 등을 deploy 할 경우 필요한 ruby 와 gem을 설치하고 필요한 ruby package 를 설치하는게 쉬운 일이 아니었다.
또 여러 app 를 한 서버에서 구동시 app 마다 요구하는 ruby 버전이 다를 경우 관리하기가 번거로웠는데 rvm 을 사용하면 손쉽게 여러 버전의 ruby 와 gem 을 설치하고 app 를 deploy 할 수 있다.
사전 준비 작업
rvm 은 내부적으로 curl 로 필요한 ruby 소스를 다운받은후에 컴파일해서 설치한다. 그러므로 curl 과 gcc compiler, 그리고 compile 에 필요한 유틸리티와 library 들이 사전에 설치되어야 한다.
yum install curl gcc gcc-c++, readline-devel, zlib-devel, libyaml-devel, libffi-devel, openssl-devel, autoconf, automake, libtool, bison
rvm 설치
rvm 설치시 최신 버전의 루비도 같이 설치된다.
root 로 로그인
rvm 설치 스크립트 시작
최신 안정버전 ruby 설치curl -L https://get.rvm.io | bash -s stable --ruby
특정 버전(1.9.3)의 ruby 가 필요하다면 --ruby=1.9.3 같이 version 을 기술해 주면 된다.
ruby 1.9.3 설치curl -L https://get.rvm.io | bash -s stable --ruby=1.9.3
- root 로 로그인해서 rvm 을 설치했다면 /etc/profile.d/rvm.sh 에 rvm 설정이 등록되므로 모든 계정에서 rvm 을 사용할 수 있다.
혹시 rvm 명령어를 찾지 못한다면 다음 내용을 .bash_profile 에 포함시킨다.
source /etc/profile.d/rvm.sh
rvm 명령어 형식
rvm 명령어는 다음과 같은 형식을 갖는다
rvm [Flags] [Options] Action [Implementation[,Implementation[,...]]
install, reinstall, remove, lsit 등이 Action 이며 Action 별 자세한 사용법은 다음 명령어로 확인할 수 있다.
rvm help action-name
ruby 관련 Action
install
ruby 를 설치한다. install 명령어 뒤에 필요한 ruby 버전을 명시한다.
rvm install 2.0.0-p247
reinstall
ruby 를 재설치한다.
rvm reinstall 2.0.0-p247
use
기본 사용할 ruby의 버전 설정한다.
rvm use 2.0.0 --default
현재 ruby 버전 확인
root@localhost:~:> ruby --version ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
list
설치된 ruby 목록을 출력한다.
root@localhost:~:> rvm list rvm rubies =* ruby-1.9.3-p484 [ x86_64 ] ruby-2.1.0 [ x86_64 ] # => - current # =* - current && default # * - default
remove
설치된 ruby 삭제
rvm remove ruby-2.1.0
info
현재 설정된 ruby 의 자세한 설정 정보를 출력한다.
root@localhost:~:> rvm info ruby-1.9.3-p484: system: uname: "Linux localhost.localdomain 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux" system: "centos/6/x86_64" bash: "/bin/bash => GNU bash, version 4.1.2(1)-release (x86_64-redhat-linux-gnu)" zsh: " => not installed" rvm: version: "rvm 1.25.14 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]" updated: "31 minutes 28 seconds ago" path: "/usr/local/rvm" ruby: interpreter: "ruby" version: "1.9.3p484" date: "2013-11-22" platform: "x86_64-linux" patchlevel: "2013-11-22 revision 43786" full_version: "ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]" homes: gem: "/usr/local/rvm/gems/ruby-1.9.3-p484" ruby: "/usr/local/rvm/rubies/ruby-1.9.3-p484" ...
rubygems Action
rubygems 를 설치하고 관리할수 있는 명령어. rubygems 뒤에 버전을 명시하거나 current, latest 버전을 설치할 수 있음
rvm rubygems [x.y.z|latest-x.y|latest|current|master|head]
rubygems current
현재 ruby 에 맞는 최근 버전의 rubygems 이 설치됨
rvm rubygems current
rubygems x.y.z
x.y.z 버전의 rubygems 이 설치됨
rvm rubygems current
rubygems remove
rubygems 삭제
gemset
rvm 은 gemset 이라는 개념으로 ruby, gems, irb 을 구분해서 관리하는 기능을 제공하고 있다.