RubyをCentOSで動かす方法

CentOS 6.5 にRubyをインストールしてAWS SDK for Rubyを動かしてみます。

OSのバージョンを確認

# cat /etc/redhat-release
CentOS release 6.5 (Final)

既にインストールされているRubyのバージョンを確認

# ruby -v
ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]

rubygemsがインストールされていないので、インストール

yum install rubygems

gemのバージョンを確認

# gem -v
1.3.7

aws-sdkをインストールしてみる

# gem install aws-sdk
ERROR:  Error installing aws-sdk:
        nokogiri requires Ruby version >= 1.9.2.

どうやらRubyのバージョンが1.9.2以上でないと使えないようです。。。

今回動かしたかったのはaws-sdkの1.5.6なので、ソースをダウンロードして依存関係を確認します。

https://github.com/aws/aws-sdk-ruby/releases?after=1.22.0

httpartyが0.7以降であれば良いようです。

https://rubygems.org/gems/httparty/versions

から0.7系の最新をインストールしてみます。

# gem install httparty -v 0.7.8
When you HTTParty, you must party hard!
Successfully installed crack-0.1.8
Successfully installed httparty-0.7.8
2 gems installed
Installing ri documentation for crack-0.1.8...
Installing ri documentation for httparty-0.7.8...
Installing RDoc documentation for crack-0.1.8...
Installing RDoc documentation for httparty-0.7.8...
# gem install aws-sdk -v 1.5.6
ERROR:  Error installing aws-sdk:
        nokogiri requires Ruby version >= 1.9.2.

さて、nokogiriも同様に依存関係を確認します。

gem 'nokogiri', '>= 1.4.4'
# gem list -d nokogiri

*** LOCAL GEMS ***

# gem install nokogiri -v 1.4.4
Building native extensions.  This could take a while...
ERROR:  Error installing nokogiri:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... no
-----
libxslt is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/bin/ruby
        --with-zlib-dir
        --without-zlib-dir
        --with-zlib-include
        --without-zlib-include=${zlib-dir}/include
        --with-zlib-lib
        --without-zlib-lib=${zlib-dir}/lib
        --with-iconv-dir
        --without-iconv-dir
        --with-iconv-include
        --without-iconv-include=${iconv-dir}/include
        --with-iconv-lib
        --without-iconv-lib=${iconv-dir}/lib
        --with-xml2-dir
        --without-xml2-dir
        --with-xml2-include
        --without-xml2-include=${xml2-dir}/include
        --with-xml2-lib
        --without-xml2-lib=${xml2-dir}/lib
        --with-xslt-dir
        --without-xslt-dir
        --with-xslt-include
        --without-xslt-include=${xslt-dir}/include
        --with-xslt-lib
        --without-xslt-lib=${xslt-dir}/lib


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.4 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.4/ext/nokogiri/gem_make.out

エラーが出たので依存関係のあるライブラリをインストールします。

yum install libxml2-devel
yum install libxslt-devel

気を取り直してインストール

# gem install aws-sdk -v 1.5.6