rbenv 로 루비 버전 업그레이드 하기

발단

지금 쓰는 장비를 예전에 rbenv 로 루비를 2.2.x를 설치하고 가끔 생각날때마다 업데이트를 해서 현재 2.4.x 를 쓰고 있다. 얼마전에 나온 2.6.0 을 써보려는데, 그동안 신경 안쓴지 오래되서 하나도 생각이 안나서 커맨드를 찾아봄.

경과

  • https://github.com/rbenv/rbenv
  • https://github.com/rbenv/ruby-build

rbenv 문서를 대충 훑어봄. homebrew로 설치했으면 간단했을텐데, rbenv 자체를 boxen 으로 설치했던터라 기억을 다시 한참 돌이켜야 했다. boxen으로 설치한 방법은 깃헙 저장소를 직접 체크아웃 해서 설치한 방식과 같다고 볼 수 있다.

rbenv 는 /opt/boxen/rbenv 에 있었고, ruby-build는 /opt/boxen/ruby-build 에 있었다.

각각 저장소를 갱신해준다.

/opt/boxen/rbenv on master $ git pull
/opt/boxen/ruby-build on master $ git pull

이렇게 하면 최신 버전에 대한 설치 정보가 로컬에 업데이트 된다.

아래 명령어를 통해 설치가능한 버전을 볼 수 있고, 여기서 출력하는 목록 중에 2.6.0 이 나오면 된다.

rbenv install -l

아래 명령어로 그동안 rbenv를 통해 로컬에 설치한 루비 버전 목록을 볼 수 있고, 특별히 구 버전이 필요한게 아니면 예전 버전은 지울 수 있다.

$ rbenv versions
  system
  1.9.3-p551
  2.2.5
  2.3.4
* 2.4.2 (set by /opt/boxen/rbenv/version)

$ rbenv uninstall 1.9.3-p551
rbenv: remove /opt/boxen/rbenv/versions/1.9.3-p551? [yN] y

$ rbenv uninstall 2.2.5
rbenv: remove /opt/boxen/rbenv/versions/2.2.5? [yN] y

$ rbenv uninstall 2.3.4
rbenv: remove /opt/boxen/rbenv/versions/2.3.4? [yN] y

원하는 버전 설치는 아래 명령어로 가능하고, 설치 완료되는데는 시간이 좀 걸린다.

$ rbenv install 2.6.0
ruby-build: use openssl from homebrew
Downloading ruby-2.6.0.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.0.tar.bz2
Installing ruby-2.6.0...
ruby-build: use readline from homebrew
Installed ruby-2.6.0 to /opt/boxen/rbenv/versions/2.6.0

다시 versionsversion 커맨드를 통해 확인해보면 2.6.0이 설치 완료되었으나 현재 설정된 버전은 2.4.2라고 나오니 global 커맨드를 통해 2.6.0 으로 바꾸도록 하자.

$ rbenv versions
  system
* 2.4.2 (set by /opt/boxen/rbenv/version)
  2.6.0

$ rbenv global
2.4.2

$ rbenv version
2.4.2 (set by /opt/boxen/rbenv/version)

$ rbenv global 2.6.0

$ rbenv version
2.6.0 (set by /opt/boxen/rbenv/version)

2.4.x 에 설치했던 gem 들을 2.6.0 에도 설치되게 하고 싶었으나, 적당한 명령어를 찾지 못했고(rehash 는 아니었다), 다시 생각해보니 프로젝트에서 실제 필요로 할때 Bundler 로 그때그때 수행하면 될테니 그리 신경 쓸 이슈는 아닌 것 같다.