この記事の対象者
- 複数バージョンのRubyを使いたい方
- CentOS上にrbenvを導入したい方
- Rubyのバージョンを上げたい方
前提条件
- AWSでアカウントを作成している
- Amazon EC2のインスタンスを起動している
- Amazon EC2へログインする際に必要なキーペアを持っている
やりたいこと
- rbenvでインスタンスに複数バージョンのRubyを管理したい
- 全ユーザがrbenvに管理されたRubyを使えるようにしたい
作業内容
EC2にログイン
EC2インスタンス上で作業するために、まずはログインします。
秘密鍵のパスとusername、IPアドレスについては各自の設定を参照してください。
ログイン後、rootユーザに切り替えます。
$ ssh -i [~/.ssh/keypair.pem] [usarname]@xxx.xxx.xxx.xxx
$ sudo su -
必要なパッケージのインストール
$ yum -y install gcc-c++ glibc-headers openssl-devel readline libyaml-devel readline-devel zlib zlib-devel libffi-devel libxml2 libxslt libxml2-devel libxslt-devel sqlite-devel
rbenvのインストール
Githubからrbenvをcloneし、その後rbenvコマンドを呼び出せるよう、環境変数を設定してPATHを通します。
$ git clone https://github.com/sstephenson/rbenv.git /opt/rbenv
$ vim /etc/profile.d/rbenv.sh
vimで /etc/profile.d/rbenv.sh
を開いたら、以下を記述します。
export RBENV_ROOT="/opt/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"
ruby-buildをインストール
次に、ruby-buildをインストールします。
$ git clone https://github.com/sstephenson/ruby-build.git /opt/rbenv/plugins/ruby-build
ユーザの追加
次にユーザを追加します。
wheelグループに属しているユーザがrbenv
コマンドを使用できるようにします。
新しく追加する場合
$ adduser newuser
$ passwd newuser
上記コマンドを実行し、新しくつくりたいユーザの名前、そのユーザのパスワードを設定します。作成したユーザにsshでアクセスできるようにするには、サーバ上ではなくローカルで公開鍵と秘密鍵のペアを作成する必要がありますが、ここでは説明を割愛します。
ユーザをwheelグループに所属させる
$ usermod -G wheel newuser
wheelグループに所属するユーザを確認するには、以下のコマンドを実行します。
$ grep wheel /etc/group
rbenvのパーミッション変更
wheelグループのユーザがrbenvコマンドを使えるように、ディレクトリの権限を変更します。
$ chown -R wheel:wheel /opt/rbenv
$ chmod -R 775 /opt/rbenv
以下のコマンドでディレクトリの状態を確認できます。
ll /opt/
パーミッションはrwxrwxr-x
、グループとユーザはwheel:wheel
になっていればOKです。
Rubyのインストール
いよいよrbenvを使ってRubyをインストールします。
設定した環境変数を読み込むために以下のコマンドを実行します。
$ source /etc/profile.d/rbenv.sh
読み込みが無事に終わったら、以下のコマンドを実行します。
インストール可能なバージョンの一覧が表示されるので、使いたいバージョンのRubyをインストールしましょう!
$ rbenv install -l # インストール可能バージョンのリスト
$ rbenv install 2.5.1 # ruby 2.5.1をインストール
$ rbenv versions # 切り替え可能なバージョン一覧
Rubyをインストールできたら実行すること
rbenvの同期
$ rbenv rehash
rbenvでインストールしたRubyをシステム全てに適用する
$ rbenv global 2.5.1
$ ruby -v #=> 2.5.1
補足
- 一部のディレクトリのみRubyバージョンを変えたい場合
$ cd path/to/app # 任意のディレクトリに移動
$ rbenv local 2.5.1 # このディレクトリ以下のrubyバージョンが2.5.1になる
- Gemを入れたいとき
$ rbenv exec gem install ... # rbenv execをつけると、現在適用中のバージョンのrubyに対して処理します。
参考
rbenv + ruby-build はどうやって動いているのか
[Amazon Linuxに、Ruby + Railsのインストールをしよう!]
(http://ticklecode.com/step9-ruby-rails-install/)
AWS EC2 Amazon Linuxインスタンス起動後、最初にやることまとめ
Linuxユーザーの追加〜SSH公開鍵登録まで