rbenv を CentOS 6.3 にインストール

Rails とか gitlab とか使ってみたかったので、手始めに rbenv をインストールすることにした。そのときのメモ。

rbenv とは

とりあえず説明。ruby をサーバーで利用するときに、バージョンの問題が出てくる。ruby の 1.8系と1.9系でも扱えるパッケージに差がでたりする。それを解決するのが rbenv。同じパッケージ管理ツールに rvm というものもあるが、今回は手軽らしい rbenv をインストールすることにする。ちなみに、rb(ruby)のenv(環境)っていう名前っぽい。恥ずかしながら、この文字の羅列は覚えられなかったけど、意味がわかって間違えなくなった。

インストール

※これらの作業は全部 root でやった。
とりあえず epel と remi レポジトリをいれる。

# cd /usr/local/src/
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

remi レポはデフォルトで enabled=0 になっているので、1にする。

# vim /etc/yum.repos.d/remi.repo

んで、適当に tmux と git をインストールする。

# yum -y install tmux git

他、ruby のビルドに必要なパッケージをインストールする。

# yum -y install gcc

rbenv のインストール。

# cd /usr/local/
# git clone https://github.com/sstephenson/rbenv.git
# mkdir rbenv/shims rbenv/versions
# groupadd rbenv
# chgrp -R rbenv rbenv
# chmod -R g+rwxXs rbenv

ruby-build のインストール。

# cd /usr/local/src/
# git clone https://github.com/sstephenson/ruby-build.git
# cd ruby-build
# ./install.sh

環境変数を通す(全ユーザーに適用する)。下記のコードを /etc/profile.d/rbenv.sh に書く。

export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"

このへんはもっと詳しく書いている人がいるので、もう少し詳しく知りたい人はそちらへ。
全ユーザーで共通のrbenv+ruby-buildを使用する環境を構築する - 一分一秒真剣勝負!
そして visudo で sudo したときでも PATH を引き継ぐようにしておく。

# visudo

こんな感じのブロックを探して

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

下記の1行を追加する。

Defaults    env_keep += "PATH"



rubyの設定

いったん環境整えたら、再ログインして環境がロードされるか確認しておく。

# which rbenv

とかして、rbenv が使えるようになってればOK。
現在使える ruby は、下記のコマンドで一覧される。

# rbenv versions

今インストールしたばかりなので、もちろん何も出ない。
なので、ruby をインストールする。インストール可能なバージョンの一覧は下記のコマンドを実行する。

# rbenv install -l

2012/10/27 時点では下記が有効になってる。

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
  1.8.7-p357
  1.8.7-p358
  1.8.7-p370
  1.9.1-p378
  1.9.2-p180
  1.9.2-p290
  1.9.2-p318
  1.9.2-p320
  1.9.3-dev
  1.9.3-p0
  1.9.3-p125
  1.9.3-p194
  1.9.3-p286
  1.9.3-preview1
  1.9.3-rc1
  2.0.0-dev
  jruby-1.5.6
  jruby-1.6.3
  jruby-1.6.4
  jruby-1.6.5
  jruby-1.6.5.1
  jruby-1.6.6
  jruby-1.6.7
  jruby-1.6.7.2
  jruby-1.6.8
  jruby-1.7.0
  jruby-1.7.0-preview1
  jruby-1.7.0-preview2
  jruby-1.7.0-rc1
  jruby-1.7.0-rc2
  maglev-1.0.0
  maglev-1.1.0-dev
  rbx-1.2.4
  rbx-2.0.0-dev
  ree-1.8.6-2009.06
  ree-1.8.7-2009.09
  ree-1.8.7-2009.10
  ree-1.8.7-2010.01
  ree-1.8.7-2010.02
  ree-1.8.7-2011.03
  ree-1.8.7-2011.12
  ree-1.8.7-2012.01
  ree-1.8.7-2012.02

この中から stable の一番新しいのをインストールする。今回は 1.9.3-p286。
インストールは下記のコマンドを実行する。

# rbenv install 1.9.3-p286

インストールしたら、デフォルトでこのバージョンを使うように設定する。

# rbenv global 1.9.3-p286
# rbenv rehash

一応 ruby のバージョンを確認する。

# ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]

アップデートとかをする場合には、ruby-build のソースコードを git pull で更新して、install.sh を実行し、rbenv install をして、global で設定する。