search
LoginSignup
23
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

EC2サーバにRuby環境構築

やりたいこと

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上で動かしてインターネットから閲覧出来るようにしたいのですがそれについてはまたいつか。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
23
Help us understand the problem. What are the problem?