rbenvを利用してシステムワイドにRubyを管理する

rbenvを利用してシステムワイドにRubyを管理する

以前アルバイトで勤務していた時期、開発会社のトレーナーの先輩から「rubyはrbenvを使うと便利」という情報を教えていただきました。

当時は特によく分かっておらずただ言われたから使っていたという感じだったのですが、本格的にrubyを使うようになってからその便利さを実感し今ではすっかり愛用しています。

rbenvとはRubyのバージョンを切り替えたり、ローカルディレクトリ毎にRubyのバージョンを指定できるとっても便利なものです。

今回はその「rbenv」のインストール手順を紹介します。

前提

  • OS: Ubuntu 16.04
  • Git: version 2.11.0
  • rbenv rbenv 1.1.1-6-g2d7cefe

手順

必要なパッケージをインストール
$ sudo apt update
$ sudo apt install -y git build-essential libssl-dev libreadline-dev

インストール場所へ移動
$ cd /usr/local/

Gitからrbenvをクローン
$ sudo git clone https://github.com/rbenv/rbenv.git ./rbenv
$ sudo git clone https://github.com/rbenv/ruby-build.git ./rbenv/plugins/ruby-build

この後実行コマンド用のパスを追加していく。
まずは特権ユーザーへ切り替えて。
$ sudo su

まずは以下のコマンドを実行してrbenvの実行パスを通してみる。
# export PATH="/usr/local/rbenv/bin:$PATH"

パスが通っていることを確認。
# rbenv -v

次に以下のコマンドを実行してみる。
# rbenv root

/root/.rbenv

デフォルトはログインユーザーのホームディレクトリ以下の $HOME/.rbenvとなっている。
これを変更するために環境変数 $RBENV_ROOT を変更する。
# export RBENV_ROOT="/usr/local/rbenv"
# rbenv root

/usr/local/rbenv

$RBENV_ROOT/shimsを作成し、PATHに追加する。
# eval "$(rbenv init -)"

shimsディレクトリ以下に配置されるのがRubyの実行可能ファイルである。
新規バージョンのrubyを入れた場合やgemを入れたあとにはこのコマンドを実行すると良い。

上記コマンド実行後に再度パスを確認すると以下の関数が確認できる。
# which rbenv

rbenv () {
        local command
        command="$1"
        if [ "$#" -gt 0 ]
        then
                shift
        fi
        case "$command" in
                (rehash | shell) eval "$(rbenv "sh-$command" "$@")" ;;
                (*) command rbenv "$command" "$@" ;;
        esac
}

上記の設定を保存するために /etc/profileの最終行にまとめて追記する。
# vi /etc/profile

# rbenvの設定
export RBENV_ROOT="/usr/local/rbenv"
export PATH="${RBENV_ROOT}/bin:$PATH"
eval "$(rbenv init -)"

インストールしたいRubyのバージョンを確認後、バージョンを指定してインストール
# rbenv install --list
# rbenv install [version]

  • 環境全体でのRubyバージョンを指定する場合。
    # rbenv global [version]
  • ディレクトリ固有のRubyバージョンを指定する場合
    # rbenv local

インストールされていることを確認。
# ruby -v

ローカルユーザーでも実行できる。
# exit
$ source /etc/profile
$ ruby -v