kopug memo

名古屋で働くとあるWebエンジニアの覚書。

Ruby2.0.0 を CentOS6.4, OS X に 入れてみる

仕事ではここ数年ずっとPHPなので, プライベートではRubyにしようと.
PHPは別に嫌いじゃないですが, Rubyは書いてて気持ちがいいですね.

ということで, そろそろ2.0に移行しようと思って, 久々に環境構築をしたのでその備忘録です.

1. 前提条件

  • OSのメジャーなパッケージ管理ソフトを使用する(CentOSyum, mac は homebrew)
  • rbenv + ruby-build で バージョンの切り替えができるように
  • gem は プロジェクト毎にインストールしたいので, Bundler を利用する

2. rbenv + ruby-build + ruby のインストール

OS X (Mountain Lion) の場合

(1) rbenv + ruby-build

$ brew update
$ brew upgrade
$ brew install rbenv ruby-build
$ cat << EOF >> ~/.zshrc
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
EOF
$ source ~/.zshrc

(2) ruby を入れるのに必要なパッケージをインストール

$ brew install openssl
$ brew link openssl --force

$ brew install readline
$ brew link readline --force

$ brew install libyaml
$ brew link libyaml --force
  • --force を付けないと warning が出たのでつけています

(3) ruby 2.0 を インストール

$ ruby-build --definitions

   :     :
1.9.3-rc1
2.0.0-p195
2.1.0-dev
   :     :

$ CONFIGURE_OPTS="--with-opt-dir=/usr/local/" rbenv install 2.0.0-p195
$ rbenv rehash
$ rbenv versions

* system (set by /Users/kopug/.rbenv/version)
   2.0.0-p195

$ rbenv global 2.0.0-p195
$ ruby -v

ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.3.0]
CentOS 6.4 の場合

(1) yum で 依存パッケージをインストール

$ sudo yum -y install git zlib zlib-devel readline readline-devel openssl openssl-devel curl curl-devel

(2) rbenv + ruby-build

# cd /usr/local
# git clone git://github.com/sstephenson/rbenv.git rbenv
# git clone https://github.com/sstephenson/ruby-build.git rbenv/plugins/ruby-build
# cat << EOF >> /etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv"
export PATH="/usr/local/rbenv/bin:$PATH"
eval "$(rbenv init -)"
EOF
# source /etc/profile.d/rbenv.sh

(3) ruby 2.0 を インストール

# rbenv install --list

   :     :
1.9.3-rc1
2.0.0-p353
2.1.0-dev
   :     :

# rbenv install 2.0.0-p353
# rbenv rehash
# rbenv versions

* 2.0.0-p353 (set by /usr/local/rbenv/version)

$ rbenv global 2.0.0-p353
$ ruby -v

ruby 2.0.0-p353 (2013-05-14 revision 40734) [x86_64-linux]

3. Bundler の インストール

※ ~/.gemrc にある "custom_shebang directive" を削除してから以下を実行すること(途中でエラーになるため)

$ rbenv exec gem update --system
$ rbenv exec gem install bundler
$ rbenv exec gem install rbenv-rehash
$ rbenv exec gem list
*** LOCAL GEMS ***

bigdecimal (1.2.0)
bundler (1.3.5)
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)

$ rbenv exec gem which bundler
     /Users/kopug/.rbenv/versions/2.0.0-p195/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb

4. Railsのローカルインストール及びプロジェクト作成

$ cd ~/Work/projects
$ cat << EOF > Gemfile
source "http://rubygems.org"
gem "rails", "バージョン(省略可能. その場合は最新版)"
EOF
一時的にrailsプロジェクトを作成するために --path で指定した箇所に railsで必要なgemをインストール
$ bundle install --path vendor/bundle
$ bundle list
プロジェクト名は example(適当), --skip-bundle を指定しておかないと, project作成時に勝手に bundle install が走って, global 環境にgemがインストールされてしまう
$ bundle exec rails new example --skip-bundle
プロジェクトが作成できたら, 以下は不要なので削除
$ rm -rf Gemfile Gemfile.lock .bundle vendor
ここでプロジェクトに必要なgem をプロジェクト配下にインストールをする
$ cd example/
$ bundle install --path vendor/bundle
git の管理からgemを外す
$ echo '/vendor/bundle' >> .gitignore 
Rails Server 起動
$ bundle exec rails server