CentOS7 全体でユーザ共通に使える rbenv をインストールする
Ruby のバージョンを使い分けたい場合は rbenv を使います。通常であればユーザ毎に rbenv をインストールすることになり無駄です。システム全体に rbenv をインストールすることでユーザを限定せずに、しかもユーザ毎に rbenv を使うことが可能です。今回は「システム全体に rbenv をインストールする方法」をメモしておきます。作業は CentOS7 上で実施しました。
事前準備¶
必要なツール / ライブラリを事前にインストールしておきます。
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 経由で実行します。
全ユーザ共通で rbenv のパスを追加します。全ユーザに反映されるよう、/etc/profile に以下を追記します。
/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 をインストールしてみました。
ついでに bundler もインストールしておきます。