Tag Archives: Bundler

[Ruby] RVM에서 rbenv로 옮기기

많은 루비 개발환경에서 RVM을 사용하는것을 볼 수 있는데요, 요즘들어 rbenv로 많이들 갈아타는 추세인것 같습니다. 이유를 물어봤더니 RVM이 사용하기 복잡하고 시스템 환경을 너무 많이 변경시킨다는 말씀들을 하시더군요. rbenv(Ruby Environment)의 경우 매우 간단한 구조로 되어있다고 하여 저도 갈아타기로 하였습니다.

rbenv는 특이하게 shims라는 방식을 사용하여 루비를 관리합니다. 환경변수 PATH의 값을 확인해 보면 다음과 같이 맨 앞에 shims가 추가된것을 볼 수 있습니다.

~/.rbenv/shims:/usr/local/bin:/usr/bin:/bin

rbenv는 rehashing이라는 작업을 통해 shims디렉토리 안의 erb, gem, irb, rake, rdoc, ri, ruby, testrb를 현재 사용중인 루비의 실제 바이너리와 연결합니다.

다음의 모든 진행은 Homebrew가 설치되어있는 맥시스템이라고 가정하고 진행합니다.

1. 설치되어있는 RVM 제거 하기

다음의 명령을 사용하여 간단하게 rvm을 제거할 수 있습니다.

$ rvm implode

기존에 환경변수 (~/.bash_profile 등)에 추가했던 설정들도 찾아서 제거해줍니다. 다음과 같은 부분입니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

 2. rbenv 설치하기

Homebrew를 이용하면 손쉽게 설치가 가능합니다. 다음과 같이 설치를 진행해 줍니다.

$ brew update
$ brew install rbenv
$ brew install ruby-build
$ rbenv rehash

환경변수 설정을 추가해줍니다. ~/.bash_profile이면 됩니다.

if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi

 3. 원하는 Ruby 버전 설치하기

다음과 같이 설치가능한 모든 루비 버전을 확인할 수 있습니다.

$ rbenv install -l
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302
  1.8.7-p334
  1.8.7-p352

  ...

제가 쓰려는 2.0.0-p353버전을 설치해 보겠습니다.

$ rbenv install 2.0.0-p353
Downloading ruby-2.0.0-p353.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/78282433fb697dd3613613ff55d734c1
Installing ruby-2.0.0-p353...
Installed ruby-2.0.0-p353 to /Users/dennis/.rbenv/versions/2.0.0-p353

 4. Ruby 버전 변경하기

다음과 같이 현재 시스템에 설치되어있는 루비 버전을 출력할 수 있습니다.

$ rbenv versions
* system (set by /Users/dennis/.rbenv/version)
  2.0.0-p353

이제 조금전에 설치한 2.0.0-p353으로 사용하려는 루비를 변경해 보겠습니다.

$ rbenv global 2.0.0-p353
$ rbenv versions
  system
* 2.0.0-p353 (set by /Users/dennis/.rbenv/version)

변경된것을 확인할 수 있습니다. global은 전역 설정을 변경하는 옵션입니다. local을 사용할 경우 현재 디렉토리에 설정파일을 추가하며 프로젝트별로 루비 버전을 설정할 때 사용합니다. shell을 사용할 경우 현재 쉘이 종료될때까지 루비 버전이 설정됩니다.

$ ruby --version
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.0]

루비 버전이 정상적으로 변경된것을 확인할 수 있습니다.

5. Bundler 설치하기

RVM과는 달리 Bundler가 기본 설치되지 않기 때문에 다음의 명령을 사용하여 추가적으로 설치를 해주어야 합니다.

$ gem install bundler
$ rbenv rehash

[RoR] 맥에서 Homebrew, Git, RVM, Ruby & Rails 간단하게 설치하기

맥을 구매하고 Ruby 개발 환경을 구축하는 방법을 정리하기 위해 이 글을 작성합니다. 다양한 방법이 있겠지만 MacPorts와 Homebrew중에 하나정도는 시스템에 설치하여 사용하는것을 추천합니다. 고민끝에 저는 모든 분들이 추천해 주시는 Homebrew를 사용하기로 하였습니다. 왠지 MacPorts는 안좋게 말씀하시는 분들이 많더군요. XCode의 설치 과정은 중요하지 않은것 같아 빠져있습니다.

1. Command Line Tools 설치

이 과정은 Xcode – Preferences – Downloads 에서 편하게 진행이 가능합니다. 우선 터미널에서 gcc를 실행하여 Command Line Tools가 설치되어있는지 여부를 확인해 봅니다.

$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

위와 같이 뭔가가 출력되면 Command Line Tools가 설치되어있는것입니다. 명령을 찾을 수 없다고 나올 경우 다음의 설치과정을 진행합니다. http://developer.apple.com/downloads 에 접속하여 가지고 있는 애플 아이디로 로그인을 합니다. 아이튠즈에서 사용하는 아이디면 됩니다.

1

접속해 보시면 여러 종류의 Command Line Tools가 존재하는것을 볼 수 있습니다. OS 버전을 확인하시어 적절한 버전을 다운받아 설치하시면 됩니다.

2

 

설치가 완료되면 gcc가 설치되었는지 다시 확인해 봅시다.

2. Homebrew 설치하기

Homebrew의 설치는 매우 단순합니다. 다음의 명령을 터미널에서 입력하면 알아서 설치가 진행됩니다. Ruby를 아직 설치하지 않은 단계인데 다음의 명령이 가능한것인지 생각해볼 수 있겠지만 맥의 시스템에 기본적으로 설치된 Ruby가 존재합니다^^

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)”

중간에 엔터 몇번을 치면서 설치를 진행하면 손쉽게 설치가 완료됩니다. 설치가 완료되면 다음의 명령을 실행하여 정상적으로 설치가 된지 확인을 합니다. 문제가 있을 경우 어떤식으로 해결해야 할지 안내를 해주니 적절한 대응을 해주시기 바랍니다.

$ brew doctor
Your system is ready to brew.

3. Git 설치하기

아마 이미 설치가 되어있는 경우가 많을것 같습니다만 간단하게 정리해보겠습니다. Homebrew를 사용하면 방법이 매우 단순해 집니다.

$ brew update
$ brew install git

install을 수행하기 전에 update를 수행하는것을 볼 수 있는데요 이는 패키지가 어떤 형태로든 업데이트 되어있을 수 있으므로 권장되는 방법입니다. 이제 Git의 사용자 정보를 설정해줍니다.

$ git config --global user.name "Your Full Name"
$ git config --global user.email "Your Email Address"

4. RVM, Ruby, Rails, Bundler 한번에 설치하기

이부분의 설치는 검색하면 다양한 방법을 찾을 수 있습니다. 저는 위의 모든것들을 한번에 설치하는 방법을 사용하였습니다. 터미널에서 다음의 명령을 사용하면 한번에 설치가 완료됩니다.

$ \curl -L https://get.rvm.io | bash -s stable —ruby --rails --autolibs=enable

좀 시간이 꽤 걸립니다만 필요한 모든것을 다 설치합니다.  ~/.bash_profile 파일의 마지막줄에 다음의 내용을 추가합니다. 이미 추가가 되어있을 경우 추가하지 않아도 됩니다.

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM into a shell session.

터미널을 재시작하면 rvm을 사용할 수 있게 되지만 다음의 명령을 사용하여 곧바로 사용할 수 있게 만들 수 있습니다.

$ source $HOME/.rvm/scripts/rvm

5. RVM을 이용하여 Ruby 버전 변경하기

RVM을 설치하였으니 자유롭게 사용중인 루비의 버전을 변경할 수 있습니다. 다음의 명령을 사용하여 현재 설치되어있고 선택되어있는 루비를 확인해 봅시다.

$ rvm list

rvm rubies

=* ruby-2.0.0-p353 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

RVM 설치시점의 가장 최신의 안정버전이 설치되어있는것을 확인할 수 있습니다. 다음의 명령을 사용하여 설치가능한 루비의 목록을 확인해 봅시다.

$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-p374]
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p320]
[ruby-]1.9.3[-p484]
[ruby-]2.0.0-p195
[ruby-]2.0.0[-p353]
[ruby-]2.1.0-preview2
[ruby-]2.1.0-head
ruby-head

...

테스트로 리스트중에 1.9.3 p484버전을 설치해보도록 하겠습니다. 다음과 같이 패치레벨까지 지정하여 설치가 가능합니다.

$ rvm install 1.9.3-p484

이후에 다음과 같이 use를 사용하여 사용할 루비의 버전을 동적으로 변경할 수 있습니다.

$ rvm use 1.9.3-p484

# 1.9.3 버전은 하나만 설치되어 있으므로 다음의 명령도 동일
$ rvm use 1.9.3

다음의 명령으로 시스템에 기본 설치되어있는 루비를 선택할 수도 있습니다.

$ rvm use system

하지만 여기서 사용하는 use 명령은 현재 터미널에 유효한 설정을 변경하는 방법입니다. 터미널을 재시작하면 초기 설정으로 돌아가게 됩니다. 즉 current를 변경하는 방법인데 기본적으로 사용할 루비 버전(default)을 선택하는 방법은 다음과 같습니다.

$ rvm use 1.9.3-p484 --default