Amazon LinuxにRubyの実行環境を構築してみる

2013.12.15

はじめまして やま と申します。本日からブログを書いていきますのでみなさまよろしくお願いします。
さて、今日は Amazon Linux(ami-be1c848e)にRubyの実行環境を構築する手順をご紹介します。

Amazon Linux(ami-be1c848e)では、デフォルトで以下のバージョンのRubyの実行環境が用意されています。

$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

しかし、バージョンがやや古く、以下のとおりRubyGemsの環境がありません

$ gem -v
-bash: gem: command not found

そこで今回は、このAmazon Linuxの環境に複数バージョンのRubyを管理・実行するためのツール "rvenv" をインストールしてRubyが実行できるように環境構築をおこないたい思います。

事前準備

事前準備としてAmazon Linux を起動した後、以下をおこないます。

全パッケージのアップグレード

$ sudo yum update

必要なパッケージのインストール

$ sudo yum install git gcc openssl-devel
  • git:rbenvのダウンロードで使用
  • gcc:Rubyのインストールで使用 *1
  • openssl-devel:Rubyのインストールで使用 *2

rbenv のインストール

rbenvをダウンロードします。

$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv

PATHを設定します。

$ PATH="$HOME/.rbenv/bin:$PATH" 
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile

rbenvの環境設定をおこなうために以下を設定します。

$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile

ruby-build のインストール

Rubyのインストールに必要なruby-buildをインストールします。

$ cd
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Rubyのインストールができる状態になりましたので、インストール可能なバージョンを確認してみます。

$ rbenv install -l
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  :
  2.0.0-p195
  2.0.0-p247
  2.0.0-preview1
  :
  ree-1.8.7-2012.01
  ree-1.8.7-2012.02
  topaz-dev

今回はバージョン2.x系で 2.0.0-p247 をインストールしてみます。

$ rbenv install 2.0.0-p247

インストールしたバージョンに切り替えます。

$ rbenv global 2.0.0-p247
2.0.0-p247

Rubyの実行バージョンを確認してみると、既存のパージョンが実行されることがわかります。

$ ruby -v
ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]

rbenvの環境を適用するために~/.bash_profileの再読み込みをおこないます。

$ source .bash_profile
$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]

これでRubyの実行環境が整いました。

RubyGemsのついては、Rubyのバージョン1.9以降でRubyGems標準添付となりますので、以下のとおりインストール作業は不要です。

$ gem -v
2.0.3

まとめ

今回はrbenvをインストールして任意のバージョンでRubyを実行するための一連の手順をご紹介しました。シェルの操作に慣れない自分は、まとめるまでに結構な時間がかかってしまいました汗。日々学習が必要ですね。ということで、備忘録的な感じではありますが、これからAmazon LinuxにRubyの実行環境を作ろうとしている方の参考になればと思います。

次は今回作った環境でknife-soloが使えるようしてみよう思っています。引き続きよろしくお願いします。

脚注

  1. gccなしでrbenvのインストールをしたところ、コンパイラへのPATHが通っていない旨のメッセージが表示されて失敗しました。そもそもコンパイラが入っていないので入れておきます。

    $ rbenv install 2.0.0-p247
    Downloading ruby-2.0.0-p247.tar.gz...
    -> http://dqw8nmjcqpjn7.cloudfront.net/c351450a0bed670e0f5ca07da3458a5b
    Installing ruby-2.0.0-p247...
    
    BUILD FAILED
    
    Inspect or clean up the working tree at /tmp/ruby-build.20131215072648.4354
    Results logged to /tmp/ruby-build.20131215072648.4354.log
    
    Last 10 log lines:
    /tmp/ruby-build.20131215072648.4354/ruby-2.0.0-p247 /tmp/ruby-build.20131215072648.4354 ~
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for gcc... no
    checking for cc... no
    checking for cl.exe... no
    configure: error: in `/tmp/ruby-build.20131215072648.4354/ruby-2.0.0-p247':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
    
    BUILD FAILED
    
    Inspect or clean up the working tree at /tmp/ruby-build.20131215072648.4354
    Results logged to /tmp/ruby-build.20131215072648.4354.log
    
    Last 10 log lines:
    /tmp/ruby-build.20131215072648.4354/ruby-2.0.0-p247 /tmp/ruby-build.20131215072648.4354 ~
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking target system type... x86_64-unknown-linux-gnu
    checking for gcc... no
    checking for cc... no
    checking for cl.exe... no
    configure: error: in `/tmp/ruby-build.20131215072648.4354/ruby-2.0.0-p247':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
    

  2. Openssl-develなしでrbenvをインストールしたところopensslの拡張ライブラリがない旨のメッセージが表示されて失敗しました。

    $ rbenv install 2.0.0-p247
    Downloading ruby-2.0.0-p247.tar.gz...
    -> http://dqw8nmjcqpjn7.cloudfront.net/c351450a0bed670e0f5ca07da3458a5b
    Installing ruby-2.0.0-p247...
    
    BUILD FAILED
    
    Inspect or clean up the working tree at /tmp/ruby-build.20131214140921.4379
    Results logged to /tmp/ruby-build.20131214140921.4379.log
    
    Last 10 log lines:
    installing default gems:      /home/ec2-user/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0 (build_info, cache, doc, gems, specifications)
                                  bigdecimal 1.2.0
                                  io-console 0.4.2
                                  json 1.7.7
                                  minitest 4.3.2
                                  psych 2.0.0
                                  rake 0.9.6
                                  rdoc 4.0.0
                                  test-unit 2.0.0.0
    The Ruby openssl extension was not compiled. Missing the OpenSSL lib?