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 설치시 최신 버전의 루비도 같이 설치된다.

  1. root 로 로그인 

  2. 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

     

  3. root 로 로그인해서 rvm 을 설치했다면 /etc/profile.d/rvm.sh 에 rvm 설정이 등록되므로 모든 계정에서 rvm 을 사용할 수 있다.
  4. 혹시 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 을 구분해서 관리하는 기능을 제공하고 있다.

http://rvm.io/gemsets/basics