Scientific Linux 6.1にrbenvでbundlerなRuby 1.9アプリケーションをインストールする手順

やりたいこと。

表題どおり。やるごとに手順をネットで調べてるのでまとめた。

  • 検証環境はScientific Linux 6.1だけどCentOSでもいける。
  • Rubyバージョンはrbenvで管理されたruby1.9.3
  • アプリケーションはBundlerで構成管理されたSinatraアプリケーション

作業履歴

事前準備

Rubyのビルドに必要となるパッケージを入れておく

$ sudo yum install zlib-devel
$ sudo yum install openssl-devel

Install rbenv

まずはrbenvを入れる

https://github.com/sstephenson/rbenv/ のBasic GitHub Checkout に従う。

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

$echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
$echo 'eval "$(rbenv init -)"' >> ~/.zshrc

$exec $SHELL -l
$rbenv install --list

Install ruby-build

ruby-buildを導入する(rbenvでRubyを手早くビルドするために使う)。 https://github.com/sstephenson/ruby-build の Install as an rbenv plugin に従う。

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

Install ruby

RubyとBundlerをインストールする。

$rbenv install 1.9.3-p392
$rbenv global 1.9.3-p392
$rbenv rehash
$ruby -v  # バージョン確認

$gem install bundler

gem installで次のような警告が出た場合、openssl-devel のyumパッケージをインストールした上で上記ステップでRubyを再インストールする

ERROR:  Loading command: install (LoadError)
    cannot load such file -- openssl
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

Install application

$ exec $SHELL -l
$ cd /path/to/your/application
$ bundle install --deployment

Could not load OpenSSL.とか言われたらやっぱりopenssl-develをインストールしてやりなおし。