Ruby のバージョンを使い分けたい場合は rbenv を使います。通常であればユーザ毎に rbenv をインストールすることになり無駄です。システム全体に rbenv をインストールすることでユーザを限定せずに、しかもユーザ毎に rbenv を使うことが可能です。今回は「システム全体に rbenv をインストールする方法」をメモしておきます。作業は CentOS7 上で実施しました。
事前準備
必要なツール / ライブラリを事前にインストールしておきます。
sudo yum -y install git openssl-devel readline-devel zlib-devel
rbenv / ruby-build のインストール
/usr/local 配下に rbenv と ruby-build をインストールします。
sudo git clone git://github.com/sstephenson/rbenv.git /usr/local/rbenv
sudo git clone git://github.com/sstephenson/ruby-build.git /usr/local/rbenv/plugins/ruby-build
secure_path の修正
/usr/local 配下に rbenv をインストールしましたが、デフォルトの状態では secure_path で許可されていない為、/usr/local/rbenv を sudo から実行することが出来ません。/usr/local/rbenv 配下の必要ディレクトリを sudo 経由で実行出来るよう、/etc/sudoers の secure_path を修正しておきます。
変更前
/etc/sudoers の中で下記の定義部分を探します。
#
# Adding HOME to env_keep may enable a user to run unrestricted
# commands via sudo.
#
# Defaults env_keep += "HOME"
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
変更後
secure_path の定義を以下のように書き換えます。env_keep は追加します。
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/rbenv/bin:/usr/local/rbenv/shims
Defaults env_keep += "RBENV_ROOT"
Ruby のインストール
rbenv を使えるように準備します。尚、ユーザには書き込み権限の無い部分に rbenv をインストールしていますので、「Ruby をインストールする」等の変更処理は sudo 経由で実行します。
sudo rbenv init -
全ユーザ共通で rbenv のパスを追加します。全ユーザに反映されるよう、/etc/profile に以下を追記します。
export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
/etc/profile への修正を反映します(もしくはログアウト&ログインし直します)。
source /etc/profile
利用可能な Ruby を表示させてみます。
$ rbenv install -l | grep ' 2.[34]'
2.3.0-dev
2.3.0-preview1
2.3.0-preview2
2.3.0
2.3.1
2.4.0-dev
2.4.0-preview1
2.4.0-preview2
今回は Ruby 2.3.1 をインストールしてみました。
sudo rbenv install 2.3.1
sudo rbenv rehash
sudo rbenv global 2.3.1
ついでに bundler もインストールしておきます。
sudo gem install bundler
コメント