Amazon Linuxでrbenvを使ってRuby2.0を入れてみた。
AWSでAmazon Linux上に環境構築してるときに、ちょっとハマったのでメモ。
Amazon LinuxのRuby
Amazon Linx(2013.03)にデフォルトで入っているRubyは1.8.7でした。
yumで入れられるのも同じバージョン。
絶望した! 1.9.3すらサクッと入れられないことに絶望した!!
というわけで、rbenvを使ってRuby2.0を入れていきます。
必要なパッケージを入れる
Amazon Linuxは最小限のパッケージしか入っていないディストリです。
そのため、Rubyのコンパイルやrbenvのインストールに必要なパッケージも結構不足しているので、ここで入れておきます。
$ sudo yum install gcc git openssl-devel
rbenv, ruby-buildを入れる
rbenv
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ exec $SHELL -l
ruby-build
$ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
Rubyを入れる
Rubyをコンパイルするために、以下のコマンドを実行します。
なお、先程入れたrbenvとruby-buildが正常にインストールされていれば、Tabによる自動補完が有効になっているはずです。
$ rbenv install 2.0.0-p0
上記コマンドを実行すると、
Downloading ruby-2.0.0-p0.tar.gz... -> http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p0.tar.gz Installing ruby-2.0.0-p0...
と表示されてしばらく固まりますが、別窓でtopを実行してみるとCPU使用率が100%になっていて、EC2たんが頑張ってくれているのがわかります。*1
このコンパイル時だけでも、ハイCPUインスタンスとか使うといいと思います。
c1.mediumだと、1時間使っても20円しないので。
トラブルシューティング
The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
openssl-develが入っていません。
sudo yum install openssl-devel してください。
*1:ただし、高確率で「Write failed: Broken pipe」ってなりますw