Amazon LinuxにRubyの実行環境を構築してみる
はじめまして やま と申します。本日からブログを書いていきますのでみなさまよろしくお願いします。 さて、今日は 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
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が使えるようしてみよう思っています。引き続きよろしくお願いします。
脚注
-
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
-
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?