やりたいこと
AWSのEC2サーバ上で、rbenv + Ruby最新版が動く環境を作る
インスタンス情報
- インスタンスタイプ t2.micro
- Amazon Linux AMI 2017.03.1.20170812 x86_64 HVM
rbenvインストール
githubのリポジトリからクローンしてきます
gitが入ってない場合は先にyumでgitをインストールします
$ sudo yum install git -y
まずは本体をインストール
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
Cloning into '/home/ec2-user/.rbenv'...
remote: Counting objects: 2629, done.
remote: Total 2629 (delta 0), reused 0 (delta 0), pack-reused 2629
Receiving objects: 100% (2629/2629), 488.96 KiB | 1.14 MiB/s, done.
Resolving deltas: 100% (1645/1645), done.
リポジトリをクローンしてきたらパスを通してコマンドが打てるようにします
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ source ~/.bash_profile
ちゃんとコマンドが通るか確認
$ rbenv -v
rbenv 1.1.1-6-g2d7cefe
これでインストール完了っぽく見えますがまだインストールコマンドは通りません
$ rbenv install -l
rbenv: no such command `install'
ruby-buildのインストール
ruby-buildはRubyをインストールするためのrbenvのプラグインです。
これをインストールすることで、「rbenv install {バージョン}」でRubyをインストール出来るようになります。
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Cloning into '/home/ec2-user/.rbenv/plugins/ruby-build'...
remote: Counting objects: 7936, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 7936 (delta 0), reused 1 (delta 0), pack-reused 7934
Receiving objects: 100% (7936/7936), 1.67 MiB | 1.15 MiB/s, done.
Resolving deltas: 100% (4877/4877), done.
インストールスクリプトの実行
$ cd ~/.rbenv/plugins/ruby-build
$ sudo ./install.sh
これで、以下のコマンドからインストール可能なRubyのバージョン一覧が見れるはず
$ rbenv install -l
現時点でのRubyの最新バージョンは2.4.2みたい
Rubyインストール
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
BUILD FAILED (Amazon Linux AMI 2017.03 using ruby-build 20170914-2-ge40cd1f)
Inspect or clean up the working tree at /tmp/ruby-build.20170930203342.4180
Results logged to /tmp/ruby-build.20170930203342.4180.log
Last 10 log lines:
The Ruby openssl extension was not compiled.
The Ruby readline extension was not compiled.
The Ruby zlib extension was not compiled.
ERROR: Ruby install aborted due to missing extensions
Try running `yum install -y openssl-devel readline-devel zlib-devel` to fetch missing dependencies.
Configure options used:
--prefix=/home/ec2-user/.rbenv/versions/2.4.2
LDFLAGS=-L/home/ec2-user/.rbenv/versions/2.4.2/lib
CPPFLAGS=-I/home/ec2-user/.rbenv/versions/2.4.2/include
怒られました。
エラーメッセージの中に
「Try running yum install -y openssl-devel readline-devel zlib-devel
to fetch missing dependencies.」
とあるのでその通りにしてみます。
$ sudo yum install -y openssl-devel readline-devel zlib-devel
もう一度先程のコマンドをトライ
$ rbenv install 2.4.2
Downloading ruby-2.4.2.tar.bz2...
-> https://cache.ruby-lang.org/pub/ruby/2.4/ruby-2.4.2.tar.bz2
Installing ruby-2.4.2...
Installed ruby-2.4.2 to /home/ec2-user/.rbenv/versions/2.4.2
成功しました
以下のコマンドでこのOSで使用するRubyのバージョンを2.4.2と宣言
$ rbenv global 2.4.2
ちゃんと切り替わってるか確認
$ ruby -v
ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]
ちなみに
以前まではrbenvを使って新しくRubyのバージョンをインストールした時やバージョンを切り替えた時は
$ rbenv rehash
というコマンドを打つお約束がありましたが、いつの間にか必要なくなっていたそうで。
参考URL
rbenvでrehashがいらなくなった
とりあえずこれでRubyが動くようになりました
最終的にはrailsアプリをEC2上で動かしてインターネットから閲覧出来るようにしたいのですがそれについてはまたいつか。